它提示我们这个真的是爆破。。。。好吧,我有点不信,他这个糟老头在坏得很
看看代码
1.第一句是规定报告错误级别为0,也就是Disable error reporting(不报告错误)
2.第二句是存储session数据,也就是在网页上给服务器个信息,我们来了
3.第三句是require函数:也是引用flag.php的意思,不过与include不同的是,如果产生错误则会停止执行网页,而include会继续执行
4.然后是一个if结构,先判断$_SESSION['nums']是否为空或则为NULL,如果不是则让$_SESSION['nums'] = 0,$_SESSION['time'] = time()time() 函数返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数,$_SESSION['whoami'] = 'ea'。
5.然后又是一个if判断,当这个session的值+120后小于当前时间就执行session_destroy()函数:销毁session
6.value以post的形式传入
7.创建一个从a到z的数组让其等于str_rand
8.生成两个随机的str_rand然后让他们连接起来赋值给str_rands
9.一个if结构,如果whoami等于数组的首位和第二位,并且变量value的散列值从第五位到第九位等于0则让nums+1,让whoami的值等于str_rands,然后打印出str_rands
10.如果nums的值大于10则打印flag
浏览整段代码,意思就是我们整个过程需要在打开网页的2分钟内完成,然后value的值为ae,nums的值就+1,然后再生成一个随机数据,如果value又等于这个值则会让nums再次+1,反复重复直到nums大于10就输出flag
所以这里使用脚本爆破(附上一个dalao的脚本)
import requests url = "http://53617f45ee114de4945b1fc8661d2c36844810d2d02f4882.changame.ichunqiu.com//?value[]=ea" al = ['abcdefghijklmnopqrstuvwxyz'] s = requests.session() r = s.get(url) for i in range(20): url = "http://53617f45ee114de4945b1fc8661d2c36844810d2d02f4882.changame.ichunqiu.com//?value[]=" + r.content[0:2] r = s.get(url) print r.content
注:url为自己的网页链接
就可以得到flag了