跨站脚本攻击 XSS LEVEL 2

悲伤才是真正的魔鬼,越强大的,藏得越深

brutexss是一款自动检测xss漏洞的工具,开源地址我稍微修改了一下,实现批量检测xss的功能。

虽然他的检测方式是对传入的url加载payload,然后查看返回的网页中是否存在payload,这种方式的误报会比较多,但是对我这种基础的小学生来说,能够掌握其中几个payload,结合实战获取宝贵的经验,就很满足了。

chapter 1

页面返回的内容为:

在搜索框中,如果没有结果则会直接输出传入的内容,即:

输入点:keyword
输出点:<tr><td colspan="6">没有搜索到“aaaaaa”相关纪念币资料!</td></tr>

可以看到输出点在一段文本中,按照之前得到的宝贵经验,先测试一些必备的参数看看有无过滤,发现并没有….

检测:"<script>alert(666)</script>

实现弹窗:

收获:搜索框返回的位置很敏感,输出位置多测试看看什么标签可以使用。

chapter 2

这个在页面中并没有结果显示,但是你访问这个网址是不会报错,通过查看页面的源代码,找到了输出点:

双引号闭合,按照宝贵的经验测试一下必备的参数看看有没有过滤:

alert被拦截了- -,哦霍弹窗我只会alert啊,看看有没有其他方法实现弹窗目的,查了下笔记,js有三个方法可以弹窗,学到了学到了

  1. alert
  2. prompt
  3. confirm

链接

通过onmousemove(鼠标移动事件)+confirm实现弹窗,美滋滋美滋滋

查看扫描器的payload,才发现自己的知识有多么浅薄…原来只是过滤了script+alert的组合…

总结:js的弹窗有三种方式可以实现。分别是alert,confirm,prompt。通过svg标签也可以实现弹窗。

chapter 3

首先页面没有显示传入的参数,并且参数接受的只能是数字,出现英文则会报错,弹出这个:

感觉是对传参判断,只能是数字类型,否则后端直接返回一个弹窗,就在我要放弃的时候,群里有个大佬告诉我可以通过错误页面输出导致的xss,即网址存在waf拦截,但是把,你加上敏感参数比如and 1=1的话,页面返回的内容就够意思了:

这下ok了,只需要在后面加上弹窗语句就能弹窗了,总的来说还是经验不够啊。学到老活到老。

总结:对于存在waf的网址,多观察他的输出内容,可以加上敏感参数触发更多的显示内容,然后进行弹窗测试。

chapter 4

显示的结果是这样的,可能存在xss噢

查看页面源码,找输出位置:

发现是尖括号好像都变了样子,以我现在的水平当然找不到怎么突破这个…..

尝试使用事件触发弹窗,发现还是不行,输出点绕不过去….

又到了思维死点了,这个时候我尝试搜索一些存在的物品,页面返回的源码惊呆我了

如果存在物品,在下面会返回物品的网址!!

好吧确实不能限于找输出点的时候输入aaaaaa的死胡同,搜索存在的物品可能会发现更多的信息。

这个时候闭合双引号然后弹窗就行了

总结:找输出点的时候,可以先搜索哪些存在,哪些不存在,有时候返回的信息是不一样的。

chapter 5

返回页面中存在输入点返回的内容

唯一输出点在这个js函数中,虽然我没学过js,但是我想试一试能不能尝试闭合这个js函数然后插入脚本,结果是失败了- -,好吧,这个挺简单的,直接闭合前面的script标签,然后中间插一个标签即可

总结:如果输出位置在js的函数中,可以直接闭合函数

chapter 6

这个一下就找到了输入点和输出点,但是有waf….

经过很多测试都没通过,最后测试svg标签发现成功弹窗,原来是waf没有过滤svg标签,看来很有必要多学学html中的事件触发了

总结:当一些标签事件被过滤的时候,要有耐心测试其他的标签,结合使用,所以很有必要整理html中的触发事件。

chapter 7

这个和上面一样,不过诱惑点很多,比如:

看到输出这么多aaaaaaa,就判断差不多有插入位置,但是测试了好久都没有找到 - -

想到上面那个卖药的例子,于是搜索了一下存在的物品,在网页源代码找到位置

直接截断输出:

chapter 8

这个在这里看到的,过滤规则是把英文的>改成了中文的>,作者的思路是通过img标签的src错误引用触发弹窗,即

<img onerror=alert(1) src=>
<img src=1 onerror=alert(1)//
<svg onload=alert(1)//

总结:多搜索一些物品,找到稳定的输出点。

或者使用混淆绕过,比如:
<img src=1 onerror=(alert)(/xss/)>

坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%