Javascript CTF挑战赛全攻略
Javascript CTF竞赛的方式其实跟其他的CTF迥然不同,运用客户端身份验证进程的缝隙找到Flag,一起这也展现了客户端验证是多么的不可靠。
参赛地址
https://www.net-force.nl/challenges/
Javascript应战1,等级101:“javascript,secure?”
在这个应战,弹出了一个需求用户名和暗码的JavaScript正告框。
不能直接右键检查源文件,在chrome中,可以运用view-source检查页面源文件。如:
view-source:https://www.net-force.nl/challenge/level101/secret.html
很简单就看到了用户名和暗码。
暗码便是javascript。
Javascript应战2,等级l02:“this won’t take long…”
检查页面源文件,发现有生成暗码的函数submitentry()。这个函数运转结束之后就会得到暗码,确实是“不会等太久”。
咱们可以经过在线履行js代码(http://js.do)得到暗码,咱们略微修正下代码,让暗码“alert”出来。
暗码:bingo123
Javascript应战3,等级104:“Escape now!!!”
这种应战给咱们展现了一个需求用户名和暗码登录框,而安全性是由一个JavaScript函数的方式完成……
检查源文件发现有一个unescape()函数对某些内容进行了解码。略微修正下代码,将解码后的值赋值给m,然后用alert显现m的值。
所以咱们很简单看到了正确的值。
Username:user
Password:member
Javascript应战4,等级103:“Is this safe?”
跟其他的标题相同,也需求用户名暗码,检查源文件发现有一处注释的内容是一段哈希值。
咱们运用“John the Ripper”跑下这段哈希,得到了明文“blaat”。
但是,这并不是这道标题的password,再看了下js代码发现用户会被重定向到一个与username有关的链接。
https://www.net-force.nl/challenge/level103/soulslayer/
所以我在这个链接后边加了“blaat.html”。
所以咱们得到了暗码:blaataap。
javascript应战5,等级105:“Mirco$oft crap…”
页面很清晰的要求需求ie的参加。
看了下页面源代码,需求解码一段编码后的字符串。咱们仍然运用js.do在线履行代码。解码后发现内容是用javascript.encode编码的。
Jscript.encode是微软用来编码js和vb脚本的。假如咱们要读取源代码则需求进行解码。咱们运用http://the-computer-site.com/jscript-decode.php进行在线解码。
细心看完脚本后,咱们可以确认它是用URL核算暗码。咱们略微修正脚本,并使其显现存储在URL值中的暗码。删除了for循环,由于这仅仅用来验证暗码的代码。经过alert显现addr和pass2两个值。
现在咱们得到了藏有正确暗码的链接:
https://www.net-force.nl/challenge/level105/solution.php?blabla=Hall0
[1] [2] 黑客接单网