安全宝约宝妹之代码审计题解

xfkxfk | 2015-02-13 16:38

昨天下午本来就要发的,因为游戏规则没有发出来,看到有人发了就发一下吧

第一次玩游戏,简单的记录一下。。

地址:http://yuebaomei.com/

如下图

a.png

首先咱是男同胞,就选

然后问你为什么现有男人

b.png

当然是因为先生

此时就要输入答案了,让你在本也中找,打开页面源码,毛都没有

然后打开调试,在js里面找找

果然找到了一个暧昧的字符串:wo ai anquanbao

c.png

然后输入,果然弄对了。。。

d.png

然后就是下一题了,应该是一个图片,但是被限制访问了

e.png

这里卡了一下,去找什么绕过工具了,搞了半天不行啊

然后有打开调试,看到有一个请求:

http://yuebaomei.com/show.php?p=dGlzaGkucG5n

f.png

提示了yuehui.png,直接访问这个是不行的

然后注意到上面那个连接的p参数值,base64解码后是tishi.png

那么就知道了这个yuehui.png应该是一个最终的图片,我们也base64编码一下

其实在上面的图片就已经提示你了,yuehui.png了

http://yuebaomei.com/show.php?p=dGlzaGkucG5n

http://yuebaomei.com/show.php?p=tishi.png

http://yuebaomei.com/show.php?p=yuehui.png

http://yuebaomei.com/show.php?p=eXVlaHVpLnBuZw==

然后访问最后的url:

http://yuebaomei.com/show.php?p=eXVlaHVpLnBuZw==最后就跳转到了正确的页面了

g.png

此时你已经可以和宝妹约会了,嘿嘿~~

看到后面还有终极大奖,然后就继续答题,看看是啥大奖。。。

后面有3中类型的题,我们选代码审计

h.png

这里有代码提示:

http://q5c.yuebaomei.com/

<?php

$flag = "THIS IS FLAG";

if  ("POST" == $_SERVER['REQUEST_METHOD'])

{

$password = $_POST['password'];

if (0 >= preg_match('/^[[:graph:]]{12,}$/', $password))

{

echo 'Wrong Format';

exit;

}

while (TRUE)

{

$reg = '/([[:punct:]]+|[[:digit:]]+|[[:upper:]]+|[[:lower:]]+)/';

if (6 > preg_match_all($reg, $password, $arr))

break;

$c = 0;

$ps = array('punct', 'digit', 'upper', 'lower');

foreach ($ps as $pt)

{

if (preg_match("/[[:$pt:]]+/", $password))

$c += 1;

}

if ($c < 3) break;

if ("42" == $password) echo $flag;

else echo 'Wrong password';

exit;

}

}

?>

这里的意思就是:

接收post参数password的值

必须满足12位以上字符

必须是非空格非TAB之外的内容([:graph:]代表printable and visible的字符,鸟哥书上说是除空格符(空格键与[TAB]键)之外的所有按键)

然后就是你的password要有大小写数字,字符内容,而且匹配到的次数要大于6次

最后才是这里的考点:

if ("42" == $password) echo $flag;

else echo 'Wrong password';

乍一看这里的password怎么等于42咧,还有人说这写错了。。。

其实这里使用fuzz就好了,你就让他满足上面的规则慢慢跑就行了

首先你想到,什么东西能等于42咧?

我能想到的:

var_dump("42" == "0x2a");

var_dump("42" == "42.0e");

然后第一个试了好几次没成功

使用第二个

var_dump("42" == "42.0e0000");

var_dump("42" == "42.00e0000");

var_dump("42" == "42.00e+");

var_dump("42" == "42.00e+00000000000);

ok,最后的答案就是:42.00e+00000000000

当然也可以这样:420.000000000e-1

然后们在http://q5c.yuebaomei.com/页面输入上面的答案,得到:

women ai baomei

i.png

看到这个答案也是醉了。。。。

最后在输入答案women ai baomei就过关了

j.png

然后是sql注入和android的题,android的题不会做

chu牛谁sql注入的可以这样:

python ./sqlmap.py -u "http://yuebaomei.ztx.io/login" --data "username=admin&password=a" --tamper=modsecurityversioned.py -D test -T users --sql-shell

晚上回去测试的时候,题目已经加固不行了。。。

大牛们还有啥好技巧放出来,还有其他两个类型的题,已经人做出来了的,来分享一下