题目:备份是个好习惯
http://123.206.87.240:8002/web16/
听说备份是个好习惯
emm,备份是什么。
不管他,我选择御剑。
直接下载,源码如下
1 |
|
1.
这里有几个主要的函数
- strstr
搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分 - substr
返回字符串的一部分 - str_replace
替换字符串中的一些字符(区分大小写) - parse_str
函数把查询字符串解析到变量中。
注释:如果未设置 array 参数,由该函数设置的变量将覆盖已存在的同名变量。
在这里就是在url里找?
,有就返回?
及之后字符串,然后返回从1开始的字符串,将字符串中key删除。
2.
md5($key1) == md5($key2) && $key1 !== $key2
,好像有点矛盾。。。
但是
PHP Hash漏洞
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。
网上找一找
1 | QNKCDZO |
3.
构造url
因为key
被删除,所以key1
要变为kkeyey1
1 | http://123.206.87.240:8002/web16/index.php?kkeyey1=s878926199a&kkeyey2=s155964671a |
flag
1 | 0e5459932745177090343288558410200e342768416822451524974117254469Bugku{OH_YOU_FIND_MY_MOMY}鍙栧緱flag |
4.
cmd5 0e开头
原文链接:http://www.cnblogs.com/Oran9e/p/6537204.html
1 | s878926199a |