- 总结反射型、存储型、DOM型XSS特点和区别
反射型XSS(非持久型XSS):
特点:
攻击代码不存储在服务器上,攻击者通过特定的URL传递给受害者。
服务器将恶意代码反射回浏览器执行。
攻击代码的执行依赖于用户点击特定的链接。
攻击范围相对较小,需要特定的URL进行攻击。
存储型XSS(持久型XSS):
特点:
攻击代码存储在服务器上,如数据库、用户信息或文章。
服务器将包含恶意代码的页面提供给用户,当用户访问该页面时,代码被触发执行。
攻击代码的执行与服务器端的存储有关,不需要用户点击特定链接。
危害性较大,攻击范围广,可以不需要寻找被攻击对象。
DOM型XSS(DOM反射型XSS):
特点:
攻击代码不存储在服务器上,通过修改页面的DOM结构来执行恶意脚本。
攻击者通过URL传入参数控制触发攻击。
攻击代码的执行依赖于浏览器端的DOM解析。
被攻击对象与反射型XSS类似,需要向攻击对象发送特定的URL。
区别:
被攻击对象:
反射型XSS和DOM型XSS的被攻击对象需要特定的URL,而存储型XSS可以在任何访问包含恶意代码的页面的用户上实施攻击。
解析位置:
反射型XSS的脚本被解析的地方是浏览器,存储型XSS的脚本被解析的地方是服务器,DOM型XSS也是浏览器。
持久性:
反射型XSS和DOM型XSS不具有持久性,攻击代码不会存储在服务器上。
存储型XSS具有持久性,攻击代码存储在服务器上,直到被删除或服务器挂机。
危害性:
存储型XSS的危害性较大,攻击范围广,可以不需要寻找被攻击对象。
反射型XSS和DOM型XSS的攻击范围相对较小,需要特定的URL进行攻击。
- XSS 的fuzz字典
- 一、fuzz字典下载地址
https://github.com/fuzzdb-project/fuzzdb
https://github.com/TheKingOfDuck/fuzzDicts
https://github.com/TuuuNya/fuzz_dict
https://github.com/jas502n/fuzz-wooyun-org
使用git clone命令即可下载
- Xss通关
Level 1
可以看到在url中包含payload
第二关
可见test被绑定给了页面的输入框,为了实现我们的JavaScript代码就必须先闭合test外的两个双引号“”和input的两个书名号><
第三关
可以看到key=
使用上一关的代码试试发现我们的代码”<””>”被转义改掉了
换一个注入代码 ' οnmοuseοver=javascript:alert() '
第四关
可以看到其中的value=“try har”
试一试上一关的代码
第五关
看起来和上一关一样
同样的代码注入
函数被一个下划线改掉了
重新构造一个注入代码
"> <a href=javascript:alert()>xss</a> <"
第六关
看不出特殊情况
试试上一关的注入代码
又是下划线问题
大小写避开下划线
第七关
还是先用常规代码试试
还是可以看到被更改函数名,on被删掉了
试试多加入一个on
第八关
常规方法看看情况
所有的关键词都被在中间添加了下划线,变成了小写。说明大小写方法和双写法都不管用
但是可以看到这一次的代码被直接放到了href链接下,猜测可能这次并不需要像之前一下闭合代码,直接构造alert函数输入就行
使用unicode编码
javascript:alert()