PHP文件包含漏洞详解(1)
本地包含漏洞的利用(这里先忽略截断问题,下面会将截断的方法) 1、包含同服务器中上传的jpg、txt、rar等文件,这个是最理想的情况了。 2、包含系统的各种日志,如apache日志,文件系统日志等 其中apache当记录格式为combined,一般日志都会很大,基本无法包含成功。包含log是有自动化攻击程序的。 其中鬼子的博客中有提到一个空格的问题。见:《邪恶的空格-PHP本地文件包含漏洞的新突破口》http://huaidan.org/archives/1144.html 解决空格问题其实把一句话base64加密后再写入就可以执行了。 3、包含 /proc/self/environ . 这个环境变量有访问web的session信息和包含user-agent的参数。user-agent在客户端是可以修改的。参考:《Shell via LFI – proc/self/environ method》 http://hi.baidu.com/root_exp/blog/item/9c0571fc2d42664fd7887d7d.html 4、包含由php程序本身生成的文件,缓存、模版等,开源的程序成功率大。 5、利用本地包含读取PHP敏感性文件,需要PHP5以上版本。如看到“config”的源码如下: index.php?pages=php://filter/read=convert.base64-encode/resource=config 特别的情况用到readfile() 函数不是包含执行,可以直接读源码。 6、利用phpinfo页面getshell。一般大组织的web群存在phpinfo的机会挺大的。 poc和介绍参考: 《利用phpinfo信息LFI临时文件》 http://hi.baidu.com/idwar/blog/item/43101de153370126279791f2.html 7、利用包含出错,或者包含有未初始化变量的PHP文件,只要变量未初始化就可能再次攻击 具体见: 《include()本地文件包含漏洞随想》 http://www.2cto.com/Article/200809/29748.html 8、结合跨站使用 index.php?pages=http://127.0.0.1/path/xss.php?xss=phpcode (要考虑域信任问题) 9、包含临时文件文件。这个方法很麻烦的。参考: 《POST method uploads》 http://www.php.net/manual/en/features.file-upload.post-method.php 解决临时文件删除方法:慢连接 (注:前提是 file_uploads = On,5.3.1中增加了max_file_uploadsphp.ini file_uploads = On,5.3.1中增加了max_file_uploads,默认最大一次上传20个) windows格式:win下最长4个随机字符( ‘a’-’z’, ‘A’-’Z’, ’0′-’9′)如: c:/windows/temp/php3e.tmp linux格式:6个随机字符( ‘a’-’z’, ‘A’-’Z’, ’0′-’9′) 如:/tmp/phpUs7MxA 慢连接的两种上传代码参考: 《PHP安全之LFI漏洞GetShell方法大阅兵》 http://www.myhack58.com/Article/html/3/62/2011/32008_2.htm 10、当前实在找不到写权限目录时候,注入到log中再寻找写权限目录。如注入到log. Linux: index.php?pages=/var/log/apache/logs/error_log%00&x=/&y=uname windows: index.php?pages=..apachelogserror.log%00&x=.&y=dir 具体参考《PHP本地文件包含(LFI)漏洞利用》 http://kingbase.org/blog/php_local_file_inclusion_exploit (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |