[Jarvis OJ]–api调用–XXE漏洞学习笔记

题目地址:http://web.jarvisoj.com:9882/

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第1张图片

查看网页源码:

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第2张图片

可以看到我们点击go后,以json的形式发送了数据。抓包:

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第3张图片

 

我们看到,其实我们输入的内容并没有发送到服务器,而是发送了几个特定的值。

这题的提示是查看flag文件,用到的是XXE漏洞,有几篇原理文章参考一下:

https://security.tencent.com/index.php/blog/msg/69

http://www.freebuf.com/articles/web/126788.html

http://www.mottoin.com/92794.html

XXE漏洞就是服务器接受从客户端发送来的xml格式数据时,xml数据中恶意的引用了外部实体,将它的值绑定为服务器的目标文件,这样在服务器返回给我们解析后的值时,就会把目标文件的内容返回给我们,我们就读取了敏感文件。

但是这道题目,默认的是json格式传递,因此首先我们更改Content-Type的值为application/xml,然后传入xml代码:


]>

&any;

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第4张图片

 

得到flag

为了进一步理解xxe漏洞的使用,我有在beebox测试环境中进行了测试,我在文件/home/bee/ctf/falg.txt中写入了hellowbabyclark,现在的目标是读取到这个文件的内容,打开xxe漏洞测试的首页:

 

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第5张图片

点击按钮抓包:

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第6张图片

 

可以看出是服务器对的位置的内容解析后返还给浏览器显示,所以我们只要在这个位置写入外部实体引用即可:



]>

&xxe;Any bugs?

[Jarvis OJ]–api调用–XXE漏洞学习笔记_第7张图片

Got it!

 

大概就先学习这么多吧,写到这道xxe漏洞的题目时,微信的XXE漏洞刚刚被报出来,有兴趣的可以看下,xxe部分基本就是这个原理。

后天考数据结构,最后一门啦!!!

 

文章同步到我的博客: http://www.zjzhhb.com/archives/454

转载指明出处

 

你可能感兴趣的:(ctf,学习笔记,web安全,学习笔记)