RCE之文件包含漏洞

10 篇文章 1 订阅
10 篇文章 0 订阅

文件包含

是指编译器进行预处理时复制指定的文件内容代替源文件中预处理命令的过程,一个源文件可以将另一个源文件的全部内容包含进来。初衷是为了减少程序代码的冗余

文件包含漏洞原理

可以试想一下,开发人员如果每一个代码文件中都要使用到同一段代码,非常繁琐,所以通常会将用到的代码转换成一个文件,让每一个用到它的代码都包含在里面,而无需再次编写。这种调用文件的过程一般被称为包含文件。但由于这种灵活性,从而导致客户端可以调用任意恶意文件,从而造成文件包含漏洞。

文件 PHP 中的文件包含分为本地包含远程包含(allow_url_include = on)

本地文件包含测试

测试链接:CTFHUB

可以看到,这里网页包含了一个shell文件,构造payload来调用shell.txt

<?php
error_reporting(0);//关闭错误报告
if (isset($_GET['file'])) {//isset用来检测变量是否设置,这里是GET请求包含file
    if (!strpos($_GET["file"], "flag")) {//strpos() 函数查找字符串在另一字符串中第一次出现的位置。查找file中的flag
        include $_GET["file"];//包含file并运行
    } else {
        echo "Hacker!!!";//如果file内不包含flag则报错
    }
} else {
    highlight_file(__FILE__);
}
?>

根据代码要求,GET请求包含file,使用蚁剑连接,密码为ctfhub 

成功连接,在文件根目录拿到flag

Include()函数属于文件包含函数,通过include()或require()语句,php文件可以直接执行包含文件的代码,包含的文件格式不受任何限制,这两个语句其实是相同的,只是在处理错误方面,require会生成致命错误并且停止脚本,而include只会警告,但是脚本继续运行 

远程文件包含测试

测试地址:CTFHUB

代码与上面的相同,只不过这里给了一个phpinfo,打开后发现一个非常重要的信息

 

allow_url_fopen为on的时候,既开启远程文件包含功能。allow_url_include 为on的时候,允许使用include。注:可以在php.ini文件中设置开闭,一般关闭【路径:/etc/php/7.0/apache2/php.ini】

在这里我们得先了解一下什么是php://,以及php提供的各种杂项输入输出流

php://(访问各个输入/输出流),提供了IO流允许访问 PHP 的输入输出流、标准输入输出和错误描述符,内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。如php://stdin、php://stdout 和 php://stderr 允许直接访问 PHP 进程相应的输入或者输出流。如php://input、php://output,php://input是一个可以访问请求的原始数据的只读流,构造payload。

 

文件包含漏洞的危害

文件包含不仅能够包含web文件目录中的一些配置文件(比如Web应用、数据库配置文件、config文件),还可以查看到一些Web动态页面的源代码,为攻击者进一步发掘web应用漏洞提供条件,甚至一旦与路径遍历漏洞相结合,还可能直接攫取目标系统的用户名与密码等文件,进行目录遍历等等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当面试官询问我SQL注入、XSS、文件上传以及RCE远程命令执行漏洞的相关知识时,你可以使用以下话术进行回答: 1. 面试官:请介绍一下SQL注入漏洞。 你:SQL注入是一种常见的web应用程序漏洞,攻击者通过在用户输入中插入恶意的SQL代码,成功绕过应用程序的输入验证,从而可以执行未经授权的数据库查询、修改或删除操作。为防止SQL注入攻击,我们需要对用户输入进行严格的验证和过滤,并使用参数化查询或预编译语句来防止恶意SQL代码的执行。 2. 面试官:请解释一下XSS漏洞。 你:XSS(跨站脚本)漏洞是一种允许攻击者将恶意脚本注入到web应用程序的漏洞。当用户浏览包含恶意脚本的页面时,这些脚本会在用户的浏览器上执行,导致攻击者能够窃取用户的登录凭证、修改页面内容或进行其他恶意操作。为了防止XSS攻击,我们需要对用户输入进行合适的验证和过滤,并使用安全的编码方式来输出数据,如HTML转义或使用Content Security Policy(CSP)来限制脚本的执行。 3. 面试官:请讲解一下文件上传漏洞。 你:文件上传漏洞是指在web应用程序中存在未正确验证用户上传文件的安全问题。攻击者可以通过上传带有恶意代码的文件,从而在服务器上执行恶意操作,如执行任意命令、获取敏感数据或远程控制服务器。为了防止文件上传漏洞,我们需要对用户上传的文件进行严格的验证和过滤,限制可上传文件的类型和大小,并在保存、读取和执行文件时采取适当的安全措施。 4. 面试官:请简要说明一下RCE远程命令执行漏洞。 你:RCE(远程命令执行)漏洞是一种允许攻击者在受影响的系统上执行任意命令的漏洞。攻击者通过利用应用程序中的安全漏洞,成功注入恶意代码并执行系统命令。这种漏洞可能导致攻击者完全控制受影响的系统,进行敏感数据的窃取、服务器崩溃等恶意行为。为了防止RCE漏洞,我们需要保持应用程序和服务器的补丁更新,进行输入验证和过滤,以及使用安全编码和访问控制机制来限制恶意代码的执行。 请记住,以上是对每种漏洞的简要解释,你可以根据自己的了解和经验进行适当的展开和补充。在回答问题时,尽量用简明扼要的语言表达,并展示你对漏洞原理和相关防御措施的深入理解。祝你面试顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值