曾经某DN博客里的一个有趣的存储型XSS分析
2020-10-21 10:00:00 Author: mp.weixin.qq.com(查看原文) 阅读量:24 收藏

前言(一年前的一个XSS,已经修复,这里关注分析)

本想百度某个知识点时,点击此CSDN链接竟然弹窗了!竟然弹窗了!竟然弹窗了!重要的事说三遍。

链接地址:https://bbs.csdn.net/topics/390816889

那还不赶紧研究下呢!

分析过程

通过分析和抓包,确定来源于这个post请求:这个请求功能是通过搜索关键字返回相关的关键字博客链接和说明

默认的返回包数据太多,不利于JS调试,修改返回包插入2条包含XSS代码的数据,可看到这里数据已经经过HTML实体编码了。

那么既然弹窗了,肯定是本地js解析了,就是不知道是在script里直接执行还是写出文档进行执行(写出文档那么要把html实体编码转换为正常的字符才行)

下断点,可看到loadData这个函数负责解析返回数据的,这里t拼接时还是实体编码字符

继续走,可看到html()函数把实体编码转换为正常字符:

"  <li class="right-item cebian_item"  data-report-click={"mod":"popu_728","dest":"https://blog.csdn.net/selah1/article/details/84366274"} data-report-view={"mod":"popu_728","dest":"https://blog.csdn.net/selah1/article/details/84366274"}><a href=https://blog.csdn.net/selah1/article/details/84366274 target="_blank"><div class="content clearfix"><h5 class="" title=很郁闷 window.location.href 竟然没有权限>很郁闷 window.location.href 竟然没有权限</h5><span class="time">2012-12-10</span><span class="read so_read"> <svg class="icon no-active hover-hide" aria-hidden="true"><use xlink:href="#yuedushu"></use></svg>59</span></div><div class="right-item-desc">很郁闷alert('xss');</div></a></li>  <li class="right-item cebian_item"  data-report-click={"mod":"popu_728","dest":"https://download.csdn.net/download/duck_arrow/3900053"} data-report-view={"mod":"popu_728","dest":"https://download.csdn.net/download/duck_arrow/3900053"}><a href=https://download.csdn.net/download/duck_arrow/3900053 target="_blank"><div class="content clearfix"><h5 class="" title=jsp 刷新父页面>jsp 刷新父页面</h5><span class="time">2011-12-09</span><span class="read so_read"> <svg class="icon no-active hover-hide" aria-hidden="true"><use xlink:href="#yuedushu"></use></svg>15</span></div><div class="right-item-desc"><script>alert(document.cookie);</script>"</div></a></li>"

写出文档就弹窗了:

漏洞利用

这个post包我只发现只有打开论坛帖子链接时才会发送,打开普通博客链接则不会发送。

所以,需要在论坛发一个帖子,帖子的标题改成和你已经发表了的一篇博客有关,那么打开此帖子就会通过关键字找到你的博客帖子。

然后就是修改你的博客帖子,里面插入xss代码,反正这个jS函数会进行html实体转换。

尴尬的一点来了:修改博客内容插入XSS代码,打开这个论坛帖子,发现博客内容没有变,应该这个POST读取的是以前缓存的博客,也不知道什么时候能把缓存更新了才行。


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5MDkwNjA2Nw==&mid=2650375305&idx=1&sn=e1d739ed01baaa092d8fee110f5fb30f&chksm=beb0873589c70e23e621870cdeefefacd8c15dab17992b75989c5bbe44dae7acc681dc2e39ce#rd
如有侵权请联系:admin#unsafe.sh