• 首页
  • 资讯
  • 导航
  • 热榜
  • 学校
  • 软件
  • 文献
酷应用
  • 新闻
    • 看点
    • 观点
    • 读点
    • 热点
  • 科技
    • 数码
    • 软件
    • 应用
    • 极客
  • 企服
    • 电商
    • 运营
    • 移动
    • 访谈
    • 动态
    • 招聘
    • 访谈
    • 百家
  • 安全
    • 业界
    • 快讯
    • 技术
    • 校园
    • 工具
  • 文娱
    • 明星
    • 影视
    • 音乐
    • 网娱
    • 韩娱
    • 词典
  • 游戏
    • 手游
    • 页游
    • 端游
  • 好货
    • 报道
    • 值得买
    • 健康

前后端分离架构如何做安全测试?

百家 作者: 焦点安全应急响应中心 2020-07-31 18:24:29


FSRC经验分享系列介绍

我们会在FSRC公众号发出焦点科技信息安全部工作过程中总结的经验。分享内容不仅是漏洞分析,也包括运营、sdl、等级保护、自研工具等。只要安全相关,我们都会整理并分享给大家,欢迎各位安全从业者关注。


1前后端分离简介


传统的前后端不分离架构,前后端耦合度很高,后端会回传一个html页面,前端展示效果实际上也是后端控制。

而前后端分离架构,特点是后端只负责数据和业务,前端负责交互和展示。回传数据格式一般为json格式,前端通过ajax等技术获取数据进行展示。


2前后端分离架构及特点


前后端不分离的架构,通常是前端向后端发送请求,后端处理数据、渲染或者重定向后发送给前端,通常返回一个HTML页面,然后由前端负责展示。比较适用于纯网页应用。


现在是移动互联的时代,越来越多的APP出现在市场上。一个产品可能有多个端,如果是以前传统架构,需要开发web和app两套服务端,而前后端分离的架构可以解决这个问题,后端只需要开发一套接口,前端通过接口对数据进行查询和删改,拿到的数据交由web或者app进行渲染处理,最后展示给用户。前端与后端各司其职。



相比于传统架构,前后端分离的优势有:

  • 彻底解放前端

前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码。

  • 提高工作效率,分工更加明确

前端只关注前端的事,后台只关心后台,两者开发同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。

  • 局部性能提升

可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。

  • 降低维护成本

出现问题非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。


3基于token的鉴权机制


session机制,受跨域限制,不适用于服务器集群或者跨域体系结构。

每个用户经过服务端认证之后,服务端都要做一次记录,方便在下次用户提交请求的时候进行身份鉴别。通常而言session都是保存在内存中,而随着认证用户的增多,服务端的开销会明显增大。


有人就想了,能不能在客户端保存数据,而服务器就不存会话数据了呢?于是token机制应运而生。


基于token的鉴权机制是无状态的,它不需要在服务端去保留用户的认证信息或者会话信息,而是在用户每次请求的时候带上token,服务端只需要每次验证这个token是否合法。这就意味着基于token认证机制的应用不需要去考虑用户在哪一台服务器登录了,这就为应用的扩展提供了便利。


JWT就是token机制的一种实现方式。而且由于JWT本身的一些机制,目前前后端分离大部分均采用了这种机制。


4JWT机制


Json web token 是一种跨域认证解决方案,其格式结构如下:header.payload.signature

其中header和payload是默认base64URL编码的,里面的内容是前端传输的内容。header中是算法和类型,payload是传输的信息。

服务器指定一个不能泄露给用户的密钥(secret),使用 Header 里面指定的签名算法(默认是 HMAC SHA256)产生签名。

算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用 分隔,就可以返回给用户。


JWT既然掌握身份鉴别大权,就必须像保护身份证一样保护好它,对JWT的保护需要做到如下几点:

  • Payload部分不能存敏感信息,用户密码是千万不能存的

  • 传输过程中不允许在URL中传输,使用https进行加密

  • 做好XSS的过滤

  • 设置token有效期


5前后端分离的安全措施


前后端分离架构中,很多会使用第三方框架和组件。而这些组件本身会包括一些安全防范措施。以我们公司内部使用的Laravel框架为例,展示该框架如何抵御几种常见的安全漏洞。

XSS

   

Laravel使用的模板引擎是Blade,在Laravel从输入到输出的基本过程中,分为如下几步过程:

定义路由获取变量

把变量传给视图做渲染

渲染结果作为相应内容返回用户

定义一个路由,在resources/views下有welcome.blade.php将 $data 变量传入其中渲染,返回视图 view() 

web.php
Route::get('/', function () { return view('welcome', [‘name’=>$name]);});welcome.blade.php
Hello, {{ $name }}

简单地说,通过{{ }} 语法,自动调用php的 htmlentites 函数来对输出进行转义处理,防御XSS攻击

SQL注入

   

Laravel内置Eloquent ORM(对象关系映射),用于数据库操作

Eloquent查询形式如下

即,laravel通过PDO参数绑定查询,并不会进行拼接,也就无法进行SQL注入攻击

CSRF

   

Laravel 会检测 POST 数据里的_token 信息,对所有的 POST 数据默认开启 CSRF 防护



也就是说,laravel架构的前后端分离的项目,对XSS/CSRF/SQL等攻击做了相对比较完善的防御,从这些地方入手挖掘漏洞的难度肯定比较大。那么面对这种情况,我们测试的主要方向是什么呢?


6前后端分离的主要测试方向


越权

   

前后端分离架构一般使用JWT做身份验证,放在请求头里,这种机制可以有效防止csrf和越权。但是使用不当也会有风险,比如只是请求里带上X-Access-Token,实际后端并没有做校验。如下,以管理员身份抓取某个请求,尝试用普通账号垂直越权。

换个浏览器登录普通账号,访问url,不带请求头,会返回404。

猜测是框架机制,请求头中必须带上X-Access-Token,所以后端会返回错误。


通过hackbar插件添加一个普通帐号的请求头,成功越权。


快速测试技巧:

  • 越权:同一个浏览器,先登录admin账号,开另一个标签页退出后登录普通帐号,回到原先的标签页,不刷新直接访问任意模块,若能直接访问说明该模块加载数据的接口没有做鉴权,再仔细测具体请求

  • CSRF:敏感请求重放或者删除token,主要看有没有做校验


接口隐藏敏感信息

   

因为需要前后端频繁的通过接口交互,那么一些接口中可能会返回超出目标需求的大量敏感信息,如下


前端无法查看,但是通过抓包可以发现。


第三方框架CVE

   第三方

前后端分离架构大多使用了第三方框架和组件,可以通过接口的某些特征指纹来观察使用了哪些框架,比如上图中的


看到这个关键词remember_me,可以猜测采用了shiro框架。那么可以通过查找对应的相关CVE进行攻击,如本次可以使用如下几个poc测试:

  • Shiro RememberMe 1.2.4 反序列化RCE(CVE-2016-4437|Shiro-550)

  • Shiro Padding Oracle攻击漏洞(Shiro-721)

最终发现相关漏洞。


快速测试技巧:

  • 通过wappalyzer等插件查看项目使用的框架

  • 查看发送和返回包中是否存在某些框架特有的指纹,进行进一步测试


信息泄露

   第三方

因为前后端分离,前端展示页面也会有很多接口,可以通过JS审查来确认。

比如这次,在js中寻找各种关键词,如sms(短信)、regist(注册)等,找到了一个对应的短信发送接口,后续发现存在短信炸弹漏洞。


另一方面。为了方便管理静态资源,优化前端工作流程,现代前端框架都会使用一些构建工具,如 GruntGulpWebpack 等。使用这些构建工具就意味着不特别处理的话,JS 文件就会被全部打包在一起,如果没有删除 Source Map,用浏览器自带的开发者工具就能轻松看到。

如本漏洞,webpack中通过.map文件可以反编译出源码


快速测试技巧:

  • 全局搜索,chrome浏览器source,ctrl+shift+F搜接口,或者搜password、secret等字段

  • 查看是否有webpack等构建工具打包的信息,如果存在可以反编译出源码

7小结

对于前后端分离的架构,最需要关注权限控制和CVE。

因为JS会暴露很多接口在前端,攻击者可以进行构造、利用,所以在使用时,每一个接口都要做权限控制。

开源框架并不会更加安全,由于源代码的公开,更多的漏洞能从源代码安全审计中发现。

8免责声明


本文中提到的漏洞利用Poc和脚本已在网络公布,仅供研究学习使用,请遵守《网络安全法》等相关法律法规。


9参考资料


现代前端框架的信息泄露问题(0x0d)

https://xz.aliyun.com/t/192

Blade模板引擎避免XSS攻击原理探究(luyaran)

https://blog.csdn.net/luyaran/article/details/53463296

前后端分离项目安全漏洞修复总结(青苗谷)

https://www.cnblogs.com/qingmiaokeji/p/13026208.html


https://jwt.io/



FSRC,愿与你共同成长
焦点科技漏洞提交网址:security.focuschina.com

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

图库
  • 橙子的橙啦 本期主角德文卷毛
    橙子的橙啦 本期主角德文卷毛
  • shika小鹿鹿在cos圈子中唯一不怎么出格的女生
    shika小鹿鹿在cos圈子中唯一不怎么出格的女生
  • Amazing甜甜甜主动太久也会累,每次的主动换来的都是你无情的借口。
    Amazing甜甜甜主动太久也会累,每次的主动换来的都是你无情的借口。
  • 4April4 三月#plog#  halo哇 四月 ​​​
    4April4 三月#plog# halo哇 四月 ​​​
  • 荣梓希 假期都去哪里玩啦 [酸] ​​​​
    荣梓希 假期都去哪里玩啦 [酸] ​​​​
  • 庄佳仪广东职业技术学院清纯女孩
    庄佳仪广东职业技术学院清纯女孩
焦点安全应急响应中心 焦点安全应急响应中心
公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接
百度热搜榜
排名 热点 搜索指数
  • 1 奋力谱写西部大开发新篇章 4959391
  • 2 贪官靳东受贿100万现金藏床底 4974392
  • 3 女子体验荷兰200元一晚的民宿 4851872
  • 4 星火成炬|宇宙级别的浪漫 4757137
  • 5 国企干部沉迷当“榜一大哥” 4644612
  • 6 唐家三少宣布停更 4593237
  • 7 多所高校学生因悬挂床帘被实名通报 4455556
  • 8 女子楼顶种900余株罂粟涮火锅 4368934
  • 9 学生跳楼并给教师留信?谣言 4279521
  • 10 中国银行原董事长刘连舸受审 4189979

玻璃钢生产厂家三沙玻璃钢加工扬州玻璃钢制品多少钱白银玻璃钢垃圾桶定做蚌埠玻璃钢制品厂家直销咸阳玻璃钢公仔雕塑厂家保定玻璃钢动物雕塑制作新余不锈钢家具加工青岛玻璃钢餐桌椅乌海玻璃钢雕塑多少钱雅安玻璃钢公仔雕塑生产厂家池州玻璃钢垃圾桶厂家直销蚌埠玻璃钢花钵生产厂家惠州玻璃钢家具批发大连商场美陈公司酒泉玻璃钢设备外壳上饶玻璃钢休闲椅生产厂家黄冈玻璃钢家具生产厂家山南玻璃钢餐桌椅厂南昌玻璃钢前台抚州玻璃钢花瓶制造陕西玻璃钢天花吊顶厂石家庄玻璃钢卡通雕塑加工吉林商业美陈定制青海玻璃钢花槽厂河南玻璃钢餐桌椅定制抚顺玻璃钢座椅定做固原玻璃钢造型定做镇江玻璃钢雕塑公司绵阳玻璃钢树池生产厂家忻州玻璃钢花槽加工香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化