Hackthis-real
level 1
进去一个邮箱,收件箱里有一个登录的链接,垃圾箱里有别人发给他的密码-_-
直接使用该密码即可
level 2
查看登陆界面的源代码可以看到这个
1 | var username= document.getElementById('username').value; |
也就是说它是通过访问https://www.hackthis.co.uk/levels/extras/real/2/members/username password.htm
的方式看看用户名和密码是否正确,这里可以想到,如果我们只访问https://www.hackthis.co.uk/levels/extras/real/2/members/
会发生什么呢?
答案是会把members目录下的文件爆出来,每个htm文件即代表了一个用户,从中试出管理员的账户即可
level 3
查看登陆界面源代码可以看到该网页把登陆的验证放在了前端,将用户输入的用户名和密码转为hash后与login.js里的hash值进行对比,如果正确的话就跳转至正确的页面。也就是说我们的目的是找出login.js里hash对应的明文
按照题目提示,把js代码拿去搜了一下,找到了这个
http://www.otherplaceforum.com/viewtopic.php?t=3228
在这之中找到了
https://jsbin.com/dehekaxopu/edit?js,output
这个脚本可以用于破解makehash函数,可得到的用户名和密码虽然可以通过验证但跳转到的url显示Error accessing resource。这是因为不同的明文可以对应同一个hash,而我们的脚本只能找出一个值。
之后看到代码中有
1 | // Login version 4.2 june 2000 Copyright D10n... |
这样一行注释,拿去搜索找到了
http://tnecessary.tripod.com/version42.htm
也就是题目登陆代码的生成器,在该生成器的帮助
http://tnecessary.tripod.com/howtouse.htm
中找到了这样的信息
1 | members.js - List of Members, Passwords and Destinations. |
于是访问https://www.hackthis.co.uk/levels/extras/real/3/members.js,得到用户名密码
level 4
首先通过题目给的top 10 passwords中的asdfg可以进入planetbid的admin账户,可以查看到Members db和Bids db
然后通过safetransfer的找回密码可以找出骗子的用户名和邮箱是nemisis和jfelliot@mail.com,并往jfelliot@mail.com发送找回密码的邮件
下一步比较难相想,把Members db的url https://www.hackthis.co.uk/levels/extras/real/4/planetbid/view.php?members&1=user&2=email
改成https://www.hackthis.co.uk/levels/extras/real/4/planetbid/view.php?members&1=user&2=pass
得到密码的md5值,nemisis的密码解出来是chicken.
接着用jfelliot和chicken登录进邮箱,可以得到safetransfer的密码,登录进去可以找到转钱的地方,在Bids db那可以看到委托人的序号是31,卖的东西是Dr Pepper 3ltr RARE,价值1.35英镑。清除了planetbid的日志后,给委托人的账户转1.35英镑即可
level 5
看到url中有个?p=index,随手改成
https://www.hackthis.co.uk/levels/extras/real/5/?p=%27
爆出错误
Warning: file_get_contents(‘.html) [function.file-get-contents]: failed to open stream: No such file or directory in pages on line 22
可以看到这里用了php的file_get_contents读取文件的内容,通过控制get参数p的值就可以访问xx.html文件
而通过%00截断可以不受后面.html的限制,读取任意文件
于是读取登录界面https://www.hackthis.co.uk/levels/extras/real/5/?p=../admin.php%00
可以看到出现了登陆的输入框,查看此时的网页源代码可以看到
1 |
|
从而得到密码