Webhacking.kr old-12

Challenge

Understand the obfuscated JavaScript route check.

分析混淆 JavaScript 的路径检查。

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

Analysis

页面源码是 aaencode 风格的 JavaScript。解码后,脚本从 URL 的 = 之后取值,并将一组 String.fromCharCode 结果与它比较。比较通过后,脚本执行:

1
location.href = "./" + ck.replace("=", "") + ".php";

解码比较值后得到目标文件名 youaregod~~~~~~~!.php,所以无需依赖浏览器执行混淆脚本,也可以直接请求生成后的路径。

Solution

直接请求下面的完整 URL。--path-as-is 让 curl 保留路径中的 ~ 和 !:

1
curl --path-as-is 'https://webhacking.kr/challenge/code-3/youaregod~~~~~~~!.php'

浏览器中也可以直接访问:

1
https://webhacking.kr/challenge/code-3/youaregod~~~~~~~!.php

请求目标路径即为题目要求的隐藏文件。