Webhacking.kr old-45

Challenge

Bypass the addslashes and encoding boundary to return admin.

利用多字节编码边界绕过 addslashes 并返回 admin。

1
https://webhacking.kr/challenge/web-22/

Analysis

id 先经过 addslashes,再从 EUC-KR 转为 UTF-8。%aa 是 EUC-KR 多字节序列的前导字节;它与后续单引号及服务端插入的反斜杠共同跨过编码边界,使单引号重新参与 SQL 语法。id like 0x61646d696e 用十六进制字面量表达 admin,|| 提供逻辑或,# 注释掉原查询尾部。

Solution

请求为:

1
/challenge/web-22/?id=%aa%27%20%7C%7C%20id%20like%200x61646d696e%23&pw=guest

该请求返回 hi admin,进入 admin 分支。

该 payload 依赖服务端字符集转换顺序和连接字符集;改变编码或转换顺序可能使 %aa%27 失效。