1、反射型XSS
反射型xss,非持久化,需要欺骗用户自己取点击链接才触发xss代码
攻击方法: 通过发送邮件或者诱导等,将包含xss的链接发送给目标,目标访问链接时,服务器将接收该用户的请求,并进行处理,然后服务器把带有xss恶意脚本发送给目标用户浏览器,浏览器解析这段带有xss的恶意脚本后,触发xss攻击
2、存储型XSS
存储型XSS,代码存储在服务器中的数据库里,如个人信息或者发表文章等地,可以插入代码,如果插入的数据没有过滤或者过滤不严格,那么这些恶意代码没有经过过滤将存储到数据库中,用户访问页面的时候,没有进行编码过滤输出到浏览器上,就会触发代码执行,造成XSS攻击
3、DOM型XSS
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容,结构以及样式。
DOM型XSS是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。可以利用js脚本来实现XSS漏洞的利用
常见的dom xss关键语句
document.referer
windows.name
location
innerHTML
document.write
DOM型xss程序中,只有html代码,dom通过操作html或者css实现html属性、方法、事件,因此程序中没有与服务器进行交互
4、xss测试语句
检测是否存在xss漏洞时,应该输入一些标签,例如<,>输入后查看网页源代码是否过滤标签,如果没有过滤,极大可能存在xss漏洞。
常用测试语句
<h5>1</h5>
<span>1</span>
<script>console.log(1)</script>
"><span>x</span><"
'>"><span>x</span><'
"><span>x</span>//
5、xss常见利用
xss漏洞能够通过构造恶意的xss语句实现很多功能,其中最常用的是构建xss恶意代码获取对方浏览器的cookie
kaili里面打开一个小型服务器
python -m SimpleHTTPServer 80//这个好像用不了了
python -m http.server
创建js脚本 vi xss.js,内容为
var img=document.createElement