portswigger靶场中目录遍历
- 1.Bp靶场介绍
- 1.1.访问靶场
- 1.2.注意事项
- 2.目录变量漏洞
- 2.1.文件路径遍历
- 2.1.1.开启靶场
- 2.1.2.点击详情
- 2.1.3.抓包
- 2.1.4.修改参数
- 2.1.5.过关
- 2.2.用绝对路径旁路阻止遍历序列
- 2.2.1.开启靶场
- 2.2.2.修改参数
- 2.2.3.过关
- 2.3.非递归地剥离遍历序列
- 2.3.1.开启靶场
- 2.3.2.修改参数
- 2.3.3.过关
- 2.4.用多余的URL解码剥离遍历序列
- 2.4.1.开启靶场
- 2.4.2.编码
- 2.4.3.修改参数
- 2.4.4.过关
- 2.5.验证路径起始
- 2.5.1.开启靶场
- 2.5.2.验证路径
- 2.5.3.修改参数
- 2.5.4.过关
- 2.6.空字节旁路验证文件扩展名
- 2.6.1.开启靶场
- 2.6.2.修改参数
- 2.6.3.过关
1.Bp靶场介绍
Bp靶场有点类似于常见的DVWA靶场、piachu靶场,里面富含多种不同类型的漏洞,并且每个靶场都有针对性,例如sql注入,从最简单的判断开始,逐步的增加难度,并且每一个靶场都附带介绍以及通过方式,能够让新人快速的了解原理并且针对性练习。
1.1.访问靶场
靶场链接:所有实验室|网络安全学院 (portswigger.net)
1.2.注意事项
这个靶场是在线靶场,并且是HTTPS,若需要抓包解决需要,安装HTTPS证书,可以参考我的文章进行抓取HTTPS流量。
抓取HTTPS流量文章链接:文章链接
同时靶场是全英文的,但是有页面翻译也还好,能够看懂,尽量使用Edge浏览器,翻译更准确一点。
burpsuite安装链接:文章链接
2.目录变量漏洞
这里不在叙述原理,因为在靶场的下方都提供了相应的官方解释,我再叙述无非就是多此一举,这里写过关教程,也只是我的笔记。
2.1.文件路径遍历
这里让我们检索内容 /etc/passwd文件。
2.1.1.开启靶场
2.1.2.点击详情
这里我们随便点击一个内容,查看内容。
2.1.3.抓包
这里我们点击后,进行抓包,慢慢放包,会发现出现读取图片的链接,后面我们会对这个链接进行修改测试。
2.1.4.修改参数
这里我们需要修改filename=11.jpg,由于这里是读取图片的地址,那么通过链接可以看出,图片是放在网站的根目录,那么我们需要读取/etc/passwd,我们就需要回到根目录下进行范围,那么我们就可以根据这个问题构建payload。
payload:../../../etc/passwd
这里为什么知道输入多少个…/呢?测试呀,一个不行加两个,两个不行加三个不就测试出来了么!
2.1.5.过关
这里过关,需要将原先抓取到的数据包,也修改,然后关闭拦截,让页面进行刷新,就可以过关了,不行的话就手动刷新。
2.2.用绝对路径旁路阻止遍历序列
该应用程序块穿越序列,但对待所提供的文件作为正在相对默认的工作目录。要解决的实验室,检索内容 /etc/passwd文件。
2.2.1.开启靶场
2.2.2.修改参数
这里为什么直接修改参数呢,因为前置都是一样的,都是抓包,这里我就跳过了,直接抓包修改参数,这里提示我们是绝对路径,那么根据这个构建我们的payload。
payload:/etc/passwd
2.2.3.过关
这里还是一样修改数据包,然后关闭拦截,刷新页面。
2.3.非递归地剥离遍历序列
这里确实简单来说,就是对之前一直使用…/进行过滤了一边,那么像这个过滤,我们可以使用双写绕过,也就是它过滤一边,那么我们写两遍即可。
2.3.1.开启靶场
2.3.2.修改参数
这里是经过过滤,那么我们就可以通过上面的分析,构建我们的payload。这里抓包过程还是一样的。
payload:....//....//....//etc/passwd
2.3.3.过关
2.4.用多余的URL解码剥离遍历序列
这里简单来说,就是/被过滤了,那么过滤了可以使用编码进行绕过。
2.4.1.开启靶场
2.4.2.编码
找个网站对其进行URL编码两次即可,第一次/编码成%2F,然后再编码成%252F即可。burp上自带的编码好像编出来的不对。
2.4.3.修改参数
根据获取到的编码然后构建payload。
payload:..%252F..%252F..%252Fetc%252Fpasswd
2.4.4.过关
这里还是一样哦,修改后取消拦截,刷新页面。
2.5.验证路径起始
这里对图片的访问是绝对路径查询了,也就是说之前可以直接返回根目录进行查找,而现在,若之前返回根目录查找就会出现拦截情况。现在必须带上前面的路径,那么根据特性,可以再后面添加呀。
2.5.1.开启靶场
2.5.2.验证路径
2.5.3.修改参数
这里根据之前我们分析的,可以再文件的路径上再添加路径进行返回,然后查询即可,那么就可以构建payload了。
payload:/var/www/images/../../../etc/passwd
那么这里就相当于再images目录下,退回到www然后再退回到var然后再退回到根,开始查找etc/passwd。
2.5.4.过关
2.6.空字节旁路验证文件扩展名
这里对访问文件的后缀进行了验证,那么这里我们在更改的时候就需要加上原先的后缀。
2.6.1.开启靶场
2.6.2.修改参数
通过前面的分析,对后缀添加验证了,那么我们在修改完参数后,把后缀添加上去,例如这里是.jpg,那么在修改的时候就需要把.jpg添加上去,但是添加上去会使我们访问的路径出现错误,那么这里就需要考虑,将后缀在完成验证后,能不产生效果,那么就可以使用空字节%00,那么就可以根据这个构建payload即可。
payload:../../../etc/passwd%00.jpg