XSS的危害
网络钓鱼,包括盗取各类用户账号
窃取用户cookie
窃取用户浏览会话
强制弹出广告页面,刷流量
网页挂马
提升用户权限,进一步渗透网站
传播跨站脚本蠕虫
JS基础知识(w3cschool)
document对象
document是一个对象,从JS一开始就存在的一个对象,它代表当前的页面(文档)
调用它的write()方法就能向该对象中写入内容
例:document.write()
可以再html引用外部js代码
<script src = x.js></script>
js代码中写入
document.write(“hello”)
JS变量
定义变量
var 变量名;
var x;
var a=1;
var b=“hello”
var c=True;
var d=a+10;
选择语句
if(){
}
else{
}
switch(){
case x:break;
case y:break;
}
循环语句
for(同java){
}
while(){
}
函数
function x(a,b){
var c = a+b
return 0
}
var xx = x(1)
conseole.log(xx)
时间
onclick属性 点击事件
function x(){
alert(/xss/)
}
<h1 onlick = "x()">hellow</h1>
反射型
存储型
DOM型
反射型
反射型跨站脚本也称作非持久型、参数型跨站脚本,这类型的脚本是最常见的,也是使用最广泛的一种,主要是用于恶意的脚本附加到URL地址的参数中
例如
http://网站/?payload = "><script>alert("xss")</script>"
一般使用的将构造好的URL发给受害者,是受害者点击触发,而且只执行一次,非持久化
存储型
存储型XSS比反射型跨站脚本更具威胁性,并且可能影响到web服务器的自身安全
此类XSS不需要用户点击特定的URL就能执行跨站脚本,攻击者事先将恶意JS代码上传或存储到漏洞服务器中,只要受害者浏览包含此恶意的代码的页面就会执行恶意代码
常用XSS调试插件(firefox)
Hackbar
Firebug
Tamper Data
Live HTTP Headers
Editor Cookie
XSS漏洞挖掘
手工挖掘
工具挖掘
手工挖掘
在数据交互的地方进行探测
如get传参
闭合标签:
""></tr></td></div></textarea><script>alert(abc)</script>
工具挖掘
awvs
netsparke
appscan
burp
xsser
xsscrapy
brutexssr
OWASP Xenotix
绕过替换函数
$x=preg_repalce("/script/","",$x)
用大小写Script绕过
$x=preg_repalce("/script/i","",$x)
双写绕过script
有时可以对语句hex编码进行绕过
反正栏什么绕什么
cookie
反射型cookie获取
借助XSS平台获取cookie
用cookie注入工具进行利用
如果网站启用http-only就接受不到cookie
那就去钓鱼吧
伪造登录后台页面