Challenge
Understand the obfuscated JavaScript route check.
分析混淆 JavaScript 的路径检查。
https://webhacking.kr/challenge/code-3/Analysis
页面源码是 aaencode 风格的 JavaScript。解码后,脚本从 URL 的 = 之后取值,并将一组 String.fromCharCode 结果与它比较。比较通过后,脚本执行:
location.href = "./" + ck.replace("=", "") + ".php";解码比较值后得到目标文件名 youaregod~~~~~~~!.php,所以无需依赖浏览器执行混淆脚本,也可以直接请求生成后的路径。
Solution
直接请求下面的完整 URL。这里保留 --path-as-is,它主要阻止 curl 规范化路径中的 ./.. 段;本例的 ~ 和 ! 本身不需要这个选项:
curl --path-as-is 'https://webhacking.kr/challenge/code-3/youaregod~~~~~~~!.php'浏览器中也可以直接访问:
https://webhacking.kr/challenge/code-3/youaregod~~~~~~~!.php请求目标路径即为题目要求的隐藏文件。