跨站脚本漏洞接收平台
输入127.0.0.1/xsser/login.php进入到XSS平台
点击生成payload,通过payload给的代码向网站里输入,查看是否存在XSS漏洞
获取信息
跨站脚本攻击漏洞绕过及防御:
绕过方法
1.<>被过滤的情况下:
在特殊标签下,可以构造一些事件
当源代码是
<input type=”text” name=”name” value=””>——这种形式的代码,输入在value里,需要用”来合并,然后输入事件 如:
” autofocus οnfοcus=alert(1)
自动集中到输入里,onfocus事件会发出alert弹窗1.
2.alert被过滤的情况下:
使用另一种形式也能达到弹窗的效果——编码,prompt和confirm
编码:
使用加密的字符串,实际上是<script>alert(3)</script>
使用JavaScript的伪协议(字符实体的编码)
Prompt:
3.on事件被过滤的情况下:
4.其他
防御:
- 阻止恶意代码注入; 2.阻止恶意操作执行;
对于反射型和存储型xss,都可通过服务端进行过滤防御:
~黑名单:过滤特殊符号及字符
~白名单:只允许特定类型及符号
~编码及转义:
~cookie中设置httponly:
~确保执行脚本来源可信:
~不使用有缺陷的第三方库(数据库)
~过滤函数
注:htmlspecialchars()默认配置是不过滤单引号的,只有设置了:quotestyle选项为ENT_QUOTES才会过滤单引号。
XSS编码
HTML编码:字符实体
URL编码:
Javascript编码;