代码审计学习笔记(三)
文件包含
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以后修复了这个问题
--------------------------------------
未完待续

浙公网安备 33010602011771号