安全漏洞整改系列(一)

 

 

 

 图片拍摄于西安大雁塔广场玄奘像

 

笔者目前做toB的业务,对接的客户还包括一些toG性质的公司,这类公司对安全问题的关注度日益增长,面对这种情况,我们开发人员也需要做出一些改变,以前逻辑上正确就行,现在安全上也不能出纰漏。

 

接下来我阐述一下近期我们遇到的一些安全问题,以及一些整改措施。

问题1:密码明文传输

漏洞等级:高危

漏洞详情:输入账号密码登录后拦截请求数据,发现用户名密码以明文的方式进行传输。

 

 

 

漏洞危害:攻击者通过嗅探、中间人攻击等方法能够直接获取用户的账号密码。

 

如果是你看到这份报告你还会继续使用自己花钱购买的这套软件吗?我估计大部人是不敢用了,这么敏感的信息居然在网路上裸奔,太吓人了。

 

怎么办呢?说实话我第一眼拿到这份报告的时候也是有点闷逼的,以前确实没处理过这类问题,或者说以前在某个环节上已经规避了这类问题,仔细一想我以前接触过的系统全是https的,https已经帮我们做了加密,所以不需要这种担心,这里贴一张图帮助理解。

 

 图片来源于bing

解决方式其实也比较明确了,将密码加密传输就好了:

1.让客户升级https

2.使用非对称加密算法RSA对密码进行加密

 

至于让客户升级https这件事来说,推动起来确实比较费劲,toB客户的一个特点是决策周期很长,层层汇报下来不知道时间会花多久,所以我们还是选择了第2种方式来实现,伪代码如下:

前端:引入jsencrypt.js
var rsaEncryptor = new rsaEncryptor("rsa 公钥");
var password = rsaEncryptor.encrypt($("password").val());

后台
RsaDecryptor = new RsaDecryptor("rsa 私钥");
String password = RsaDecryptor.decrypt(password);

感兴趣的同学可以去F12一下京东和支付宝的登录请求,也是使用了RSA加密这种方式,即使已经是强制https的情况下。

 

问题2:用户投诉模块存在存储XSS漏洞

漏洞等级:高危

漏洞详情:投诉内容填写攻击脚本<script>alert(document.cookie)</script>

管理员处理投诉,弹窗,泄露cookie,窃取用户

 

 

 

设想一下如果把alert(cookie)换成将cookie发送到黑客的服务器,那用户的session是不是被成功窃取了,这个后果不堪设想,可见XSS漏洞的威力,如果这是一个大型论坛,估计这个事件就要上头条了,吃瓜的可以搜索一下搜狐当年的XSS漏洞“SOHU视频XSS漏洞导致其用户成为DDOS肉鸡”。

 

回到我们的场景来说,其实是因为开发人员在展示内容的时候使用了jquery的html导致的,当然这不是刷锅给jquery,jquery已经在Api的说明文档中做了特别说明,只能怪我们使用不当。

 

 

文档明确的说“不要使用这些方法插入从不受信任的来源获取的字符串,例如 URL 查询参数、cookie 或表单输入。这样做可能会引入跨站点脚本 (XSS) 漏洞。在向文档添加内容之前删除或转义任何用户输入。”

 

理论说完了,其实具体改也就很容易了:

  1. 限制用户输入,对于一些特殊标签直接禁止输入;

  2. 对输入转义,比如<script>变成&lt;script&gt;

  3. 展示的时候做转义或者不要使用jquery.html这种可以执行脚本的方法,比如使用jquery.text;

 

问题3:未设置httponly属性

漏洞等级:中危

漏洞详情:cookie的jsessionid未设置httponly属性,该字段是身份认证标识,如果有XSS漏洞可能会造成session泄漏

 

 

 

这个和上一个XSS漏洞可谓是环环相扣,只要有一个点被攻破,那黑客就会一点一点的渗入。

 

修复方式很简单就是设置cookie时增加httponly属性,这样document.cookie就读取不到了,贴一段developer.mozilla.org上关于httponly的介绍:

 

 

推荐阅读:

1.xss漏洞介绍

https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_scripting_(xss)

2.美团技术团队如何防止XSS攻击?

https://tech.meituan.com/2018/09/27/fe-security.html

 

安全无小事,希望我们在做功能开发时把安全方面的思考也加进去,早日让我们的系统百毒不侵。

 

本篇为安全整改的第一篇,后续会继续整理输出,敬请期待。

 

 

posted @ 2021-11-01 10:22  踩刀诗人  阅读(981)  评论(2编辑  收藏  举报