Challenge
Bypass the
addslashesand encoding boundary to return admin.利用多字节编码边界绕过
addslashes并返回 admin。
https://webhacking.kr/challenge/web-22/Analysis
id 先经过 addslashes,再从 EUC-KR 转为 UTF-8。%aa 是 EUC-KR 多字节序列的前导字节;它与后续单引号及服务端插入的反斜杠共同跨过编码边界,使单引号重新参与 SQL 语法。id like 0x61646d696e 用十六进制字面量表达 admin,|| 提供逻辑或,# 注释掉原查询尾部。
Solution
请求为:
/challenge/web-22/?id=%aa%27%20%7C%7C%20id%20like%200x61646d696e%23&pw=guest该请求返回 hi admin,进入 admin 分支。
该 payload 依赖服务端字符集转换顺序和连接字符集;改变编码或转换顺序可能使 %aa%27 失效。