话不多说,有了一定的基础就开始都just hack it了.
HackThisSite 这里面有很多分类,当然我们是从basic开始做咯. 注意要先注册,这个不是关卡…开始以为要自己绕过登录..也是够二了. 这里都是basic的write up,url就不单独发了.直接说题目. 序号对应题号
第一题很简单,但是我列出来意思是多阅读题干信息,如何最快速度的找到解题思路而不是乱试.从README可以知道html肯定在这要用,那么就直接看源码本身咯.如果过长也可以关键字搜索.如图
说实话这题上来把我卡了一下. 所以千万不要惯性思维. 然后严谨分析读题是最重要的. 题干说了一只粗心的网管忘记上传密码文件了. 然后我就到处找文件在哪. 然后再仔细溯源一下,submit都没有触发js函数. 表单触发的php文件也没有验证. 然后直接提交空就过了..
但是问题在于,为什么我填了密码反而都报错呢,那说明还是做了验证嘛. 然而没有直接找到验证的代码.(后续的人待补)
读题干+1
这题开始有点意思啦. 小明同学居然还会发email哈哈.
隐藏域多关注.那就来一波中间人抓取了,把值改成自己的邮箱(这里注意要是网站注册的,不过他会提醒你.很贴心~ 然后就可以在邮件收到passwd了)
解法可以同第四题,不过我发现第四题还有比较更直接的方式…兴许可以直接把源文件下下来,然后模拟发送一波请求,可能密码直接明文在传输呢?
这题有加密引入了.给你一个测试机会
1
2
3
4
5输入 123 输出 135
输入 321 输出 333
输入 admin 输出 aeolr
Q:You have recovered his encrypted password. It is "2fh7<5=m" Decrypte it首先发现首个字母没有加密. 其次发现23->35 21->33,dmin->eolr ,发现每一个字符值递增了1.通常从ASCII码开始猜解嘛. 那么2fh7<5=m 之前就是 2ef4807f. (最好有个ascii表,不然很浪费时间)
这题开始引入命令了. 给你一个命令输入窗口,你输入年份返回cal “”的返回. 那么很自然的想着去构造其他命令咯.
构造 0 && ls 然后就能发现有一堆东西,其中有一个长得比较像密码 (也可以 ‘ ;ls’ ).
访问后得到密码 5a0b7046
- 这题开始难度进入分割线了.需要使用html的技巧才能解决.题目有个submit可以提交信息,然后在php页面执行生成一份shtml文件后读取. 那么就关注一下shtml的特性. 以及参数name是否有命令的注入. 因为题目已经告诉你了flag所在的位置.
根据shtml的特性构造输入 : <!-- exec cmd="dir" --> 然后发现提示
那么尝试 把命令换成 ls 发现执行成功. 显示了
1 | Hi, tshngmww.shtml hipykpqu.shtml ztxdhjxn.shtml avpfeoie.shtml fviqpmaw.shtml kqbybdzc.shtml dzrnmzgx.shtml npcsygfl.shtml whqxxojt.shtml ylomcmvu.shtml uhdppswp.shtml gzntiicx.shtml dzwbqiuu.shtml qvzuieng.shtml smcerykh.shtml qjhnmhmq.shtml znodwztr.shtml! |
通过观察以及题意可知,这应该是php生成后的shtml文件夹.那么直接查看一下上一层目录. 发现cd ..&&ls 不允许.就直接 ls .. 发现成功. 显示php页面名.输入得到flag
Level 9
Sam is going down with the ship - he’s determined to keep obscuring the password file, no matter how many times people manage to recover it. This time the file is saved in /var/www/hackthissite.org/html/missions/basic/9/.
In the last level, however, in my attempt to limit people to using server side includes to display the directory listing to level 8 only, I have mistakenly screwed up somewhere.. there is a way to get the obscured level 9 password. See if you can figure out how…
This level seems a lot trickier then it actually is, and it helps to have an understanding of how the script validates the user’s input. The script finds the first occurance of ‘<–’, and looks to see what follows directly after it.
这题没有输入框,直接让你输入flag,那么根据题意我们感觉level8还暗藏信息. 并且提示我们去思考<– 的本质,直接8输入 <!– 发现 结果是 <!-- ; 然后测试一下 ls ../.. 发现不允许,那么继续试验.根据之前的命名规则.尝试 ls ../../9 发现可以. 显示了 p91e283zc3.php 文件.
然后很开心的把url中8换成9输入,得到flag
- 上来没有任何提示了.直接一脸懵逼. 先try first . 直接提交密码,咦.不同以往提示报错. 这里提示的是
You are not authorized to view this page (:
显然,这里要通过什么手段去提权啦. 一般来说常见思路一是绕开,二是禁用js,三是伪装cookie.
发现关键字段autho是no.先尝试改为yes. 发现直接秒了. 噗,是只纸老虎.
- 做完第十题直接不给我显示next problem了,我去… 没事,自己动手修改url切换到11题,上来是一个蠢html页面,一头雾水,这时候我按下了刷新,发现页面发生变化了. 以下是变化
I love my music! “Island Girl” is the best!
I love my music!”Reverie “ is the best!
I love my music!”Don’t Let the Sun Go Down on Me” is the best!
I love my music!”Restless “ is the best!
I love my music!”The Captain and the Kid” is the best!
I love my music!”Birds “ is the best!
I love my music!”From Denver to L.A.” is the best!
….一直刷都有,感觉像是歌词…搜一下wiki, 发现是一个 Elton John的歌手2007唱的.唔.找一下信息..发现没什么卵用
继续看原页面发现一个tip
<!-- We even have our own collection - if you could find it! -->
咦.这是什么鬼? 怎么都不对呀….我又挖地三尺,还是不知道是什么情况,试了一下歌词每一句作为目录名,不行,试了歌手名作为用户名也不行….狗带.先到此为止….继续学习









