安全开发与编码--常见10大安全漏洞

218 阅读4分钟

安全开发与编码

一 历史漏洞情况分析

西北工业大学 9月 美国国家安全局(NSA)下属的特定入侵行动办公室(TAO)使用了40余种不同的专属网络攻击武器,持续对西北工业大学开展攻击窃密

印度ICICI银行

image-20230607140751043

被轻而易举获取敏感信息

系统配置错误

二 安全形势与案例

常见10大安全漏洞

image-20230607160717753

三 漏洞与安全编码

1 权限绕过 水平越权

攻击者访问与他拥有相同权限用户的资源 所以staff信息不能通过传参

垂直越权 url设计缺陷 权限扩大到了超管

image-20230607141617031

未授权访问: 在未登录的时候 根据前端获取接口信息 会返回应用系统的敏感信息 或直接登录系统

Druid未授权! Swagger未授权访问 可以执行后台接口!

权限认证修复建议

1 先判断是否是管理员账户;

2 全局过滤器 判断当前用户是否登录及权限;

3 一定要对数据的所有者进行判断 用session/token获取

4 spring 注解有权限

5 Apache Shiro 全局过滤器 哪些路由是哪些权限可以控制的

1 配置

/login =anon

/user/admmin*=authc

2 注解

2 接口调用

短信炸弹 : 调用短信接口没有加校验 造成接口费用消耗

1 调用短信接口时候 限制短信号码发送频率

2 限制手机号 手机号从库中查到

3 设定有效期 60秒 输入次数3词

4 多次请求接口 封禁ip

5 验证码验证通过后马上清空

暴力破解修复建议

image-20230607151720428

任意用户密码重置

短信验证码回传: 响应包中不反悔验证码

第一次发 2001

第二次发2002

修改响应包 验证码根据接口返回false 提示验证错误 修改相应包之后改成true 发现进入了修改密码界面

3 敏感信息泄露

脱敏处理

前端js代码中包含加密密钥

image-20230607144335647

攻击者利用报错信息

常见漏洞

1 SQL注入

''#'' 相当于注释

where username='user'#'' and password='123'

执行时

where username='user'

闭合单引号

字符串过滤: esapi自带的针对数据库的编码规则

2 XSS

反射性xss

诱使点击恶意链接

存储型xss 非持久性跨站点脚本攻击 每次都需要用户点击

image-20230607151627989

后端获取到前端传来的sid和name数据未进行任何过滤 直接执行

存储型xss

image-20230607151950545

image-20230607152003581

dom型xss

客户端dom解析时出现的问题

修复建议: 全局过滤器 拦截器

至少需要过滤< > ' ' & 五个特殊字符

使用ESAPI 或者common 不适用于富文本编译器的情况

输出转义(建议)

image-20230607152607331

image-20230607152715810

调用安全编码函数

image-20230607152759879

富文本修复建议

image-20230607152818452

3 XML外部实体注入(XXE)

没有对外部实体数据进行安全处理

1 test 任意文件读取

image-20230607153051197

修复建议

防止xml外部实体注入

image-20230607153334597

4 (服务器)命令注入

输入字符过滤不严格

危险函数:

RunTime.getRunTime().exec()

ProcessBuilder.start()

JsEngine.eval()

image-20230607153641109

修复建议

1 禁止从客户端获取命令

2 对外部传来的字符串进行转码或者黑名单过滤 最好是白名单放行

3 工具类如下:

image-20230607153807745

5 CSRF跨站请求伪造

xss 利用站点内用户

CSRF 伪造站内用户 B造了一个和A一样的一套网站 调用B的时候 实际访问A

修复建议:Token校验 从session中获得token属性 如果是空产生新token 只有符合情况才能请求 如果不符合会认为请求是伪造的

6 SSRF 服务器端请求伪造

从公网绕过防火墙 进入172内网统一网段的服务器

ssrf

前端传入url 通过httpClient处理url

创建客户端链接通道 发送get请求给url

通过httpResponse 求情对象

如果url填写baidu.com 可以直接跳转到baidu

危害

image-20230607154612398

修复建议

image-20230607154833500

7 文件上传漏洞

image-20230607155005699

image-20230607155328309

.加空格 可以绕过上传

jdk7修复了 增加isInvalid方法检查文件名是否包含空字节

修复

image-20230607155940487

文件下载

对fileName过滤 限制指定目录下的

修复

防止目录穿越 对文件路径严格限制 只能下载download下的文件