一次XSS测试经历

释放双眼,带上耳机,听听看~!

网安引领时代,弥天点亮未来   




 

写在前面:

记一次input标签中的xss测试,测试步骤如下~

逃出闭合符号

如下所示,可以闭合双引号,但是闭合标签的时候会被实体编码掉,该显示位位于input中,所以需要在input标签中形成xss

寻找能在input标签中形成xss的payload
<input onmouseover="alert(1)"/><input onclick="alert(1)"/><input onfocus="alert(1)"/>

输入以上payload后发现均会被过滤掉,结果如下图所示:

FUZZ

1.双写

进行双写绕过的时候,发现直接把

”onmouseover=”以及”onmouseover=”前面的字母给直接清除了,但是并没有清除掉双引号,所以我猜测应该是用的正则匹配的字母。


2.FUZZ特殊符号

在特殊符号中不断的测试,发现“as+onmouseover=a” 会被直接清除掉只剩下一个“a”,但是as+aonmouseover=a”,则保留下了“asa”,直接把前后的内容拼接上了。


3.再次双写


发现再次双写还是不行,又被清除了;

这时候猜想有两种可能:

1)循环过滤:直接采用循环的方式把内容过滤到没有危险字符了才会进入下一个处理流程

2)多次过滤: 非循环过滤,只是人工写的进行了2次或者2次以上的过滤操作

4.三次拼写

发现输入三次拼写的时候,成功的绕过了他的过滤,得到了我们想要的输出:“onmouseover=”(所以应该只是写了两次过滤)

5.写出完整的payload

"o+aon+aonmouseover=mouseover=nmouseover="alert`1`

一开始我输入的alert(1),但是发现会被过滤掉,所以选择了alert`1`


6.更新触发方式

这样的payload需要人为的去点击才能触发,所以后续更新了一下触发方式,使用“onfocus=“属性加 “autofocus“可以自动触发聚焦,完成xss攻击

"autofocus+onf+aonf+ aonfocus=ocus=ocus="alert`1`" a="


修复建议

    1.采用循环过滤的方式过滤危险方法名

    2.或者过滤双引号


学海浩茫,

予以风动,
必降弥天之润!


   弥  天

安全实验室


本文源自微信公众号:弥天安全实验室

人已赞赏
安全工具

CVE-2019-0708漏洞复现(EXP利用)

2019-10-18 16:55:33

安全工具

互联网常用工具与网址(第二期)

2019-10-18 16:55:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索