| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1585 人关注过本帖
标题:一次XSS测试经历
取消只看楼主 加入收藏
源哥
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2019-9-5
收藏
 问题点数:0 回复次数:0 
一次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.或者过滤双引号
搜索更多相关主题的帖子: 清除 input 触发 测试 alert 
2019-09-11 11:33
快速回复:一次XSS测试经历
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060052 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved