参考文章:
XSS漏洞攻击(一)
https://blog.csdn.net/qq_43625917/article/details/96157403?ops_request_misc=&request_id=&biz_id=102&utm_term=XSS%25E6%25BC%258F%25E6%25B4%259E&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-96157403.first_rank_v2_pc_rank_v29
XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
https://blog.csdn.net/qq_35393693/article/details/86597707?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160804210719724838516110%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=160804210719724838516110&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-86597707.first_rank_v2_pc_rank_v29&utm_term=XSS%E6%BC%8F%E6%B4%9E
XSS总结
https://xz.aliyun.com/t/4067
XSS攻击进阶篇——那些年我们看不懂的XSS
http://blog.nsfocus.net/xss-advance/
声明:请勿用技术做任何非法的事!造成的任何后果由你个人承担!本人概不负责!!
一、XSS是什么
XSS攻击全称跨站脚本攻击(Cross Site Scripting),XSS是一种在Web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入到提供给其他用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。
$color{red}{XSS是一种发生在前端浏览器端的漏洞}$,所以其危害的对象也是前端用户。
二、产生的原因以及危害
1、原因
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
$color{red}{前端对用户输入的数据校验不可靠。}$
2、危害
- 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
- 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
- 盗窃企业重要的具有商业价值的资料
- 非法转账
- 强制发送电子邮件
- 网站挂马
- 控制受害者机器向其它网站发起攻击
三、XSS漏洞的分类
1、反射型
经过后端,不经过数据库
2、存储型
经过后端,经过数据库
3、DOM(本地利用)型
不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。
4、XSS盲打
类似于盲注,不知道后台对语句有什么处理,会经过后端,会经过数据库,一般由管理员或用户访问触发。
四、XSS攻击流程
1、XSS绕过
- 前端限制——抓包重放/直接F12修改前端代码
- 大小写——
<SCriPt>AleRt(test)</ScRipt>
- 拼凑法——
<scri<script>pt>alert(test)</scr<srcript>ipt>
- 注释干扰法——
<scri<!--test-->pt>alert(test)</scr<!--test-->ipt>
- 编码法——对Payload进行HTML编码
2、攻击流程
$color{red}{(未总结完)}$
- 盗用cookie,获取敏感信息。
- 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
- 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的操作如发微博、加好友、发私信等操作。
- 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
- 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDOS攻击的效果。
五、防御
在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理
- 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
- 输出转义:根据输出点的位置对输出到前端的内容进行适当转义;