web开发安全——攻击篇 | 青训营笔记

148 阅读4分钟

前言

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

攻击篇

要想应对网络安全问题,学习网络攻击的几种形式必不可少!

Cross-Site Scripting(xss)

特点:

1.通常难以从UI上感知(暗地执行脚本)
2.窃取用户信息(cookie/token)
3.绘制UI(弹窗),诱骗用户点击/填写表单
复制代码

image.png

image.png

XSS可分为4大类:

存储型(stored XSS)

  • 恶意脚本被存在数据库中
  • 访问页面->读数据 = 被攻击
  • 危害最大,对全部用户可见

反射型(Reflected XSS)

  • 不涉及数据库
  • 从URL上攻击

看个栗子:

image.png

上面提供了URL带了param参数,下面是服务器代码,会从用户请求中读取这个字段,字段直接生成HTML片段,如果攻击者把这个字段构造成一个恶意的script标签,那么当用户访问页面的时候,就会命中这种XSS攻击。

基于DOM型(DOM-based XSS)

  • 不需要服务器的参与
  • 恶意攻击的发起+执行,全在浏览器中完成

Reflected XSS vs DOM-based XSS

两者有点类似,但有一个重要的区别:完成注入脚本地方不同!!!

  • Reflected XSS 是在服务端这里注入脚本
  • DOM-based XSS是在浏览器这里注入脚本

135c240f-479b-431e-85d2-9d27ba59b5e8.png

Mutation-based XSS

  • 利用了浏览器渲染DOM的特性(独特优化)
  • 不同浏览器,会有区别(按浏览器进行攻击)

image.png

有点懵,没事,看个栗子: 如图,如果把<noscript><p title="</noscript><img src=x onerror = alert(1)>"> 进行渲染的话,就会变为第二张图的效果,发现<p title="会作为noscript标签的内容,而<img src=x onerror = alert(1)>会作为正常标签进行渲染,src属性不符合规范,所以会触发onerror事件,回调一触发,完成这种XSS攻击。

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

特点:

1.在用户不知情的前提下
2.利用用户权限
3.构造指定的HTTP请求,窃取或修改用户敏感信息
复制代码

案例分析:

image.png 如上图,用户收到了一封邮件,里面有个链接,他点了一下,去访问了一个恶意的页面,在这个页面中攻击者构建了一个攻击请求,向银行发起一个转账,而这个请求实在另外一个域名,银行服务器(server A)接受到了这个请求,发现请求上有用户的cookie,而且验证通过,认为该请求合法,然后就执行转账操作,完成转账返回结果,最后用户平白无故的丢失了一笔钱。可以发现整个过程,用户没有访问银行的页面,但对应得转账接口却被请求了,且请求成功,这就是点醒的跨站伪造请求。这个故事告诉我们不要随意点击不知名的链接!!!

// 跨站伪造请求
// CSRF-GET
// CSRF-beyond GET
复制代码

4be3de27-790c-4cd8-bf2b-b0bd944d857e.png

d1092d76-aa07-4577-abe1-af3a5d357838.png

b21cf86e-9d50-4d97-b648-45c290a71219.png

注入(Injection)

SQL Injection

9d04102c-3693-45e1-87ab-30c71de326ff.png

  1. 读取请求字段
  2. 直接以字符串的形式拼接SQL语句

6d16ac45-d054-4eff-a8b0-7079351d4c31.png 执行以上代码,完成删库跑路成就!

image.png

CLI

命令行攻击

OS command

image.png

Server-Side Request Forgery(SSRF)

服务器端的伪造请求,严格来说SSRF不是injection,但原理类似。

服务拒绝(DOS)

概念:通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多的请求,导致请求挤压,进而雪崩效应形成。

ReDoS:基于正则表达式的DoS

image.png 如图,服务器写了一个贪婪的正则表达式,攻击者传入一个容易发生回溯的字符串abababababab...b通过正则试图匹配上ababababababa,第一次发现不行,回溯,又不行,又回溯...这样导致服务器的响应时间大大延长,导致结果吞吐量明显降低,响应用户的次数大大下降。

Distributed DoS(DDoS)

概念:短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而形成雪崩效应,无法响应新请求。(不搞复杂的,量大就完事)

攻击特点

  1. 用于通信的ICMP消息不需要明确的端口号,避免被IDS检测到——TFN2K
  2. 哪里阻止DDoS,哪里就受到攻击——防火墙
  3. 源IP地址可以伪装,但攻击路径不能伪装——防火墙过滤进出的伪造源IP地址的数据包。所以攻击一旦进行之后,要立即瓦解网络,防止追踪
  4. IP溯源技术只能追踪到攻击者所在的网关

image.png

如图,攻击者构造大量的SYN给服务器,服务器会返回ACK,SYN,但攻击者此时不会返回第三次ACK,导致第三次握手未完成,连接数不能被释放,从而很快服务器达到最大连接次数,所有的新请求都无法响应,完成一次洪水攻击.

基于传输层攻击方式

中间人攻击

image.png

总结

网络安全无小事,切莫点击毒链接!