一、Web安全基础
1.1 常见的Web安全漏洞
![](https://i-blog.csdnimg.cn/blog_migrate/454f9c7106ed16572411551335969263.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3a2f4cdaca88ac750af64958e4a973.png)
1.2 安全编码原则
一切输入都是有害的!!!输出也不安全!
输入:传参,cookie、session、http header、数据库……
输出:异常信息、敏感信息、xss
没有绝对的安全……
1.3 数据验证
![](https://i-blog.csdnimg.cn/blog_migrate/8480d959031d4e4654d89b5f6c57558c.png)
1.4 身份认证&会话管理
![](https://i-blog.csdnimg.cn/blog_migrate/1d8299d9b889ff6949425a74b7d22a52.png)
1.5 授权管理
![](https://i-blog.csdnimg.cn/blog_migrate/c03e58c8d8daf4e6bae1407abebc28b5.png)
1.6 存储安全
![](https://i-blog.csdnimg.cn/blog_migrate/c5139adca1fbd5b62a3730c719a4b9c8.png)
二、跨站脚本攻击及其安全编码
2.1 定义
XSS
(Cross Site Script
)漏洞,从本质上来说就是将数据注入到了静态脚本代码中(HTML或者Javascript等),当浏览器渲染整个HTML文档的过程中触发了注入的脚本,导致了XSS攻击的发生。
![](https://i-blog.csdnimg.cn/blog_migrate/5964338df42217584a06e98d498e921a.png)
2.2 XSS攻击模式
![](https://i-blog.csdnimg.cn/blog_migrate/9d2fb6764ee85f3f4a9f89c31ebd0f2f.png)
2.3 XSS的利用
某生活网站存在反射型、存储型跨站脚本攻击
在wap页面的网友中心发表提问页面中,应用程序对用户的输入过滤不严格,导致存在存储型跨站脚本攻击,攻击者在标题处构造跨站脚本”<img src=@ onerror=alert(19)>
”
![](https://i-blog.csdnimg.cn/blog_migrate/8ab97bad9973796fbaf6773d807b9d65.png)
提交问题后回到“我的帖子”页面,可以看到跨站脚本被执行,弹出“19”窗口,
![](https://i-blog.csdnimg.cn/blog_migrate/ca606eab350c0b5645837a2a2d88974c.png)
2.4 XSS的分类
详细介绍: juejin.cn/post/689012…
三、跨站请求伪造及其安全编码
3.1 定义
Cross-site Request Forgery
–在某个恶意站点的页面上,促使访问者请求被攻击网站的某个 URL,从而达到改变服务器端数据的目的
攻击者盗用了你的身份,以你的名义发送恶意请求
–诞生于2000年,火于2007/2008年
–90%的网站存在此类漏洞
–特征为目标站点无token或者referer限制
–利用方式分GET与POST两种
CSRF 与 XSS的区别?
Csrf
的破坏力取决于受害者的权限,与浏览器机制有关。
- CSRF,跨站请求伪造(Cross Site Request Forgery)
- 在用户会话下对某个请求发出GET/POST请求,而请求并非用户自愿发出
- 网站通过cookie识别用户,当用户在某网站成功进行身份验证后,浏览器会得到一个标识其身份的cookie。只要不关闭浏览器或退出登录,以后访问这个网站都会带上这个cookie
- 如果这期间被人诱骗请求了这个网站的url,则相当于发出了身份认证后的请求,可能会执行一些用户不想做的敏感操作
详细介绍: juejin.cn/post/689012…
四、文件上传及其安全编码
4.1、非法文件上传
非法文件上传产生的主要原因就是在服务器端没有对用户上传的文件类型做校验或者校验不完整,导致用户可以上传恶意脚本到服务器。
![](https://i-blog.csdnimg.cn/blog_migrate/68e155957c2f1af330fcb621f72b5a0c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f92380c46ef73cd75a8fd1bbba8bf75e.png)
4.2、文件上传防护
1、白名单检查文件扩展名,不属于白名单内的,不允许上传。
2、上传文件的保存目录不可解析jsp、php等脚本语言
3、文件名随机命名。如UUID、GUID,不允许用户自定义。
4、如果允许,对上传的图片文件进行渲染
5、记录日志
![](https://i-blog.csdnimg.cn/blog_migrate/ff67e34fc6820e575d694a3fdf8cc9dc.png)
五、越权漏洞及其安全编码
5.1 定义
5.1.1、垂直越权漏洞
垂直越权漏洞,也称为权限提升,是一种“基于URL的访问控制”设计缺陷引起的漏洞。由于Web应用程序没有做权限控制或者仅在菜单上做了权限控制,导致恶意用户只要猜测其他管理页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
![](https://i-blog.csdnimg.cn/blog_migrate/25aa705dee53800940e2aa4e98c48ff5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8dae0a37e3e85ad6c330822c3fc1d279.png)
5.1.2、水平越权漏洞
水平越权漏洞,是一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时没有判断数据的所属人而导致的越权数据访问漏洞。如服务器端从客户端提交的request参数(用户能够控制的数据)中获取用户id,恶意攻击者通过变换请求ID的值,查看或修改不属于本人的数据。
![](https://i-blog.csdnimg.cn/blog_migrate/f63b1e629fea224aac4fd5981561772b.png)
5.2、越权漏洞防护
5.2.1、垂直越权漏洞
垂直越权漏洞:在调用功能之前,验证当前用户身份是否有权限调用相关功能(推荐使用过滤器,进行统一权限验证)
5.2.2、水平越权漏洞
水平越权漏洞:在用户进行操作时,从session中获取用户id,将传入的参数与用户的身份做绑定校验。
六、业务安全
在电子银行系统中,除了常规的如SQL,XSS,CSRF、XXE等web漏洞外,更重要的是其业务上的安全。银行业务直接关系到用户的经济利益,因而保证其业务上的安全及其重要。
6.1、账户信息安全
账户是一个系统的入口,关系到用户最直接的利益,因而账户的安全在业务安全中占及其重要的地位。账户体系分多个层次,每个环节的漏洞,都将给用户带来极大的损失。
分类
- 信息查询
- 撞库风险
- 弱密码
- 密码找回
- 密码找回凭证太弱,容易被爆破
密码找回凭证可以从客户端、URL、网页源代码中直接获取
最后提交新密码时修改用户ID为其他ID
跳过验证步骤、找回方式,直接到设置新密码页面
用户登录时依据cookie中的某字段来区分账户
6.2、业务数据安全
金额数据篡改
抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程。
商品数量篡改
抓包修改商品数量等字段,将请求中的商品数量修改成任意数额,如负数并提交,查看能否以修改后的数量完成业务流程。
更多安全问题请查看链接: blog.nsfocus.net/web-vulnera…