【漏洞学习笔记1】XSS 跨站脚本攻击(Cross Site Scripting)
一、练习平台
(1):https://xssaq.com/yx/
对应:https://www.cnblogs.com/bmjoker/p/9446472.html
(在线网站练习本地无下载资源没有js代码,参考文章中的js源代码)
(2):XSS Chanllenges:http://xss-quiz.int21h.jp/
对应:https://blog.csdn.net/taozijun/article/details/81277187
(在线网站练习,js代码参考文章,更偏近模拟真实xss挖洞)
(3):DVWA dvwa搭建参考:https://blog.csdn.net/u011585332/article/details/105132868/
搭建成功后访问http://127.0.0.1/dvwa/index.php即可。
对应练习教程:https://blog.csdn.net/weixin_43625577/article/details/89917893
(https://blog.csdn.net/python_LC_nohtyp/article/details/106731406)
(4)搭建的win2003的iis服务器网站(留言本网站)
针对XSS漏洞使用kali中beef工具生产恶意代码&挟持网站,参考:https://blog.csdn.net/python_LC_nohtyp/article/details/109734663
二、XSS
1、XSS简介
XSS,跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的 Script 代码,当用户浏览该页面时,嵌入其中 Web 里面的 Script 代码就会被执行,从而达到恶意攻击用户的目的。
2、XSS类型
反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。特点:弹窗警告、广告;javascript;在浏览器中执行。
**存储型XSS:**持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
**DOM型XSS:**文本对象模式XSS,通过修改页面的DOM节点形成的XSS,可存储型,可反射型,只取决于输出地点。
3、漏洞形成的根源
服务器对用户提交的数据过滤不严;
提交给服务器端的脚本被直接返回给其他客户端执行;
脚本在客户端执行恶意操作;
三、反射型XSS
1、原理
获取cookie
- 黑客首先向服务器发送js脚本
- 服务器将含有js脚本的页面发给黑客
- 黑客将js脚本的页面的url发送给被攻击方
- 黑客获取被攻击方的cookie

重定向
- 黑客首先向服务器发送js脚本
- 服务器将含有js脚本的页面发给黑客
- 黑客将js脚本的页面的url发送给被攻击方
- 被攻击方点击url重定向到第三方网站
四、XSS常用手段
1)cookie劫持
HttpOnly或者ip与cookie绑定等方式都可以阻止。
2)构造GET和POST请求
3)钓鱼
4)识别浏览器
UserAgent可以伪造,辨别浏览器自身的独特的功能可知版本。
5)XSS Worm