代码审计学习笔记(三)

文件包含

php的文件包含可以直接执行包含文件的代码包含文件的格式不受限制

文件包含分为本里文件包含和远程文件包含,文件包含常用函数有:

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

inculde在包含文件时报错会继续执行下面的代码,而require会报错退出程序

挖掘经验

文件包含漏洞大多出现在模块加载,模版加载以及cache调用的地方,我们在挖掘文件包含漏洞的时候

可以先跟踪一下程序的运行流程,看看里面模块加载时包含的文件是否可控,还可以直接搜索那几个

文件包含的函数回溯查看有没有可控的变量

本地文件包含有多种利用方式,比如上传一个允许上传的文件格式的文件再包含来执行代码,包含php上传的临时文件

在请求url或者ua里面加入要执行的代码,通过包含日志执行,linux下包含/proc/self/environ文件

远程文件包含可以直接包含远程文件,或者使用php伪协议:php://input,

添加post数据<?php @eval($_POST['shell']); ?>

文件包含大部分是需要截断的,因为正常程序里面的代码都是include($mod.".php")等

古老的截断方法%00,php5.3以后修复了这个问题

--------------------------------------

未完待续

posted @ 2021-08-11 15:01  Tankcz  阅读(31)  评论(0)    收藏  举报