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

  • A+
所属分类:WooYun-Zone

xfkxfk安全宝约宝妹之代码审计题解  (WOOYUN) 安全宝约宝妹之代码审计题解  (WOOYUN) | 2015-02-13 16:38

昨天下午本来就要发的,因为游戏规则没有发出来,看到有人发了就发一下吧
第一次玩游戏,简单的记录一下。。

地址:http://yuebaomei.com/

如下图
安全宝约宝妹之代码审计题解  (WOOYUN)
首先咱是男同胞,就选

然后问你为什么现有男人
安全宝约宝妹之代码审计题解  (WOOYUN)

当然是因为先生

此时就要输入答案了,让你在本也中找,打开页面源码,毛都没有
然后打开调试,在js里面找找
果然找到了一个暧昧的字符串:wo ai anquanbao
安全宝约宝妹之代码审计题解  (WOOYUN)

然后输入,果然弄对了。。。
安全宝约宝妹之代码审计题解  (WOOYUN)

然后就是下一题了,应该是一个图片,但是被限制访问了
安全宝约宝妹之代码审计题解  (WOOYUN)

这里卡了一下,去找什么绕过工具了,搞了半天不行啊
然后有打开调试,看到有一个请求:
http://yuebaomei.com/show.php?p=dGlzaGkucG5n
安全宝约宝妹之代码审计题解  (WOOYUN)

提示了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==最后就跳转到了正确的页面了
安全宝约宝妹之代码审计题解  (WOOYUN)

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

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

后面有3中类型的题,我们选代码审计
安全宝约宝妹之代码审计题解  (WOOYUN)

这里有代码提示:
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
安全宝约宝妹之代码审计题解  (WOOYUN)

看到这个答案也是醉了。。。。
最后在输入答案women ai baomei就过关了

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

然后是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

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

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

分享到: