• E056-web安全应用-File Inclusion文件包含漏洞进阶


    课程名称:

    E056-web安全应用-File Inclusion文件包含漏洞进阶

    课程分类:

    web安全应用

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

    实验等级:

    中级

    任务场景:

    【任务场景】

    小王再次接到磐石公司的邀请,对该公司旗下网站进行安全检测,经过一番检查发现了该论坛的某个页面依然存在文件包含漏洞,并在服务器上发现一句话木马。反复测试后推测,小王总结了一下网站被上传一句话木马的方法可能是远程包含。为了让公司管理人员彻底的理解并修补漏洞,小王用DVWA情景再现。

    任务分析:

    【任务分析】

    当网站服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件。恶意文件可能是一句话木马也可能是含有一句话木马的文档或者图片,只要访问页面就会在当前页面源文件目录下生成一句话木马。

    预备知识:

    【预备知识】

    PHP文件包含漏洞,就是在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码

    当服务器的php配置中,选项allow_url_fopen与allow_url_include为开启状态时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。

    str_replace函数,能够对参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..\”替换为空字符,即删除。

    文件包含漏洞主要涉及到的危险函数有四个: include():执行到include时才包含文件,找不到被包含文件时只会产生警告,脚本将继续执行。require():只要程序一运行就包含文件,找不到被包含的文件时会产生致命错误,并停止脚本。

    include_once()和require_once():若文件中代码已被包含则不会再次包含。

    函数的绕过:

    可以从上图中看到代码中调用了str_replace函数,利用该函数对page参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..”替换为空字符,减小了一定几率的代码利用,不过还是可以利用双写等措施来绕过替换规则

    可以从上图中看到代码调用了fnmatch函数检查page参数,该函数要求page参数的开头必须是file,否则报错。可以利用file协议来绕过防护策略

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

    任务实施:

    E056-web安全应用-File Inclusion文件包含漏洞进阶

    服务器场景:p9_win7-1(用户名:test;密码:123456)

    服务器场景操作系统:Windows 7


    服务器场景:p9_ws03-1(用户名:administrator;密码:123456)

    服务器场景操作系统:Microsoft Windows2003 Server

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

    网络拓扑

    **************************************************************************************************************

    实战复现:

            打开火狐浏览器,在地址栏输入靶机的地址访问网页,使用默认用户名admin密码password登录:

    在DVWA页面点击“DVWA Security” 选择难易程度为“high” ,然后点击“Submit” 提交:

    点击“File Inclusion”后点击“view_source”查看源代码:

    构造链接

    http://172.16.1.4/vulnerabilities/fi/?page=file:///C:\phpstudy\WWW\php.ini

    可以发现正常显示出php.ini文件内容

    以下是其他方法(难易程度自行绕过,以下以low为例)

    远程包含一句话木马

    点击“File Inclusion

    在本地在本地搭建一个可访问的网站并写好木马脚本

            远程包含木马文件(利用的原理就是畸形解析)访问后网站服务器会在/vulnerabilities/fi目录下生成一个一句话木马:

    在网站服务器上查看目录:

    大多数上传点是可以上传图片的,图片内容包含muma.txt中的内容就会生成shell.php从而被控制

    使用封装协议读取php文件

    ———————————————————————————————————————————

    构建链接

    http://172.16.1.4/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=C:\phpstudy\WWW\vulnerabilities\fi\shell.php

    访问后会将shell.php的内容用base64密文显示出来

    用火狐插件hackbar将密文解码:

    '

    实验结束,关闭虚拟机。

  • 相关阅读:
    6.1二叉树的递归遍历(LC144,LC15,LC94)
    使用 BR 备份 TiDB 集群数据到兼容 S3 的存储
    应用实践 | 10 亿数据秒级关联,货拉拉基于 Apache Doris 的 OLAP 体系演进
    【心理学】2022-08-03 日常生活问题回答
    基于Javamail的邮件收发系统免费系统+LW
    UE4和C++ 开发-C++与UMG交互3
    HTML5详解!在HTML上增加的特性
    加强堆结构说明
    【Seata】分布式事务框架原理解析
    基于Ruoyi和WebUploader的统一附件管理扩展(上)
  • 原文地址:https://blog.csdn.net/qq_73252299/article/details/133903805