助你一臂之力
📋问题1:如何快速发现漏洞点的?
🎯编写自动化脚本跑,BP跑
🎯如发现特定框架等,使用特定的目录字典进行跑
🎯特殊字符字典搜集
📋问题2:使用的工具有哪些?
🎯BP必备(爆破跑的时候,HTTP历史记录收集收集)
🎯dirsearch.py、御剑等
一、目录遍历
1、意义
1、目录遍历(也称为文件路径遍历)是一个Web安全漏洞,使得攻击者能够读取运行应用程序的服务器上的任意文件(包括应用程序代码和数据、后端系统的凭据以及敏感的操作系统文件)
2、在某些情况下,攻击者可能能够写入服务器上的任意文件,从而允许他们修改应用程序数据或行为,并最终完全控制服务器
二、通过目录遍历阅读任意文件
1、示例
1、销售商品图像的购物应用程序: 图像通过HTML加载,如 <img src="/loadImage?filename=218.png"> 该loadImage图像URL采用filename参数并返回指定文件的内容 映像文件本身存储在磁盘上的位置/var/www/images/。为返回映像,应用程序将请求的文件名附加到此基目录,并使用文件系统API读取文件的内容。 文件路径:/var/www/images/218.png
2、攻击者: 如果应用程序未对目录遍历进行防御,请求以下URL,从服务器的文件系统中检索任意文件: https://insecure-website.com/loadImage?filename=../../../etc/passwd 这将导致应用程序从以下文件路径读取: /var/www/images/../../../etc/passwd (../表示向上一级目录) Unix的操作系统上: ../ Windows: ../ and ..\ 都是有效的目录遍历序列 系统文件: https://insecure-website.com/loadImage?filename=..\..\..\windows\win.ini
涉及实验:
实验1:文件路径遍历(简单)
实验1:文件路径遍历(简单)
信息:
需要我们检索/etc/passwd的内容
part1:
随便点开一个博客
(同时抓包)
第三个数据包就带有filename参数进行检索内容,修改filename参数
part2:
发送到repeater进行分析
../../../etc/passwd
检索出了密码
在拦截的数据包中修改后取消拦截
三、利用文件路径遍历漏洞的常见障碍
1、对于../等的限制
1、将用户输入放置到文件路径中的应用程序实现了某种类型的防御路径遍历攻击,而这些攻击通常可以被绕过
————
2、如果应用程序从用户提供的文件名中剥离或阻止目录遍历序列,那么就有可能使用各种技术绕过防御
如,使用文件系统根目录的绝对路径(filename=/etc/passwd)直接引用文件,而不使用任何遍历序列。
————
涉及实验:
实验2:文件路径遍历(用绝对路径旁路阻止遍历序列)
实验2:文件路径遍历(用绝对路径旁路阻止遍历序列)
绝对路径/etc/passwd
part1:
点击一个博客
第三个数据包的filename参数
part2:
发到repeater
题目提示的绝对路径/etc/passwd
账号密码回显
修改数据包,并关闭拦截
2、嵌套遍历序列
如....// or ....\/ ,当内部序列被剥离时(过滤一遍),它将恢复为简单的遍历序列
————
涉及实验:
实验3:文件路径遍历(非递归地剥离遍历序列)
实验3:文件路径遍历(非递归地剥离遍历序列)
还是告诉了/etc/passwd
part1:
拦截到第三个数据包
part2:
发送到repeater
使用嵌套遍历....//....//....//etc/passwd
数据包修改,并关闭拦截
3、编码绕过
1、除去遍历序列:在某些上下文中,如在URL路径或filename的参数multipart/form-data请求时,Web服务器可能会在将输入传递到应用程序之前去除任何目录遍历序列。
2、编码绕过:有时可以通过URL编码或甚至双URL编码来绕过这种清理,../ 字符,一次编码%2e%2e%2f、二次编码%252e%252e%252f。各种非标准编码,如..%c0%af或..%ef%bc%8f,也可能起到作用
3、工具:BP Intruder提供了一个预定义的负载列表(将GitHub或自己收集的特殊编码导入,观察哪些可以使用),其中包含各种可供尝试的编码路径遍历序列。
涉及实验:
实验4:文件路径遍历(用多余的URL解码剥离遍历序列)