【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)(下)

简介: 【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)(下)

实验4:文件路径遍历(用多余的URL解码剥离遍历序列)


信息:

还是告诉了/etc/passwd


part1:

拦截到第三个数据包

0e71b6a6ddbb4cf799d213cc18ebc762.png

part2:


发送到repeater


URL编码一次


2f634d3300bd4dc98cda29991809fb40.png


URL编码二次

abe4c514019d4511834ef64b54145162.png

使用编码绕过..%252f..%252f..%252fetc/passwd


67030df3f363447782680dfce8085863.png


数据包修改,并关闭拦截

9d486390aa1745faa26f34c355158a3b.png


7df0afdc8d5a44dfb14006e93cf503d6.png

4、基文件夹开头


要求用户提供的文件名必须以预期的基文件夹开头


如,/var/www/images


需要包括基本文件夹,加上遍历序列:


filename=/var/www/images/../../../etc/passwd


涉及实验:


实验5:文件路径遍历(验证路径起始)


实验5:文件路径遍历(验证路径起始)



还是告诉了/etc/passwd


part1:


拦截到第四个数据包


e009c33fafc446aaa739c75108b42576.png


part2:


发送到repeater


带基路径的遍历/var/www/images/../../../etc/passwd


8adaea69bec7462591a50faad271daec.png


数据包修改,并关闭拦截

e4ffbb74a22e47388b53dff4e57829c9.png


7c92b08e69ec4d449e67872a24a9e235.png



5、文件扩展名固定

应用程序要求用户提供的文件名必须以预期的文件扩展名(如.png)结尾,则可以使用空字节在所需扩展名之前有效地终止文件路径,如


filename=../../../etc/passwd%00.png(实战中可能得考虑更多办法,如在hex中改为%0a换行截断等方法)


涉及实验:


实验6:文件路径遍历(空字节旁路验证文件扩展名)


实验6:文件路径遍历(空字节旁路验证文件扩展名)


还是告诉了/etc/passwd


part1:


拦截到第三个数据包


7208e3b268d54c4a8beb86d10d7f0ade.png


part2:


发送到repeater


直接上路径,可能没什么有用报错信息


就得结合场景自己尝试了(原文件为图片,就可能会检测后缀,如果是上传,就可能还会检测文件类型了)


53413ee2ac8c4a0a98782742bf1f63e0.png


带上图片的后缀,并空字节截断后缀


../../../etc/passwd%00.png

c9094228640140f1a7ba5d47379ba2f6.png


数据包修改,并关闭拦截

d7e1a78b09b94456b2580d77a6b43165.png


8c7215bb7ce044afbe269d74e5042c0e.png



四、如何防止目录遍历攻击

1、防止文件路径遍历漏洞的最有效方法是完全避免将用户提供的输入传递给文件系统API。许多执行此操作的应用程序函数可以重写,以便以更安全的方式提供相同的行为。


2、如果认为将用户提供的输入传递给文件系统API是不可避免的,那么应该同时使用两层防御来防止攻击:


————


(2)白名单(输入前):应用程序应该在处理用户输入之前对其进行验证。理想情况下,验证应该与允许值的白名单进行比较。如果对于所需的功能来说这是不可能的,那么验证应该验证输入是否只包含允许的内容,比如纯字母数字字符。


————


(2)符合路径规范(输入后):验证提供的输入后,应用程序应将输入附加到基目录,并使用平台文件系统API规范化路径。应用程序应验证规范化路径是否从预期的基目录开始。


7d62be979184459ab44139ed85f387fe.png

目录
相关文章
|
存储 Web App开发 JavaScript
【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)
【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)
1035 0
【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)
|
安全 数据安全/隐私保护
【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)(上)
【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)(上)
238 0
【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)(上)
|
安全 Java Shell
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
304 0
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
|
SQL Oracle 安全
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(上)
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)
295 0
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(上)
|
SQL 关系型数据库 MySQL
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(下)
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(下)
328 0
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(下)
|
供应链 安全 数据安全/隐私保护
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(上)
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(上)
686 0
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(上)
|
安全 算法 Oracle
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(下)
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(下)
348 0
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(下)
|
存储 JSON JavaScript
【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)
【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)
260 0
【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)
|
网络协议
【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)(下)
【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)(下)
158 0
【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)(下)
|
安全 Shell API
【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)(上)
【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)(上)
226 0
【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)(上)