• jQuery火箭图标返回顶部代码


    解题部分
    题目来源
    攻防世界web高手进阶区
    1.拿到题目以后,发现是一个index.php的页面,并且设备…没有显示完全,此位置可疑。
    2.源代码中发现?page=index,出现page这个get参数,联想到可能存在文件包含读源码的漏洞,尝试读取index.php的页面源码

    通过php内置协议直接读取代码

    /index.php?page=php://filter/read=convert.base64-encode/resource=index.php
    

      

    LFI漏洞的黑盒判断方法:
    单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞。
    此处,因为源码中有提示?page=index,所以读一下index.php中的源码
    3.对源码进行base64解密


    得到源码后开始审计

    //方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试
    if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') {
    
    echo "<br >Welcome My Admin ! <br >";
    
    $pattern = $_GET[pat];
    $replacement = $_GET[rep];
    $subject = $_GET[sub];
    
    if (isset($pattern) && isset($replacement) && isset($subject)) {
    preg_replace($pattern, $replacement, $subject);
    }else{
    die();
    }
    }
    

      

    此处存在preg_replace函数,尝试测试是否存在命令注入漏洞
    函数作用:搜索subject中匹配pattern的部分, 以replacement进行替换。
    此处明显考察的是preg_replace 函数使用 /e 模式,导致代码执行的问题。也就是说,pat值和sub值相同,rep的代码就会执行。
    XFF改成127.0.0.1之后,GET进来三个参数。这里调用了preg_replace函数。并且没有对pat进行过滤,所以可以传入"/e"触发漏洞,触发后replacement的语句是会得到执行的,首先执行一下phpinfo


    执行成功
    然后使用system(“ls”)尝试获取文件目录


    使用cd进入目标文件
    system(“cd+s3chahahaDir/flag+%26%26+ls”)
    为了避免编码问题,此处不能使用空格隔开,而是使用+,%26%26为&&,意思是当前面命令执行成功时,继续执行后面的命令。


    最后使用cat命令获取flag.php中的文件
    成功获取flag。

    总结:
    思路建立:
    1.由?page=index联想到可能存在文件包含读源码的漏洞,使用/index.php?page=php://filter/read=convert.base64-encode/resource=index.php获取index.php中源码
    2.读取源码后,进行代码审计。发现存在preg_replace函数,尝试利用命令执行漏洞,获取到文件目录,最终找到目标文件
    3.读取存在flag的文件,得到flag。
    主要技能点:
    文件包含漏洞
    PHP伪协议中的 php://filter
    preg_replace函数引发的命令执行漏洞
    ————————————————
    版权声明:本文为CSDN博主「CliffordWR」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/CliffordR/article/details/98472156

  • 相关阅读:
    个人冲刺(八)
    记账本典型用户和使用场景分析
    第九周进度总结
    个人冲刺(七)
    解密微信sqlite数据库
    读取文件内容时,显示的内容明显少于文本长度
    sqlcipher 数据库解密
    Win7系统的虚拟机中安装win7系统
    NSIS笔记
    vector list map set等容器某些函数的使用区别
  • 原文地址:https://www.cnblogs.com/kuaile1314/p/11652564.html
Copyright © 2020-2023  润新知