level 1

访问https://www.hackthis.co.uk/levels/intermediate/1?password=flubergump即可

level2

方法很多,我用的是hackbar,添加一个password参数即可

level3

cookie中有一个restricted_login=false;用hackbar改成restricted_login=true;即可

level4

这题光是弹窗还不行,一定要是过滤后剩下

1
<script>alert('HackThis!!');</script>

所以像

1
<scrIPt>alert('HackThis!!');</scriPt>

这样的是不行的
我用的是

1
<scri<script>pt>alert('HackThis!!');</scri</script>pt>

level 5

题目说了The script works by parsing log files for failed login attempts

所以这题是要晃飞日志解析程序,从底下的日志中可以看出每条记录都会换行,
可以推断出日志解析程序是根据换行来区分每条记录的,
因此用户名填\n就ok了

level 6

这题长知识了,原来还可以用xml文件来充当数据库
参考了forum里php操控xml文件的代码,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* Preparation stuff */
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$file = file_get_contents("users.xml"); //users.xml contains users' data
$doc->loadXML($file);
/* End Preparation stuff */

/* XPath query */
$xpath = new DOMXPath($doc);

$username = "place_your_username_here";
$password = "place_your_password_here";
$query = "//user[username/text() = '" . $username . "' and password/text() = '" . $password . "']";

$users = $xpath->query($query);
/* End XPath query */

/* Print */
foreach($users as $user) {
foreach($user->childNodes as $node) {
echo $node->nodeName." - ".$node->nodeValue."<br />";
}
}
/* End Print */

发现类似于sql注入万能密码,用户名随意,密码填

bullshit’ or realname/text() = ‘Sandra Murphy