一、Xss漏洞原因
由于代码过滤不严格,导致js代码被执行的输出问题
二、xss漏洞危害
网络钓鱼,盗取各类账号
窃取用户cookie
窃取用户浏览请求
弹广告,刷流量
网页挂马
提升用户权限
传播跨站脚本蠕虫等
二、反射性 XSS
1、输入正常的内容,会显示hello 123
2、输入js代码,<script>alert(132)</script>,会弹窗
三、存储型 XSS
1、输入正常内容,会这样显示
2、输入js代码,<script>alert(132)</script>,弹窗,不会显示我们输入的内容,但是这句代码是存在的,我们可以查看源文件,这时候任何电脑访问该地址都会弹出这个弹窗
四、手动挖掘xss漏洞
可以测试用户输入地方、文件上传地方、flash、留言处等。
有时需要闭合标签
五、工具挖掘xss漏洞
OWASP Xenotix XSS
1、服务设置
2、选择get方式
3、输入可能存在xss的页面地址,点击fuzz
六、绕过限制
1、绕过 magic_quotes _gpc(火狐插件可以自动转换)
magic_quotes_ gpc=ON是php中的安全设置,开启后会把一些特殊字符进行轮换,比如单引号(')转换为(\'),双引号(")转换为(\"),(\)转换为(\\)
比如:< script> alert("xss");</script>会转换为<script>alert(\"xss\");</script>,这样我们的
Xss就不生效了
针对开启了 magic_quotes_gpc的网站,我们可以通过 javascript中的 String.fromCharCode方法来绕过,我们可以把 alert("xss")转换为
String.fromCharCode(97,108,101,114,116,40,34,88,83,83,34,41)那么我们的XSS语句就变成了
< script> String.fromCharCode(97,108,101,114,116,40,34,88,83,83,34,41,59)</script>
String. fromCharCode()是javascript中的字符串方法,用来把ASCII转换为字符串.
2、HEX编码
我们可以对我们的语句进行hex编码来绕过XSs规则
比如:<script>alert("xss");</script>可以转换为
%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%78%7
3%73%22%29%3b%3c%2f%73%63%72%69%70%74%3e
3、改变大小写
在测试过程中,我们可以改变测试语句的大小写来绕过XS则
比如:<script> alert("xss");</script>可以转换为
<SCRipt> ALeRt( "XSS" );</script>
4、使用空白字符
<scri%00pt>alert(2)</sc%00ript>