【愚公系列】2023年05月 攻防世界-Web(file_include)
文章目录
- 前言
- 1.文件包含漏洞
- 2.php伪协议
- 3.php包含漏洞函数
- 一、file_include
- 1.题目
- 2.答题
- 总结
前言
1.文件包含漏洞
文件包含漏洞(File Inclusion Vulnerability)是一种常见的Web应用程序漏洞,攻击者可以通过Web应用程序的漏洞,以某种形式包含恶意文件,或者包含在Web服务器上的其他敏感文件,从而实现权限提升、信息泄露、远程代码执行等攻击。
具体案例介绍包括:
PHP系统中的文件包含漏洞:攻击者可以利用PHP特有的文件包含函数include()或require()来实现代码执行攻击,例如常见的漏洞文件为:
//定义一个变量$file并将其传递给include函数中执行 $file = $_GET['file']; include($file);
攻击者通过修改传递的$file变量,替换为恶意代码文件,最终实现远程代码执行攻击。
JSP系统中的文件包含漏洞:JSP脚本中包含的内容可以是任何JSP页面、HTML或纯文本。在其中使用
<%@ include file=""/%>
指令来包含其他JSP文件中的代码。攻击者可以通过修改包含指令中的传递的参数值,来实现包含恶意文件,导致远程代码执行漏洞。ASP系统中的文件包含漏洞:ASP脚本也存在类似于PHP和JSP的文件包含漏洞,攻击者可以利用Server.Execute()、Include()等函数访问其他文件并引用其中的内容,通过修改参数值来执行恶意代码达到攻击目的。
以上三种常见的文件包含漏洞案例只是冰山一角,现实世界中还存在很多其他的文件包含漏洞,系统管理员需要针对不同情况采取不同措施,保障系统的安全性。
2.php伪协议
php://filter
是一个可以在 PHP 中进行数据过滤和流处理的协议。它可以让你通过一些特定的过滤器来处理各种数据流,包括文件,HTTP 请求,以及其它的输入和输出数据流。这些过滤器可以用于实现各种功能,例如数据加密和解密,数据压缩和解压缩,以及数据格式转换等。不过需要注意的是,如果使用不当,该协议也可能导致一些安全问题。协议的语法:
php://filter/[标准输入输出流标识][使用的过滤器]
其中,[标准输入输出流标识] 可以是以下字符串之一:
- read: 表示标准输入流(stdin)
- write: 表示标准输出流(stdout)
- 其它文件系统可用流标识符,比如 php://temp (临时流)和 php://memory(内存流)等。
而 [使用的过滤器] 部分则是一个或多个 PHP 过滤器名称,多个过滤器名称以 | 分隔。例如:urlencode|strip_tags
例如,如果您想使用 urlencode 过滤器将一段字符串编码并将其写入标准输出流(stdout),您可以使用以下语法:
php://filter/write=urlencode|stdout
php://input
是一个伪协议,它允许开发者从请求体中获取原始的 POST 数据,具体语法为:
php://input
使用时,一般可以按以下步骤实现:
- 使用 file_get_contents 函数读取 php://input ;
- 使用 json_decode 函数解析 POST 数据;
- 使用解析后的数据进行后续操作。
需要注意的是,使用 php://input 时需要确保请求数据采用 POST 方法传输。
3.php包含漏洞函数
文件包含漏洞也是一种“注入型漏洞”,其本质就是输入一段用户能够控制的脚本或者代码,并让服务器端执行。
- require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。
- include(),找不到被包含的文件时只会产生警告,脚本将继续运行。
- include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
- require_once()与require()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
一、file_include
1.题目
2.答题
?filename=php://filter/read=convert.base64-encode/resource=flag.php
发现read,base64,encode等关键字符被过滤了,进行混编
?filename=php://filter/convert.iconv.UTF-8*.UCS-4LE*/resource=flag.php
convert.过滤器支持convert.iconv. 格式,使用方法:
convert.iconv.<input-encoding>.<output-encoding>
或
convert.iconv.<input-encoding>/<output-encoding>
例如:
convert.iconv.UCS-4*.UCS-4BE ---> 将指定的文件从UCS-4*转换为UCS-4BE 输出
得到flag:cyberpeace{3a1557a9724bd39b8ccc97dd8435ac97}
总结
php支持的编码格式(部分)
UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*
ISO-2022-JP
ISO-2022-JP-MS
CP932
CP51932
SJIS-mac(别名:MacJapanese)
SJIS-Mobile#DOCOMO(别名:SJIS-DOCOMO)
SJIS-Mobile#KDDI(别名:SJIS-KDDI)
SJIS-Mobile#SOFTBANK(别名:SJIS-SOFTBANK)
UTF-8-Mobile#DOCOMO(别名:UTF-8-DOCOMO)
UTF-8-Mobile#KDDI-A
UTF-8-Mobile#KDDI-B(别名:UTF-8-KDDI)
UTF-8-Mobile#SOFTBANK(别名:UTF-8-SOFTBANK)
ISO-2022-JP-MOBILE#KDDI(别名:ISO-2022-JP-KDDI)
【愚公系列】2023年05月 攻防世界-Web(file_include)相关推荐
- 【愚公系列】2023年05月 攻防世界-Web(lottery)
文章目录 前言 一.lottery 1.题目 2.答题 前言 dirsearch是一个用于Web服务器的爬虫工具,它可以快速地扫描网站的目录,并找出隐藏的文件和目录.dirsearch可以检测出许多常 ...
- 【愚公系列】2023年05月 攻防世界-Web(unseping)
文章目录 前言 一.unseping 1.题目 2.答题 前言 反序列化漏洞是一种安全漏洞,存在于那些使用序列化技术的应用程序中.反序列化是将已序列化数据还原回对象的过程.攻击者可以通过构造恶意序列化 ...
- 【愚公系列】2023年05月 攻防世界-Web(shrine)
文章目录 前言 一.shrine 1.题目 2.答题 前言 Flask是一个轻量级的Web应用程序框架,用于Python编程语言.它是基于Werkzeug WSGI工具箱和Jinja2模板引擎构建的. ...
- 【愚公系列】2023年05月 攻防世界-Web(FlatScience)
文章目录 前言 一.FlatScience 1.题目 2.答题 前言 Robots协议,也称作robots.txt,是一种在Web站点中告诉搜索引擎蜘蛛哪些页面可以被访问的协议.该协议规定了机器人在访 ...
- 【愚公系列】2023年05月 攻防世界-Web(Web_php_include)
文章目录 前言 1.文件包含漏洞 2.php伪协议 3.php包含漏洞函数 一.Web_php_include 1.题目 2.答题 2.1 伪协议解题 2.2 中国蚁剑 2.3 数据库写入 前言 1. ...
- 【愚公系列】2023年05月 攻防世界-Web(fileclude)
文章目录 前言 1.文件包含漏洞 2.php伪协议 一.fileclude 1.题目 2.答题 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion Vulnerability)是一种常 ...
- 【愚公系列】2023年05月 攻防世界-Web(fileinclude)
文章目录 前言 1.文件包含漏洞 2.php伪协议 一.fileinclude 1.题目 2.答题 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion Vulnerability)是一 ...
- 【愚公系列】2023年05月 攻防世界-Web(Web_php_unserialize)
文章目录 前言 一.Web_php_unserialize 1.题目 2.答题 前言 PHP的序列化漏洞是一种安全漏洞,攻击者可以利用这种漏洞来执行恶意代码或获取敏感信息.具体来说,攻击者可以通过在序 ...
- 【愚公系列】2023年05月 攻防世界-Web(Confusion1)
文章目录 前言 一.Confusion1 1.题目 2.答题 前言 SSTI漏洞(Server Side Template Injection,服务端模板注入漏洞)是一种 web 应用程序中的安全漏洞 ...
最新文章
- 营销自动化权威指南_免费电子书:自动化根本原因分析的完整指南
- 前端学习(2636):文件缺失
- Linux php 中文乱码解决
- 无法找到或创建字体'SansSerif'.某些字符可能无法正确显示或打印。
- linux系统上tftp服务器的安装配置
- 1020 月饼 (25 分)—PAT (Basic Level) Practice (中文)
- VMware:未能将管道连接到虚拟机, 所有的管道范例都在使用中
- Tolerance (定义发票允差)
- PyTorch-GPU版本、Tensorflow-GPU版本配置
- 说说IUnitOfWork~DbContext对象的创建应该向BLL层公开
- 都2021年了,不会还有人连深度学习都不了解吧(七)- 评估指标篇
- Java程序性能优化:让你的Java程序更快、更稳定
- matlab匹配滤波检测频谱感知,一种基于匹配滤波器的频谱感知和主用户功率识别方法...
- 基于人工萤火虫优化(GSO)算法的函数寻优算法
- 梦开始的地方——VS2019调试技巧
- 分析中国古建筑最大的特点
- 排查到解决问题的过程:浏览器突然无法访问网页,错误代码:0x80004005,最终定位:“电脑打开热点,电脑就不能上网了”
- session error的问题
- C语言基础——预处理命令
- 我的物联网项目(二十四) 订单编号生成规则
热门文章
- 2016河北职称计算机考试报名入口,河北唐山2016年下半年职称计算机考试报名入口...
- 本科生学习GNSS算法 中级教程(三)- rtklib多系统多频单点定位算法 - 多频残差计算以及新增配置
- Java mail接收邮件 回复邮件 转发邮件
- 音乐人必备软件-FL studio-Overture-Guitar Pro
- C#SerialPort类的学习
- linux和aida64,AIDA64 6.10版上线:支持中国兆芯
- python——偏函数的使用
- 网络服务器不稳定怎么解决,iqoo网络不稳定怎么解决
- 迎来第七轮融资的纷享销客,依然选择回归连接型CRM
- align的对齐方式