xss学习
本文最后更新于 2025年5月8日 晚上
xss学习
类型一:未对敏感大小符号,引号等进行过滤
1 |
|
类型二:被html实体转义
可以用onfocus事件或onclick事件等on事件绕过
onfocus事件
onfocus事件在元素获得焦点时触发,最常与 <input>、<select> 和 <a> 标签一起使用,以上面图片的html标签<input>为例,<input>标签是有输入框的,简单来说,onfocus事件就是当输入框被点击的时候,就会触发myFunction()函数,然后我们再配合javascript伪协议来执行javascript代码
onclick 事件
onmouseover事件
示例1(xss_lab_level4)
类型三:某些敏感字母被替代
例如onclick被替代为o_nclick
这个时候如果大小没有过滤,就尝试用大小写绕过,否则就需要闭合标签,构造新的标签
a标签的href属性
这个属性的意思是可以当a标签被点击可以时可以跳转到某个网站,也可以执行js代码
1 |
|
示例2
类型三:某些敏感字符串被删除
一些疑似代码的字符串被删除,例如script,on,href等等
这个时候可用双写字符绕过
例如输入oonn,那么把中间的on删掉,之后就是on,hrhrefef删掉中间的href就是href,从而绕过
类型4绝大部分字符被过滤替换删除&添加http://白名单
解决方法一:href属性自带解码功能,可以用unicode编码绕过计算机预定系统
遇到检查输入的字符串是否存在http://,在payload中构造http://,只需要注释掉即可
解决方法二
有些题目可能会把http的referer参数/ua头放在前端,这时候可以抓包伪造referer/ua的内容为payload进行攻击
解决方法三
因为有一些标签的href只允许有http内容的东西通过,这时候可以在payload+注释进行绕过,例如:
1 |
|
xss学习
http://example.com/2025/01/10/xss学习/