0x02 写一个简单的目录穿越?phpif(isset($_GET[file])){//判断我们传入的变量是否可控 r
标签:
0x00 目录穿越目录穿越(Directory Traversal)打击是黑客能够在Web应用措施地址的根目录以外的文件夹上,任意的存取被限制的文件夹,执行命令或查找数据。目录穿越打击,,也与人称为Path Traversal打击。
0x01 目录穿越-缝隙风险打击者可以使用目录穿越打击来查找,执行或存取Web应用措施地址的根目录以外的文件夹。如果目录穿越打击告成,黑客就可以执行粉碎性的命令来打击网站。
0x02 写一个简单的目录穿越 <?php if(isset($_GET['file'])){//判断我们传入的变量是否可控 readfile(filename:"file/" . $_GET['file']);//读取我们file文件夹下的文件 } ?> <?php ??? ????$fileName='D:\PHPSTUDY2018\PHPTutorial\WWW\file\1.txt'; ????readfile($fileName);//显示所有内容 ????$a=readfile($fileName);//返回总字数并且显示所有内容 ????echo?$a; ?>1:进行URL编码
点–>%2e 反斜杠–>%2f 正斜杠–>%5c
2:进行16为Unicode编码
点–>%u002e 反斜杠–>%u2215 正斜杠–>%u2216
3:进行双倍URL编码
点–>%252e 反斜杠–>%u252f 正斜杠–>%u255c
4:进行超长UTF-8 Unicode编码
点–>%c0%2e %e0$40%ae %c0ae
反斜杠–>%c0af %e0%80af %c0%af
正斜杠–>%c0%5c %c0%80%5c
常用来组合风险最大,好比文件上传后我们可以通过文件穿越获取到文件路径
0x04 目录穿越修复方案1:在URL内不要使用文件名称作为参数
2:查抄使用者输入的文件名是否含有“.."的目录阶层字符。
3:在php.ini文件中设置open_basedir来指定文件的目录。
4:使用realpath函数来展开文件路径中的”./" "../"等字符,然后返回绝对路径名称。
5:使用basename函数来返回不包罗路径的文件名称。
2020/1/31 PHP代码审计之目录穿越缝隙
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30843.html