10-文件包含、CSRF、SSRF相关练习

1、文件包含

(1)DVWA环境下去包含其他目录的任意3个文件,要求使用相对路径

  • ../../../../../(输入多个../返回系统根目录),

    • 包含账户信息文件:/etc/passwd

      image-20241110115547524

    • 包含账户组信息文件:/etc/group

      image-20241110122854275

    • 包含磁盘配置文件:/etc/fstab

      image-20241110124340465

(2)远程文件包含

  • 使用DVWA的文件包含漏洞包含 Upload-Labs 中写有<?php phpinfo();?>代码的info.txt文件。

    image-20241110125737696

  • 直接访问路径,实现远程文件包含

    image-20241110125934461

(3)中间件日志包含绕过,要求使用蚁剑连接成功

  • 需要先对日志文件和目录添加权限,让Web端有权限去访问(DVWA中,apache2日志文件路径为 /var/log/apache2/access.log)

    chmod 755  /var/log/apache2/
    chmod 644 /var/log/apache2/access.log
    
  • 利用burp抓包,防止浏览器对输入内容进行url编码

    image-20241110132339464

  • 后端日志看到一句话木马插入成功

    image-20241110132440794

  • 使用蚁剑连接(因为网站是登入的状态,所以还需要在连接时添加对应的cookie信息)

    image-20241110133827066

  • 成功拿下

    image-20241110133514055

2、CSRF

(1)DVWA-High等级

  • 使用两个账户来模拟受害者(smithy)和攻击者(admin)

    • 先通过XXS漏洞<img src=## onerror=alert(document.cookie)>获取到smithy的cookie值

      image-20241110142351690

      PHPSESSID=2irfvj6la15doosaetcr0b8dq2; security=high

    • 然后在admin用户下,通过抓包来实现CSRF漏洞(因为high等级会验证token信息,token又是不可预测参数,所以需要修改等级为low,删除token;修改cookie即可以利用smithy账户来实现密码修改)

      image-20241110144136405

    • 发现用户密码修改成功,页面变成了smithy账号且等级为low

      image-20241110144903764

    • 使用修改后的密码123456登入成功

      image-20241110145943917

(2)使用Burp生成CSRF利用POC并实现攻击

  • 使用pikachu靶场,kobe模拟受害者,vince模拟攻击者

  • 用burp抓取vince修改信息的包并生成相应的CSRF PoC

    image-20241110155216697

    image-20241110155815668

  • kebe所在的去浏览器访问,成功被修改

    image-20241110155614461

3、SSRF:ile_get_content实验,要求获取ssrf.php的源码

  • 用php://filter 来读取php源码,构造出相应的url

    image-20241110161442306

  • 由于网站会将源码解析,需要调用read参数进行编码,防止解析

    image-20241110161943471

  • 最后对经过base64编码后的代码进行解码,即得到ssrf.php的源码

    <?php
    /**
     * Created by runner.han
     * There is nothing new under the sun
     */
    
    
    $SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);
    
    if ($SELF_PAGE = "ssrf.php"){
        $ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
    }
    
    $PIKA_ROOT_DIR =  "../../";
    include_once $PIKA_ROOT_DIR.'header.php';
    
    
    
    
    
    
    ?>
    
    
    <div class="main-content">
        <div class="main-content-inner">
            <div class="breadcrumbs ace-save-state" id="breadcrumbs">
                <ul class="breadcrumb">
                    <li>
                        <i class="ace-icon fa fa-home home-icon"></i>
                        <a href="ssrf.php"></a>
                    </li>
                    <li class="active">概述</li>
                </ul>
            </div>
            <div class="page-content">
    
             <b>SSRF(Server-Side Request Forgery:服务器端请求伪造)</b>
             <p>其形成的原因大都是由于服务端<b>提供了从其他服务器应用获取数据的功能</b>,但又没有对目标地址做严格过滤与限制</p>
                导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据<br>
                <br>
                数据流:攻击者----->服务器---->目标地址<br>
                <br>
                根据后台使用的函数的不同,对应的影响和利用方法又有不一样
                <pre style="width: 500px;">
    PHP中下面函数的使用不当会导致SSRF:
    file_get_contents()
    fsockopen()
    curl_exec()
                </pre><br>
                如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,<b>则请做好目标地址的过滤</b>。
    <br>
                <br>
    
                你可以根据"SSRF"里面的项目来搞懂问题的原因
    
            </div><!-- /.page-content -->
        </div>
    </div><!-- /.main-content -->
    
    
    
    <?php
    include_once $PIKA_ROOT_DIR . 'footer.php';
    
    ?>
    

4、文件包含、目录遍历和SSRF有什么区别?

  • 文件包含漏洞:由于对上传的文件校验不严谨,导致攻击者可以将写有恶意代码的文件上传至服务器,实现加载解析达到远程代码执行的效果

  • 目录遍历漏洞:由于网站本身配置缺陷,导致攻击者可以利用目录跳转符任意浏览网站目录,导致目录及文件的信息泄露

  • SSRF:由于服务端未对目标地址进行严格的过滤,导致攻击者可以构造攻击链,控制服务端来实现对内网地址的攻击

  1. 目标不同:文件包含是传入文件;目录遍历是文件也可以是目录;SSRF是url。
  2. 使用函数的不同:目录遍历由于是使用中间件存在的漏洞即与函数无关;文件包含涉及到require、include等函数;SSRF涉及到curl、file_get_contents等函数。
  3. 利用方式不同:文件包含对文件里的内容进行操作,编译;目录遍历用来获取目录文件信息;SSRF加载指定地址的图片。
  4. 请求方不同:文件包含和目录遍历的请求方都是客户端发起,SSRF则是服务端发起。
posted @ 2024-11-10 17:40  荔枝在敲诈  阅读(128)  评论(0)    收藏  举报