php代码审计小结 2018-09-09 04:42:19 Steven Xeldax > 持续缓慢的更新 > 持续缓慢的更新 # 通用代码审计 # php常见漏洞 常见的代码审计思路有以下四种: (1) 根据敏感关键字回溯参数传递过程。 (2) 查找可控变量,正向追踪变量传递过程。 (3) 寻找敏感功能点,通读功能点代码。 (4) 直接通读全文代码。 ## php sql注入漏洞 ## php xss漏洞 ## php文件包含漏洞 ### php本地文件包含LFI php文件包含的函数一般如下,我们可以根据传入这些函数的参数是否可以由用户控制来判断漏洞是否存在。。 ``` include() include_once() require() require_once() ``` 这些函数一般存在于模块加载,模板加载,cache调用。 常见的包含代码如下所示: ``` <?php define("ROOT",dirname(__FILE__).'/'); $mod=$_GET['mod']; include(ROOT.$mod.'.php'); ``` 很多都限制了包含的后缀结尾必须是.php,例如include($a.'.php'),需要阶段后面的.php,通常使用的方法如下: 1.00截断,一般要满足gpc off并且php的要小于5.3.4。 2.长文件名截断。 3.转换字符集的截断,例如iconv()函数的阶段。 4.php伪协议,利用截取字符判断是不是.php,或者使用zip和phar协议绕过。利用方法可以是首先新建一个1.php,然后压缩成zip,然后把zip的名字改成1.jpg,然后利用上传功能上传上去,然后包含localhost/include.php=zip:///var/www/html/1.jpg#1.php ### php远程文件包含RFI ## php文件上传漏洞 ## php文件操作漏洞 ## php xxe漏洞 ## php命令注入漏洞 ## php反序列化漏洞 ## php逻辑漏洞 ### 安装漏洞 ### 密码找回漏洞 ### 越权漏洞 # php审计trick ## php wrapper ## iconv函数截断