Webhacking.kr old-11
Challenge
Match the server-side regular expression.
构造满足服务端正则表达式的输入。
1 | https://webhacking.kr/challenge/code-2/ |
Analysis
服务端把 val 与下面的正则匹配:
1 | $pat = "/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/"; |
因此输入需要依次包含:
1到3中的一个数字;- 五个
a到f的字符; - 下划线和服务端看到的
REMOTE_ADDR; - 以 Tab 分隔的
p、a、s、s。
URL 中用 %09 表示
Tab。正则只要求匹配,不要求前缀或五个字母取特定值。
Solution
把 <REMOTE_ADDR>
替换成服务端在当前请求中看到的来源 IP,访问下面的完整路径:
1 | https://webhacking.kr/challenge/code-2/?val=1aaaaa_<REMOTE_ADDR>%09p%09a%09s%09s |
请求满足正则后即可进入题目完成分支。
IP 由请求连接决定;代理、NAT 或题目部署变化都可能使服务端看到不同的
REMOTE_ADDR,复现时应使用当前请求对应的值。