这是我参与「第四届青训营 」笔记创作活动的第八天
Cross-Site Scripting (XSS)
与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此将跨站脚本攻击缩写为XSS
- 攻击者嵌入恶意脚本代码到正常用户会访问到的页面中
- 当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的
XSS攻击方式
攻击原理
当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。
XSS攻击特点
- 通常难以从UT上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
XSSdemo
攻击者可以直接提交恶意脚本
Cross-site request forgery(CSRF)跨站域请求伪造
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
CSRF攻击示意图
GET类型的CSRF
这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:
<a href="https: // bank.com/transfer?to=hacker&amount=100">点我抽奖</a>
<!--确实中奖了-->
<img style="display:none;" src="https://bank.com/transfer?to=hacker&amount=100/>
<form action="https://bank/transfer_tons_of_money" method="POST">
<input name=" amount" value="1000000000000" type="hidden"/>
<input name="to" value="hacker" type="hidden"/>
</form>
SQL Injection
通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。