美文网首页
(进阶)代码审计文件包含漏洞

(进阶)代码审计文件包含漏洞

作者: FKTX | 来源:发表于2018-01-22 08:02 被阅读0次

在代码审计审核这类漏洞的时候,需要注意以下几个函数:

include(),include_once(),require(),require_once()

通常根据这几个函数,来回溯变量,检查变量是否过滤完全。若没有进行过滤,就可能存在安全隐患。

本地文件包含

本地包含通常有以下几种利用方式:

1.上传代码执行文件,利用本地文件包含漏洞来执行代码。

2.将请求url中,加入要执行的代码,然后本地包含WebServer的日志,执行代码。

3.linux环境下可以包含/proc/self/environ

远程文件包含

在代码审计中,远程文件包含这个漏洞出现的概率并不会太大。但是比本地文件包含更容易利用。

可能出现这个漏洞的前提是:必须开启了allow_url_include=on

通常远程文件包含的利用方式和本地包含一样。但是远程文件包含自己还有一种输入输出流的利用方式:

文件包含截断:

文件包含的时候,程序代码部分往往都是有后缀的,比如开发者从前端获得一个文件名,他往往会在代码中加上.php这样的后缀。假如,我们上传的文件不是.php文件,那么若想包含成功,就必须用到截断。

%00截断

在php版本为5.3之后,就没有这种漏洞了。并且,即使在5.3之前,这个%00截断也受限于GPC过滤,addslashes过滤

多个.和多个/截断

在PHP5.3之前,利用这个多个.和/也是可以截断的。而且这种方式不受GPC限制。

windows环境,240个点可以截断,或者240个./可以截断。linux环境是2048个才可以。

利用?进行伪截断

这种截断方式不受GPC和PHP版本限制。原理就是webserver将问号后面的数据当做是参数,因此可以实现截断。

文件读取漏洞

产生原因:用户请求某个文件的读取,程序没有对请求的参数进行过滤,导致任意文件读取。

代码审计方法:
可以先进行黑盒查看功能点对应的文件,在去读相关的文件,这样找的比较快。另外,就是在代码中寻找读取文件的函数,逆向追踪相关变量,找出没有过滤的变量。

文件读取函数有:
file_get_contents() , highlight_file() , fopen() , readfile() , fread() , fgetss() , fgets() , parse_ini_file() , show_source() , file()

同时,include也可能存在文件读取漏洞。还有一种我不太懂的,php输入输出流php://filter/来读取文件。

文件上传漏洞

文件上传漏洞很好理解,就是没有过滤好。开发者在写这部分功能的时候,通常要么是利用框架写,要么是利用上传函数写。因此代码审计的时候只要搜索move_upload_file()这个函数,再去看代码是否限制上传格式,是否可以绕过。

未过滤或本地过滤

未过滤就是什么文件都能上传成功。本地过滤就是截获数据包,修改就可以上传成功。

黑名单过滤

缺点,限制扩展名不够全

还有就是容易被绕过。

比如程序过滤的时候,在前端提取的是是php+空格为后缀,程序与过滤规则进行匹配,规则中有php,但是没有空格,那么就不匹配了。另外还有%00截断。

任意文件删除漏洞

任意文件删除漏洞和读取原理一样,只不过函数变成了删除函数。

补充几个常见函数:

有感叹号!

相关文章

  • (进阶)代码审计文件包含漏洞

    在代码审计审核这类漏洞的时候,需要注意以下几个函数: include(),include_once(),requi...

  • BUUCTF-Web-WarmUp

    知识点:代码审计,phpmyadmin任意文件包含漏洞参考:phpmyadmin 4.8.1任意文件包含涉及函数:...

  • 网络安全之文件包含漏洞总结

    介绍 文件包含漏洞属于代码注入漏洞,为了减少重复代码的编写,引入了文件包含函数,通过文件包含函数将文件包含进来,直...

  • DedeCMS v5.7 通过文件包含和CSRF的配合利用

    该靶场使用了 DedeCMS v5.7 ,所以将其源码下载,进行代码审计。 文件包含漏洞出现在 /dede/sys...

  • 🔎 看图说话:文件包含(File Inclusion)漏洞示例

    1、File Inclusion文件包含(也有叫路径遍历)漏洞,严格来说,文件包含漏洞是“代码注入”的一种; 2、...

  • php安全

    文件包含漏洞** 本地文件包含**能打开并包含本地文件的漏洞,被称为本地文件包含漏洞(LFI)%00截断,php内...

  • phpMyAdmin v4.8.1 文件包含漏洞

    本地搭建 phpMyAdmin v4.8.1 的环境。 既然是审计文件包含漏洞,那么我们只需要关注 include...

  • 2021-12-06-java代码审计初步认知

    一、代码审计的定义代码审计是一种以发现安全漏洞,程序错误和程序违规为目标的源代码分析技能。 二、代码审计需要的能力...

  • 文件包含漏洞

    定义:在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄...

  • 文件包含漏洞

    几乎所有的脚本语言中都会提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,在JSP...

网友评论

      本文标题:(进阶)代码审计文件包含漏洞

      本文链接:https://www.haomeiwen.com/subject/ltttaxtx.html