Web安全| 青训营笔记

54 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第八天


Cross-Site Scripting (XSS)

与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此将跨站脚本攻击缩写为XSS

  • 攻击者嵌入恶意脚本代码到正常用户会访问到的页面中
  • 当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的 image.png XSS攻击方式

image.png

攻击原理

当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。

XSS攻击特点

  • 通常难以从UT上感知(暗地执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单

XSSdemo

image.png 攻击者可以直接提交恶意脚本

image.pngimage.png


Cross-site request forgery(CSRF)跨站域请求伪造

  • 在用户不知情的前提下
  • 利用用户权限(cookie)
  • 构造指定HTTP请求,窃取或修改用户敏感信息

CSRF攻击示意图

image.png

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命令。

SQL Injection示意图

image.png