风炫安全Web安全学习第四十三节课 路径遍历漏洞

路径遍历

0x01 漏洞概述

路径遍历攻击(也称作目录遍历)的目标是访问web根目录外存储的文件和目录。通过操纵使用“点-斜线(…/)”序列及其变体引用文件的变量或使用绝对文件路径,可以访问存储在文件系统上的任意文件和目录,包括应用程序源代码或配置和关键的系统文件。应该注意的是,对文件的访问受到系统操作访问控制的限制(例如在Microsoft Windows操作系统上锁定或使用中的文件)。这种攻击也被称为“点点斜线”,“目录遍历”,“目录爬升”和“回溯”。

OS特性

Unix类 OS:

根目录: "/"
目录分割符: "/"

Windows OS:

根目录: "<驱动器盘符>:\"
目录分割符: "\" or "/"

经典 Mac OS:

根目录: "<驱动器盘符>:"
目录分割符: ":"

0x02 漏洞特性

接下来的示例展现了应用是如何处理使用的资源的

http://example.com/getUserProfile.jsp?item=../../../../etc/

又比如这个Cookie的例子:

Cookie: USER=1826cc8f:PSTYLE=../../../../etc/passwd

在这些示例中,可以插入恶意字符串作为变量参数来访问位于Web发布目录之外的文件。

  http://some_site.com.br/get-files?file=../../../../some dir/some file http://some_site.com.br/../../../../some dir/some file

接下来的URL展显了 *NIX 密码文件泄露

http://some_site.com.br/../../../../etc/shadow
http://some_site.com.br/get-files?file=/etc/passwd

注意:在Windows系统中,攻击者只能访问Web根目录位于的分区中,而在Linux中,他可以访问整个磁盘。

demo

<?php
$dir_path=$_REQUEST['path'];
$page=scandir($dir_path);
var_dump($page);
?>
<?php
$template = "";
$template = $_COOKIE['TEMPLATE'];include ( $template );
?>

Site: xx.com intext:Index OF

0x03 漏洞防御绕过

目录限定绕过

有些Web应用程序是通过限定目录权限来分离的。可以使用一些特殊的符号~来绕过。比如提交这样的xxx.php?page=~/../boot。就可以直接跳转到硬盘目录下。

绕过文件后缀过滤

一些Web应用程序在读取文件前,会对提交的文件后缀进行检测,攻击者可以在文件名后放一个空字节的编码,来绕过这样的文件类型的检查。
比如:../../../../boot.ini%00.jpg,Web应用程序使用的Api会允许字符串中包含空字符,当实际获取文件名时,则由系统的Api会直接截短,而解析为../../../../boot.ini
在类Unix的系统中也可以使用Url编码的换行符,例如:../../../etc/passwd%0a.jpg如果文件系统在获取含有换行符的文件名,会截短为文件名。也可以尝试%20,例如: ../../../index.php%20

绕过来路验证

Http Referer : HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
在一些Web应用程序中,会有对提交参数的来路进行判断的方法,而绕过的方法可以尝试通过在网站留言或者交互的地方提交Url再点击或者直接修改Http Referer即可,这主要是原因Http Referer是由客户端浏览器发送的,服务器是无法控制的,而将此变量当作一个值得信任源是错误的。

0x04 漏洞防御

1、系统开发阶段的防御

在系统开发阶段应充分考虑系统的安全性,对目录遍历漏洞来说,需对用户提交的内容进行严格的过滤,这里主要指过滤目录跳转符,字符截断符,dir命令等。

2、系统运行阶段的防御

nginx配置open_basedir=/home/wwwroot/blog.evalshell.com:/tmp/:/proc/

0x05 参考

http://blog.evalshell.com/2021/01/10/第四十三节课-路径遍历漏洞/

风炫安全Web安全学习第四十三节课 路径遍历漏洞相关推荐

  1. 风炫安全Web安全学习第四十节课 反序列化漏洞攻击利用演示

    风炫安全Web安全学习第四十节课 反序列化漏洞攻击利用演示 0x02 反序列化漏洞利用 反序列化漏洞的成因在于代码中的 unserialize() 接收的参数可控,从上面的例子看,这个函数的参数是一个 ...

  2. 风炫安全WEB安全学习第四十四节课 敏感信息泄漏

    第四十四节课 敏感信息泄漏 敏感信息泄漏 0x01 漏洞简介 敏感数据包括但不限于:口令.密钥.证书.会话标识.License.隐私数据(如短消息的内容).授权凭据.个人数据(如姓名.住址.电话等)等 ...

  3. 风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识

    风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识 反序列化漏洞 0x01 序列化相关基础知识 0x01 01 序列化演示 序列化就是把本来不能直接存储的数据转换成可存储的数据,并且不会丢掉数据 ...

  4. 风炫安全web安全学习第二十八节课 CSRF攻击原理

    风炫安全web安全学习第二十八节课 CSRF攻击原理 CSRF 简介 跨站请求伪造 (Cross-Site Request Forgery, CSRF),也被称为 One Click Attack 或 ...

  5. 风炫安全web安全学习第二十九节课 CSRF防御措施

    风炫安全web安全学习第二十九节课 CSRF防御措施 CSRF防御措施 增加token验证 对关键操作增加token验证,token值必须随机,每次都不一样 关于安全的会话管理(SESSION) 不要 ...

  6. 风炫安全Web安全学习第二节课 HTML基础

    学习地址:HTML基础 html基础 html表单 html常用标签 前端攻防中常用的一些手法 反射性XSS Dom-based型XSS 存储型XSS 学习的网站:https://www.w3scho ...

  7. JAVA学习第四十六课 — 其它对象API(二)Date类 amp; Calendar类(重点掌握)

    Date类(重点) 开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用 <span style="font-family:KaiTi_GB2312;font-size:18p ...

  8. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  9. JavaScript学习(四十九)—构造方法、原型、对象图解

    JavaScript学习(四十九)-构造方法.原型.对象图解

最新文章

  1. 性能测试---商场模型分析
  2. 不用比较运算符及循环控制语句,判断int型的a、b两数的大小
  3. xcode开发php,xcode怎么编写c语言
  4. 北斗三号b1c频点带宽_【导航论坛】北斗三号卫星导航信号及接收策略
  5. java 数据结构_Java版-数据结构-队列(数组队列)
  6. 三十、详测 Generics Collections: TObjectList、TObjectQueue、TObjectStack
  7. pika集群水平扩展——让性能容量不再受限
  8. ASP.NET架构分析
  9. Kafka : FileNotFoundException索引文件丢失 xxx.index (No such file or directory)
  10. 基础管理薄弱服装企业如何实施ERP
  11. android okhttputils传数组,okhttp传递数组参数
  12. GCD Timer事件的精度
  13. java-jna win32 api使用
  14. 5款Windows 界面原型设计工具
  15. 利用Java计算经纬度距离工具类
  16. 计算机模拟水循环的过程,袋装水模拟做科学小实验水循环(步骤图解)
  17. 原子和非原子oc_原子宝藏
  18. CSS如何让单行文字垂直居中
  19. html里面点击重置按钮无反应,点击重置按钮后没反应.
  20. Ubuntu php安装过程,Ubuntu下Apache+PHP+MySQL安装过程详解

热门文章

  1. 小程序源码:王者荣耀改名神器-多玩法安装简单
  2. linux 查看 java版本提示错误
  3. linux中fork函数与vfork函数的区别
  4. [Go] 开源客服系统以及多商户客服系统-GOFLY在线客服
  5. KEPServer EX6的配置
  6. 直播软件开发:直播APP源码的重要程度
  7. 如何设计企业节点的『工业互联网标识解析系统』
  8. “ERR_NAME_NOT_RESOLVED“ : 如何在 Google Chrome 浏览器中修复此 DNS 错误
  9. 汤姆猫无法访问html,汤姆猫开始,但HTML不加载
  10. 【转载】网络数据包分析 网卡Offload