Webhacking.kr old-01

Challenge

Cookie 中的数值需要通过服务端的范围判断。

Cookie 数值绕过。

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

Analysis

源码先检查 user_lv 是否为数字,再把 >= 6 的值重置为 1,最后在 > 5 时调用 solve(1)。因此可接受的区间是 5 < user_lv < 6。小数点没有被数字检查拒绝,所以 5.5 同时满足两次判断。

Solution

对 challenge 路径发送带有完整 Cookie 的请求:

1
2
3
curl --silent --show-error \
--header 'Cookie: user_lv=5.5' \
'https://webhacking.kr/challenge/web-01/'

浏览器操作等价于在 /challenge/web-01/ 的 Cookie 中把 user_lv 改为 5.5,然后重新加载页面。不要把它作为 URL 查询参数发送,因为服务端读取的是 Cookie。