「Burpsuite练兵场」目录遍历

  • A+
所属分类:安全文章

「Burpsuite练兵场」目录遍历

「Burpsuite练兵场」目录遍历


本文是 i 春秋论坛作家「dll_s」表哥分享的技术文章,公众号旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。(文末有惊喜福利,一定要看到最后!)

「Burpsuite练兵场」目录遍历

目录遍历


今天要介绍的目录遍历不是指我们在信息搜集阶段的路径爆破,而是指攻击者能够通过目录遍历漏洞,读取应用程序服务器上的任意文件,包括应用程序代码和数据、后端系统的凭据等敏感系统文件。


在某些情况下,攻击者甚至还可以通过这一漏洞,在服务器上写入任意文件,从而允许他们修改应用程序的数据或行为,并最终获得服务器控制权限。这里举一个具体的例子方便大家理解:




有一台运行有Web服务的Linux系统服务器,在该Web服务中,存在一个网页对图像路径的引用为<img src="/loadImage?filename=218.png" alt="「Burpsuite练兵场」目录遍历">,通过loadImage URL对图片进行索引,图片存储在/var/www/images/目录下。当我们访问这一网页时会发送一个GET请求,URL为http://www.host.com/loadImage?filename=218.png。此时,若服务器后台未对文件名进行检测,我们就可以构造恶意payload如../../../../etc/passwd读取服务器中的敏感文件内容并返回,这就构成了一次成功的目录遍历攻击。




../的含义为返回上一目录,/etc/passwd为Linux系统中的特有文件,存储了系统中所有用户的基本信息。而这在Windows系统中有所不同,../ 和.. 都可以用于实现返回上一目录这一目的,而相对应可用的文件路径有例如......windowswin.ini等,更多相关的敏感文件路径可以参阅扩展阅读中的链接。


实验内容


实验一:简单的目录遍历漏洞


实验提示:这一实验环境中的页面在图像引用中存在目录遍历漏洞。


实验要求:通过目录遍历漏洞获取 /etc/passwd文件内容。


「Burpsuite练兵场」目录遍历

因为漏洞存在于图片的引用当中,所以要注意筛选条件的设置,如下图为相关访问流量。


「Burpsuite练兵场」目录遍历


任意选择一条信息流发送到Repeater模块,进行目录遍历尝试。


「Burpsuite练兵场」目录遍历


通过添加多个../即可成功获取到/etc/passwd文件内容,完成实验。因为命令执行原理,这里所使用的../数量是不限的,但是不能过少,这样可能无法到达根路径。


实验二:使用绝对绕过路径遍历保护


实验提示:这一实验环境中的页面在图像引用中存在目录遍历漏洞,虽然后台拒绝了绝对路径的使用,但是将提交的文件名视为相对于默认工作目录的文件名。


实验要求:通过目录遍历漏洞获取 /etc/passwd文件内容。


「Burpsuite练兵场」目录遍历

还是一样发送到Repeater模块进行相关操作,根据提示可以使用绝对路径绕过防护。


「Burpsuite练兵场」目录遍历


使用payload/etc/passwd完成实验。


实验三:未进行递归过滤路径符


实验提示:实验环境中的页面在图像引用中存在目录遍历漏洞,且会过滤用户提交数据中的路径符。


实验要求:通过目录遍历漏洞获取 /etc/passwd文件内容。


「Burpsuite练兵场」目录遍历


这个提示简单的说就是Web应用后台会对用户提交的路径进行处理,尝试去除../这样的内容,但是由于考虑不周(比如仅进行一次判断是否存在../并去除而未进行多次递归),往往可以采取措施进行绕过,例如使用 ....// 或者 .... /。


同样监控通信流,并发送到Repeater模块进行处理。


「Burpsuite练兵场」目录遍历


使用payload ....//....//....//etc/passwd成功绕过,完成实验。


实验四:通过编码进行绕过


实验提示:实验环境中的页面在图像引用中存在目录遍历漏洞,且会阻断包含有路径遍历的用户输入,并会在使用前进行解码。


实验要求:通过目录遍历漏洞获取 /etc/passwd文件内容。


「Burpsuite练兵场」目录遍历


根据实验提示,我们可以使用编码后的payload对保护机制进行绕过。


「Burpsuite练兵场」目录遍历


使用的payload为

..%252f..%252f..%252fetc/passwd。


除了这里使用的编码,还有许多其他编码方式也可以被用于绕过此保护措施,这里列举了一些编码方式。


普通URL编码:

. = %2e
/ = %2f
= %5c

双重URL编码:

. = %252e
/ = %252f
= %255c

Unicode编码:

. = %u002e
/ = %u2215
= %u2216

UTF-8  Unicode编码:

. = %c0%2e, %e0%40%ae, %c0ae
/ = %c0%af, %e0%80%af, %c0%2f
= %c0%5c, %c0%80%5c

关于为什么%C0%AF这类编码可以被用于目录遍历,可以看这个回答,因为太长了就不进行翻译了。简单的讲就是%C0%AF是/的非法UTF-8编码,但是由于不同的具体实现导致在某些情况下其仍能被成功解码并被用于绕过常见的目录遍历防范措施。


实验五:检测路径开头的保护机制


实验提示:实验环境中的页面在图像引用中存在目录遍历漏洞,且会检测路径的开头是否为预期值。


实验要求:通过目录遍历漏洞获取 /etc/passwd文件内容。


「Burpsuite练兵场」目录遍历


程序后台会检测路径开头,那我们只需保证路径开头正确,更改后续内容即可绕过保护机制。


使用payload

/var/www/images/../../../etc/passwd。


「Burpsuite练兵场」目录遍历


完成实验。


实验六:通过零截断绕过保护机制


实验提示:实验环境中的页面在图像引用中存在目录遍历漏洞,且会检测文件扩展名是否为预期值。


实验要求:通过目录遍历漏洞获取 /etc/passwd文件内容。


「Burpsuite练兵场」目录遍历


后台程序会对扩展名进行检测,那么我们需要在附加扩展名的同时使得文件内容能够成功返回。


这里利用了一个零截断技术,由于Web应用程序使用的API允许字符串中包含空字符,但当实际获取文件名时系统API会直接截断导致成功绕过保护措施。


「Burpsuite练兵场」目录遍历


使用payload ../../../etc/passwd%00.jpg成功完成实验。


总结


目录遍历漏洞背后原理并不复杂,但是造成的危害还是不小的,主要的防范措施有以下几种:


  • 尽量避免将用户提交的输入传递到文件系统API中;


  • 在接受参数前做好验证,使用白名单策略;


  • 验证参数后,应将其追加到基本目录并做好路径规范化;


  • 使用适当的文件系统访问权限。


关于自动利用工具可以使用Kali自带的dotdotpwn,本文不作拓展介绍了,感兴趣的小伙伴可自学,链接:

https://tools.kali.org/information-gathering/dotdotpwn


文章素材来源于i春秋社区


惊喜福利


「Burpsuite练兵场」目录遍历


喜迎i春秋六周岁生日,我们诚邀每一位网安人参加周年庆典,青春无限,放肆追梦!


「Burpsuite练兵场」目录遍历

「Burpsuite练兵场」目录遍历

iPhone 12 、任天堂 Nintendo Switch 、kindle 青春版 、罗技(Logitech)K845 游戏机械键盘、小米移动电源 、i春秋定制好礼、小霸王掌上游戏机、会员免单券、现金红包...... 


奖品丰厚,数量多多,只要参与,通通有奖,快来参加吧!

「Burpsuite练兵场」目录遍历


i 春秋六周年庆典狂欢


青春无限,放肆追梦


宠粉福利,燃炸开启


活动入口

「Burpsuite练兵场」目录遍历

「Burpsuite练兵场」目录遍历

Web端体验更佳:

https://www.ichunqiu.com/birthday6th

 

「Burpsuite练兵场」目录遍历


文末下方点个在看


「Burpsuite练兵场」目录遍历

i春秋官方公众号为大家提供

前沿的网络安全技术

简单易懂的实用工具

紧张刺激的安全竞赛

还有网络安全大讲堂

更多技能等你来解锁

「Burpsuite练兵场」目录遍历


「Burpsuite练兵场」目录遍历

戳这里,开启盲盒

本文始发于微信公众号(i春秋):「Burpsuite练兵场」目录遍历

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: