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;
?>

0x03 目录穿越绕过方式

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函数来返回不包含路径的文件名称。

最新文章

  1. [译]How to Write a Git Commit Message
  2. 白银5kg
  3. [Asp.net 开发系列之SignalR篇]专题二:使用SignalR实现酷炫端对端聊天功能
  4. Android开发(二十六)——Application
  5. Linux实现ftp账号同时访问两个目录方法
  6. Nginx状态监控
  7. 使用Action、Func和Lambda表达式
  8. 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)
  9. html引入外部的jswenjian
  10. 剑指offer第10题
  11. 网络1711班 C语言第一次作业批改总结
  12. js 获取上传视频的时长、大小、后缀名
  13. zuul源码(2)
  14. RPM 包的构建 - 实例
  15. transformations 变换集合关系 仿射变换
  16. 【技术文档】jeecg3.7.3-maven搭建环境入门
  17. Jenkins + Pipeline 构建流水线发布
  18. ios unrecognized selector sent to instance出现的原因和解决方案
  19. POJ 3468 A Simple Problem with Integers(线段树:区间更新)
  20. 设置NGINX进程分配至多核CPU提升性能

热门文章

  1. R 《回归分析与线性统计模型》page121,4.4
  2. 刷题53. Maximum Subarray
  3. Java集合基于JDK1.8的LinkedList源码分析
  4. 025、Java中字符串连接与加法操作一起出现
  5. 002、创建第一个Java程序HelloWord
  6. IOCTL_DISK_GET_DRIVE_GEOMETRY
  7. VMware CentOS网络配置
  8. linux下nginx的安装和配置
  9. 八十四、SAP中的ALV创建之三,创建ALV表格
  10. T_SQL 将一列多行数据合并为一行