Webhacking.kr old-16

Challenge

Read the JavaScript and derive the hidden PHP path.

阅读 JavaScript,推导隐藏的 PHP 路径。

1
https://webhacking.kr/challenge/js-3/

Analysis

脚本用 String.fromCharCode(124) 生成字符 |,再拼接 .php。这是相对当前 challenge 目录的路径,因此浏览器会请求 |.php。竖线不是路径分隔符,放入 URL 时必须百分号编码。

Solution

下面根据题面规则构造请求:

1
2
3
4
5
6
7
8
9
from urllib.parse import quote
from urllib.request import Request

BASE_URL = "https://webhacking.kr/challenge/js-3/"
filename = chr(124) + ".php"
request_url = BASE_URL + quote(filename, safe="")
request = Request(request_url, method="GET")

print(request.full_url)

quote 会把生成的 | 编码为 %7C,请求对象因此携带正确的 URL 编码路径。