web渗透测试----6、目录遍历漏洞
2023-09-11 14:17:06 时间
一、目录遍历漏洞原理
目录遍历漏洞通过操纵引用带有“点-点-斜杠(…/)”序列及其变体的变量或使用绝对路径,攻击者可以读取运行在服务器上的任意文件,包括应用程序代码和数据、后端系统的凭据以及敏感的操作系统文件。在某些情况下,攻击者能够向服务器写入任意文件,从而允许他们修改应用程序数据或行为,并最终完全控制服务器。
二、漏洞示例
<?php
$ template = 'red.php' ;
if (isset ($ _COOKIE [ 'TEMPLATE' ])) {
$ template = $ _COOKIE [ 'TEMPLATE' ];
}
?>
我们只要使用…/构造相对路径对文件进行遍历就可以达到攻击效果
… / … / … / … / … / … / … / … / … / etc / passwd
三、常见绕过
编码和双重编码:
%2e%2e%2f ../
%2e%2e/ ../
..%2f ../
%2e%2e%5c ..\
%2e%2e\ ..\
..%5c ..\
%252e%252e%255c ..\
..%255c ..\
百分比编码(又名URL编码)
Web容器对来自表单和URL的百分比编码值执行一级解码。
..%c0%af ../
..%c1%9c ..\
特定于操作系统
UNIX系统
常见的类Unix目录遍历使用该../模式。
Sudo是Unix中普遍存在的特权管理程序,
当用户使用glob通配符来指定允许用户运行哪些命令时
(例如chown /opt/myapp/myconfig/*可以被该命令利用),
它容易受到此攻击sudo chown baduser /opt/myapp/myconfig/../../../etc/passwd。
windows和DOS目录遍历使用../或者..\
每个分区都有一个单独的根目录(标记为C:\C可以是任何分区),
在该目录之上没有公共的根目录。
这意味着对于Windows上的大多数目录漏洞,攻击仅限于单个分区。
四、绕过防御示例
1、未进行任何防御
2、双写进行绕过
3、利用编码进行绕过
4、利用%00截断后缀绕过
5、利用文件路径绕过
五、漏洞防御
1、对用户的输入进行验证,特别是路径替代字符如“…/”和“~/”。
2、采用白名单的形式,验证所有的输入。
3、合理配置Web服务器的目录权限。
4、控制返回数据,保证返回数据不会泄露任何和服务器相关的隐私数据。
5、对用户传过来的文件名参数进行编码
相关文章
- 代码审计-MetInfo CMS任意文件读取漏洞
- CVE-2019-0797漏洞:Windows操作系统中的新零日在攻击中被利用
- 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
- 安全测试全面总结-7- XSS漏洞
- 安全测试全面总结-5-shell命令注入漏洞
- 墨者靶场 WordPress插件漏洞分析溯源
- XXE漏洞详解(二)——DTD基础
- session文件包含漏洞详解
- 【转载】从Docker容器漏洞谈Docker安全
- WEB漏洞攻防 - 文件上传漏洞总结
- 目录遍历漏洞——本质上是因为php这样的后端代码实现中使用了include这样的模板函数导致
- Apache Zookeeper 未授权访问漏洞【原理扫描】
- 18 - vulhub - DNS域传送漏洞
- 网络安全80端口—-PHP CGI参数注入执行漏洞
- 反序列化渗透与攻防(一)之PHP反序列化漏洞