网站常见安全漏洞.pptx - 飞书云文档 (feishu.cn)
网站常见安全漏洞-客户端漏洞介绍 - 掘金 (juejin.cn)
漏洞
安全事件
漏洞分类
服务端漏洞
第三方组件漏洞
第三方包等自身的漏洞 导致本身漏洞
上面打印日志和解析json都是因为在字符串中有远方服务器的地址 解析的过程中有一些异常字符串的流程 导致下载了远程恶意的代码在本地执行
解决
发现第三方有漏洞可以进行升级 因为这种漏洞第三方一般都是会解决的
SQL注入
select 和 update 等sql可能会出现这种问题,执行了一些不可预期的sql语句
上面order_id 和 sql语句进行拼接
java
#与$区别
(1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是id,则解析成的sql为order by "id"。
(2)user_id$,如果传入的值是id,则解析成的sql为order by id。
(3)#方式在很大程度上能够防止sql注入。
(4)$方式无法防止sql注入。
(5)$方式一般用于传入数据库对象,例如传入表名。(这里得注意SQL注入问题)
(6)一般能用#的就别用$。
golang
下面是sql注入的问题 如果第一个条件为真 执行sleep 那么会延迟返回数据
解决
命令执行
恶意输入[1|id]之后可能获得某些信息 然后进行删除 更新等操作
解决
越权漏洞
业务场景中遇到的
未授权:没有进行过身份认证等 就直接获取到必须经过认证才能进行的操作
水平越权:访问到自己没有权限访问的,比如别人的数据信息(这个别人和自己相同等级)
垂直越权:普通用户访问到管理员的权限范围
水平越权
垂直越权
SSRF
将上面的stockApi直接改成下面的进行访问
在简单场景下可以通过白名单进行过滤
在复杂场景下 可以通过一些包进行host解析 判断如果是内网则拒绝访问
文件上传漏洞
会把文件二进制和其他信息放在一个post包来执行
-
上传服务端的脚本
读取文件的脚本 可以读取到服务器文件的一些信息
-
创作风险
如果返回的图像和视频等都是直接的url 那么攻击这可以直接获取到视频链接放到其他地方 而不用花钱
解决
客户端漏洞
开放重定向
如果定向的链接外部可控 存在一定的风险,可能会跳转到不好的网站
XSS
可能通过这种方式获取到token等重要信息,只需要将username换成要做的事情,比如改密码等
比如下面的场景
解决
需要在不同的阶段进行防护
对一些特殊字符拦截 防止形成html或者是对html进行encode,实在不行的话需要提供富文本功能时可以加入白名单或者黑名单(对事件型做好过滤 如onchange)
CSP在浏览器的响应头里面配置 或者是html文件中配置
CSRF
甚至可以修改转账的收款方等
例子
解决
samesite 通过不同的程度设置 来让浏览器决策请求的时候要不要带cookie(但是可能会对某些业务造成影响)
点击劫持
一种障眼法
例子
解决
CORS 跨域配置错误
请求的时候会自动带上origin头 需要判断origin的合法性
最终跳过跨域限制来不信任的origin来发起请求
比如要查询用户的key,后端会判断origin是否可以通过请求,如果是利用反射的话基本都会通过,这样就可以获取到key的信息,拿到账号信息
例子
解决
WebSocket
如果没有做好origin的限制 那么任意的origin都可以截取到消息