web安全开发之旅(攻击篇)|青训营笔记

103 阅读1分钟

「第四届青训营 -前端基础场」笔记创作活动的第5篇笔记(一切内容仅供参考)

两个角度看web安全

  • 攻击篇

假如你是一个hacker–攻击 Cross-Site Scripting(XSS) XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。 image.png

XSS主要利用了盲目信用用户的提交内容

image.png

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

image.png

%)RK8(`~{5PA(@43ARLWE_I.png

可以直接提交恶意脚本

//提交的时候
fectch("submit",{
    bady:JSON.stringfy({
        id:"1",
        content:`<srcipt>alert('XSS');</script>`
    })
})

ctx.body=`<div><srcipt>alert('XSS');</script></div>` A9F520C327E0E6C53FB23888D2F1CCA6.jpg

Stored XSS
  • 恶意脚本被存储在数据库里面
  • 访问页面 → 读数据 = 被攻击
  • 危害最大,对全部用户可见 image.png

BCA2B663643BD7DAC4DBC42C7E5360B9.png

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

image.png

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

image.png

CSRF----beyond GET

image.png

Injection

image.png

demo

image.png

正则表达式-贪婪模式

image.png

ReDos:基于正则表达式的Dos

image.png

@G@@)W5XI{4F1OHRF5NX2EC.gif

最后

总结: 安全无小事 使用的依赖(npm package,设置是nodejs)可能会成为最薄弱的一环 left-pad事件 eslint-scope事件 event-stream事件 保持学习心态