首页 > 其他分享 >10-文件包含、CSRF、SSRF相关练习

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

时间:2024-11-10 17:30:42浏览次数:1  
标签:10 SSRF 包含 文件 .. CSRF 攻击者 目录

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=## one rror=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则是服务端发起。

标签:10,SSRF,包含,文件,..,CSRF,攻击者,目录
From: https://www.cnblogs.com/bokexiLu/p/18538237

相关文章

  • DAY109代码审计-PHP模型开发篇&动态调试&反序列化&变量覆盖&TP框架&原生POP链
    知识点1、PHP审计-动态调试-变量覆盖2、PHP审计-动态调试-原生反序列化3、PHP审计-动态调试-框架反序列化PHP常见漏洞关键字SQL注入:selectinsertupdate deletemysql_querymysqli等文件上传:$_FILES,type="file",上传,move_uploaded_file()等XSS跨站:printprint_r......
  • 毕业设计-基于多维分类的知识管理系统源码+10000字论文
    项目简介基于SpringBoot的多维分类知识管理系统,是一个旨在提高知识分享和展示效率的信息化平台。该系统主要服务于两类用户:管理员和普通用户。管理员拥有全面的管理权限,能够对用户信息、知识分类和知识信息进行添加、修改、删除和查询操作。此外,管理员还可以添加新的知识点,从......
  • 毕业设计-健身房管理系统源码+10000字论文
    项目简介本健身房管理系统是一款基于B/S架构的信息化管理平台,采用SpringBoot框架和MySQL数据库进行设计与开发,旨在提高健身房管理的系统化和规范化水平。系统主要服务于三类用户:管理员、会员和员工,为他们提供了功能丰富且界面清晰的操作环境。管理员拥有系统的最高权限,能够......
  • 毕业设计-在线教育系统源码+10000字论文
    项目简介本在线教育系统通过深入分析现有在线教育管理的不足,设计并实现了一个全面、高效的计算机管理方案。系统采用B/S架构,利用SpringBoot框架和MYSQL数据库进行开发,确保了系统的稳定性和可靠性。系统功能丰富,界面清晰,操作简单,实现了在线教育管理的系统化和规范化。管理员......
  • 11.10 javaweb day3 表格,表单标签
    表格标签:定义表格整体,可以包裹多个,1.border:表格边框的宽度2.width:规定表格的宽度3.cellspacing:规定单元之间的空间:表格的行,可以包裹多个:单元格,表头单元格可以换成<body><tableborder="3px"cellspacing="2"width="600px"><tr><th>序号</th>......
  • 241110 noip 模拟赛
    省流:\(100+100+100+0\)。T1题意:给定长度为\(n\)的序列\(a,b\),你需要找到一个字典序最大的序列\(ans\)使得对于所有的\(1\leqi\leqn\),\(ans_i=((a_i\oplusans_{i-1})+(b_i\oplusans_{i-1}))\%2^{32}\),其中\(ans_0=ans_n\)。\(1\leqn\leq3\times......
  • Windows 10 配置为 NTP 时间服务器的操作步骤及解析
    之前有过将Windows10配置为NTP时间服务器的经历,但是没有做文字记录。这次又需要做一样的配置,对网上的资料和配置细节不太确定,所以设置完后写了本篇记录。操作步骤设置服务器类型为NTP;修改注册表键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Pa......
  • 【吴恩达机器学习笔记】10-正则化解决过拟合问题
    过拟合是机器学习中一个常见的问题,它发生在模型在训练数据上表现得很好,但在未见过的测试数据上表现不佳时。这通常是因为模型过于复杂,捕捉到了训练数据中的噪声和细节,而没有学习到数据的一般模式。过拟合的定义过拟合是指模型在训练数据上能够获得比其他假设更好的拟合,但在训......
  • 11/10
    Link。考虑次小生成树的大小,显然如果加了一条边后再删一条边,删的边权值一定要严格小于加的边,所以就求出所有加的边和删的边权值相同可以加的边数。为何不考虑加的边权值小于删的边?如果存在这种边,显然最小生成树不优。Link。答案显然能取到下限,因为有\(t_j<a_{s_j}\)。Link......
  • 20241110
    T1前缀后缀首先\(q\)的数据范围是在搞笑,因为最多\(n\)次操作之后序列就没了。然后可以考虑\(f_{l,r}\)表示还剩\([l,r]\)时最多执行到了哪个操作。转移考虑下一个操作在左边做还是在右边做即可。可以对每个询问预处理出每个点左右第一个能接这个询问的点。时间复杂度......