源码
<?php error_reporting(0);
$key = getKey(); $username = $_POST['username']; $data = $_POST['data']; $sign = $_COOKIE["sign"]; if (!empty($sign)) { if ($username === "jwt") { if ($sign === md5($key . $username . $data)) { if (strpos($data, 'sec')) { $flag = file_get_contents('/flag'); echo $flag; } else echo "数据似乎没有被恶意篡改,但服务器接收到的数据中不包含sec"; } else echo "检测到当前用户的数据被恶意篡改"; } else echo "看起来你并不是用户jwt"; } else echo "检测到sign为空, 可能需要刷新一下浏览器"; ?>
|
思路
有关哈希长度拓展攻击的原理可参考:
https://www.yuque.com/shiyizhesonder/sonder39/zn5eggm5d2hr51dm
拦截请求并更改为POST , 传入如下参数即可绕过,也可尝试其它绕过方法
POST / HTTP/1.1 Host: ctf.seek2.top:32802 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.121 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cookie: sign=550fe9819127d62dcdef634c9a6b7453 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 145
username=jwt&data=data%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%C0%00%00%00%00%00%00%00sec
|
其中 payload 可以通过工具 hash-ext-attack 得到
Sonder39@Sonder /d/hash-ext-attack $ python hash_ext_attack.py 2024-03-05 23:39:19.106 | DEBUG | common.md5_manual:__init__:17 - init...... 请输入已知明文:jwtdata 请输入已知hash:5a18d02b1f8da8d5f70a4cba720dfafd 请输入扩展字符: sec 请输入密钥长度:17 2024-03-05 23:40:17.805 | INFO | __main__:run:69 - 已知明文:b'jwtdata' 2024-03-05 23:40:17.810 | INFO | __main__:run:70 - 已知hash:b'5a18d02b1f8da8d5f70a4cba720dfafd' 2024-03-05 23:40:17.816 | INFO | __main__:run:72 - 新明文:b'jwtdata\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00sec' 2024-03-05 23:40:17.822 | INFO | __main__:run:73 - 新明文(url编码):jwtdata%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%C0%00%00%00%00%00%00%00sec 2024-03-05 23:40:17.828 | INFO | __main__:run:75 - 新hash: 550fe9819127d62dcdef634c9a6b7453
|