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

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

百家 作者: 焦点安全应急响应中心 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/

图库
  • 吃不胖娘#可爱一夏# 今日限定 本人全糖去冰 ​​​​
    吃不胖娘#可爱一夏# 今日限定 本人全糖去冰 ​​​​
  • 张婧仪 胶片限定#张婧仪点燃冬日好韵气##点燃我温暖你# ​​​​
    张婧仪 胶片限定#张婧仪点燃冬日好韵气##点燃我温暖你# ​​​​
  • 李璐瑶Luby:多追求一些让你开心的东西吧
    李璐瑶Luby:多追求一些让你开心的东西吧
  • 璎珞《寂静中开放》雅拉伊
    璎珞《寂静中开放》雅拉伊
  • 王临川- 80岁了还要做粉红奶奶! 摄影@熊本环奈2武汉 ​​​​
    王临川- 80岁了还要做粉红奶奶! 摄影@熊本环奈2武汉 ​​​​
  • 卵母细胞:假如我年少有为不自卑,老公肯定一大堆。
    卵母细胞:假如我年少有为不自卑,老公肯定一大堆。
焦点安全应急响应中心 焦点安全应急响应中心
公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接
百度热搜榜
排名 热点 搜索指数
  • 1 开创西部大开发新格局 4926258
  • 2 一些医院不愿收“复杂病人”了 4904217
  • 3 5000块钱的工资46个工作群 4837082
  • 4 共建绿色家园 畅享美好生活 4700236
  • 5 杭州小朋友放春假了 4686329
  • 6 加沙早产女婴获救5天后去世 4570711
  • 7 钢珠求救鸭去世了 4465339
  • 8 iPhone充电时切勿放在枕头下 4312333
  • 9 警方辟谣东莞暴雨致8死 4290810
  • 10 问界M7起火3人遇难 车企回应 4177591

深圳SEO优化公司沈阳优化哪家好张北英文网站建设公司茂名关键词按天收费黑河模板制作价格龙岩百度网站优化排名价格宁德网站优化按天扣费公司永湖网站改版哪家好怀化百度爱采购推荐济源百度网站优化排名大理网站优化软件价格泸州SEO按天扣费报价九江seo优化报价吉安seo推荐广州网站关键词优化报价抚顺建网站公司潮州网站推广报价惠州网站建设设计报价阜阳营销型网站建设多少钱张家口百度seo太原关键词按天计费推荐喀什网络推广报价鹤岗如何制作网站报价徐州推广网站推荐东营网络广告推广推荐朔州网站建设推荐思茅网站推广价格宝安网站改版多少钱玉林网站推广推荐邵阳企业网站改版推荐临夏关键词排名推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化