#Natas
Natas是wargame 系列挑战中的第二个系列,是关于 Web 安全的一个专题,通过这个专题基本可以了解到 web 安全中主要的问题,非常适合初学者入门 Web 安全。所有的挑战都可以通过浏览器网页登入,需要在当前关卡中获得进入下一关的密码来继续挑战,和 Bandit 的形式类似。
Level 0→1
在网页处右键“查看源代码”将会展示源代码。底部的注释中有到 “natas1” 的密码。
1
2 >gtVrDuiDfck831PqWsLEZy5gyDz1clto
>
Level 1→2
和上一关一样,右键查看源码即可得到下一关的密码。
1
2 >ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi
>
Level 2→3
查看源码将会显示一个有 png 文件的文件夹。前往文件夹我们就能发现另一个文件 users.txt 。在 users.txt 里包含下一关的密码。
1
2 >sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14
>
Level 3→4
robots.txt 是一个告诉 google 不要索引哪些文件夹的文件。
在 robots.txt 中,它会不允许索引 /s3cr3t/ 。进入该目录,发现 user.txt 里包含下一关的密码。
1
2 >Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ
>
Level 4→5
错误信息表明任何访问该页面的用户必须来自’natas5’。所以我们可以修改 headers,伪造一份来自 ‘natas5’ 的请求。
1 | import requests |
1
2 >iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq
>
Level 5→6
通过 chrome 自带的调试工具或者直接用 python 脚本可以查看网站返回的包。发现其中的 cookie 有一个变量 ‘loggedin’ 值为0.我们将其设为1后再次请求就可以得到下一关的密码。
1 | import requests |
1
2 >aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
>
Level 6→7
查看页面的源码,发现需要提交正确的秘钥才能获得下一关的密码,而一个文件被包含在 /includes/secret.inc 中。打开这个文件找到正确的秘钥并提交表单即可获得下一关的密码。
1 |
|
7z3hEENjQtflzgnT29q7wAvMNfZdh0i9》
Level 7→8
查看页面源码时,发现一条线索说密码在 /etc/natas_webpass/natas8 中。改变浏览器的路径为 /etc/natas_webpass/natas8 即可得到下一关的密码。
1
2 >DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe
>
Level 8→9
在源码页面,我们可以看到 php 函数代码给了我们一些需要输入的秘钥的信息。从 \$_POST(‘secret’)中我们可以看到需要传入的与 \$encodedSecret 比较的字符串。
1 | <? |
之后我们就可以逆向调用在 encodeSecret 中使用的函数,通过创建和运行下列命令,我们就获得了纯文本的秘钥。
1 | base64_decode(strrev(hex2bin("3d3d516343746d4d6d6c3156 69563362"))) |
解码得到的结果为 oubWYf2kBq。使用该秘钥提交表单即可得到下一关的密码。
1
2 >W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl
>
Level 9→10
查看网页源码,我们可以发现将要查询的是 \$key。如果 \$key 非空,将在 dictionary.txt 中查询并返回任何包含 \$key 的内容。
1 | <? |
在注入中,\$key 没有被过滤并能在命令行中使用。因此我们可以注入额外的命令。我们已知的是 ‘natas10’ 的密码保存在 /etc/natas_webpass/natas10 中。在命令行中,我们可以用cat
来查看文件内容。另一件需要知道的是在一行中执行多条命令(; 或 &&)。最后不要忘了注释掉后面的命令。
1 | ; cat /etc/natas_webpass/natas10 # |
执行后,就可以得到下一关的密码。
nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
Level 10→11
和上一关类似,不过我们不能使用’;’,’|’和’&’。但仍能利用类似的注入攻击。我们可以使用 grep
匹配密码文件中的任意字符来获得下一关的密码。为了能匹配任意字符,我们使用’.’通配符并用 ‘#’注释掉后面的内容。
1 | . /etc/natas_webpass/natas11 # |
得到下一关的密码。
1 | U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK |
###
###