Webhacking.kr old-51
Challenge
Bypass the raw-MD5 SQL query on the admin page.
绕过 admin page 中的 raw-MD5 SQL 查询。
1 | https://webhacking.kr/challenge/bonus-13/ |
Analysis
题目给出的关键服务端逻辑是:
1 | $input_id = addslashes($_POST['id']); |
PHP 的 md5 第二个参数为 true 时返回 16
字节原始二进制,而不是通常看到的 32 位十六进制文本。提交的密码
129581926211651571912466741651878684928 的 MD5
原始结果已在本地核对为:
1 | hex: 06da5430449f8f6f23dfc1276f722738 |
结果中包含 'or'。拼进单引号包围的 pw
值后,SQL 片段会形成字符串比较与 or
条件,后面的非空字符串条件为真,从而绕过密码相等性检查。id=admin
选择目标记录。
Solution
向 /challenge/bonus-13/ 发送完整的 form-urlencoded
请求:
1 | curl 'https://webhacking.kr/challenge/bonus-13/' \ |