PHP代码审计 ----- 目录穿越

目录穿越是一种网络攻击,允许黑客访问受限文件。攻击者通过操纵URL参数实现目录遍历,例如使用编码技巧绕过限制。修复方法包括限制文件访问参数,检查输入的..字符,设置openbasedir,以及使用realpath和basename函数确保安全的文件路径。
摘要由CSDN通过智能技术生成

文件的操作漏洞都有哪些??

        

什么是  目录穿越  ??

        目录穿越(Directory Traversal)攻击是黑客能够在Web应用程序所在的根目录以外的文件夹上,任意地存取被限制的文件夹执行命令或查找数据。目录穿越攻击,也有人称为Path Traversal攻击

目录穿越 ------ 漏洞危害

        攻击者可以使用目录穿越攻击来查找、执行或存取Web应用程序所在的根目录以外的文件夹。如果目录穿越攻击成功,黑客就可以执行破坏性的命令来攻击网站

目录穿越 --- 代码案例

如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其它后端文件系统的文件或目录,就会出现路径遍历

写一个代码

1.php

if(isset($_GET['file'])){
    readfile("file/" . $_GET['file']);
}

在同级目录下,创建一个file 文件夹 和  2.txt   

file文件夹里1.txt   写     穿越1

2.txt 是  穿越2

开启 phpstudy , 去访问1.php

我们开头设置的是,访问file文件夹,下的内容

传递file参数,去 访问 1.txt      xxx?file=1.txt

现在做目录穿越    去访问同级目录下的 2.txt

     xxxx?file=../2.txt

绕过方式

        对参数进行,URL编码

        .(点)    ---> %2e     反斜杠   和  正斜杠

        16位的unicode编码

        进行两次URL编码

        进行超长UTF-8 Unicode 编码

        点->%c0%2e %e0$40%ae %cOae

        反斜杠->%cOaf %e0%80af %c0%af

        正斜杠->%c0%5c%c0%80%5c

目录穿越 ---- 修复方案

        在URL 内 不要使用文件名作为参数

        检查使用者输入的文件名是否有“..”的目录阶层字符

        在php.ini文件中设置open basedir来指定文件的目录,

        使用realpath函数来展开文件路径中的"./"、"../"等字符,然后返回绝对路径名称
        使用basename函数来返回不包含路径的文件名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值