web安全|青训营笔记
文章第一句话为“这是我参与「第四届青训营 」笔记创作活动的的第4天
攻击篇
xss
盲目信任用户提交内容
xss特点
通常很难从ui上感知‘窃取
窃取用户信息
绘制ui,诱骗用户信息
可以直接提交恶意脚本
Stores xss
-
恶意脚本被存在数据库
-
访问页面 读数据 被攻击
-
危害最大 对全部用户可见
reflected xss
-
不涉及数据库
-
从url上攻击
dom-based xss
-
不需要服务器参与
-
二u以攻击全在浏览器完成
r vs dom
完全注入脚本的地方
Mutation-based xss
-
利用浏览器DOM渲染的特性
-
不同的浏览器
csrf
-
在用户不知情的前提下
-
利用用户权限
-
构造指定HTTP请求,窃取或修改用户敏感信息
sql injection
请求 sql参数(恶意注入)—> sever参数—》sql运行 —>获取其他数据
injection
- cli
- os command
- server-side requst forgery
DoS
通过某种方式,导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应
插播 正则表达式–贪婪模式
redos 基于正则表达式的DoS
贪婪:n此不行n-1次再试试,—回溯
DDoS
短时间内,来自大量僵尸设备的流量,服务器不能及时完成请求,导致请求堆积,进而雪崩,无法响应新请求。
攻击特点
直接访问ip
任意aip
消耗大量宽带
洪水攻击:
防御篇
不要相信用户
xss现成工具
前端
主流框架默认防御 xss
google-closure-library
服务端(node)
domPurity
用户需求:必须要动态生成Dom
转义
上传svg
自定义跳转链接
自定义样式
插播 :Same-origin Policy
同源策略
CSP
哪些源被认为安全
来自安全的脚本可以执行,否则直接抛错
CSRF-iframe攻击
anti-patten
get!=get+post 不要偷懒
samesite dome
injection
找到项目中查询SQ
使用prepared statement
injection by SQL
最小权限原则
拒绝sudo ||root
建立允许名单+过滤
拒绝rm
对URL类型参数进行协议,域名,ip等限制
拒绝访问内网
Regex Dox
Code Review
代码扫描+正则性能测试
拒绝用户提供的使用正则
DDoS
流量治理
过滤
{
负载均衡
API网关
}
抗量
{
CDN
快速自动扩容
非核心服务降级
}
传输层-防御中间人
HTTPS
{
HTTP
TLS
}
TCP
IP
HTTPS的一些特性
可靠性:加密
完整性:MAC验证
不可抵赖性:数字签名
HTTPS–完整性
传输内容
加密信息+加密信息——hash
接收方
if(hash(加密信息)===加密信息——hash){
ok
}
else{
not ok
}
HTTPS___不可抵赖:数字签名
\