注册
登录
标签
统计
帮助
中神通公司技术论坛
»
行业信息
» Web 安全中的业务安全战争(转)
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
Web 安全中的业务安全战争(转)
linda
琳达
版主
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2019-5-12 12:20
只看该作者
Web 安全中的业务安全战争(转)
随着 Web2.0 的发展,在现在众多商业活动中,信息的互联带来的必定是大量隐私和高价值的信息数据资产,在现在,已经成为了黑客的攻击目标。比如说银行、保险、金融、理财、电商、社交、招聘等平台上,含有大量的个人信息以及涉及到金额的数据资产,往往这些地方就是黑客最容易获利的目标。
相比 SQL 注入漏洞、XSS 漏洞此类的,是可以被扫描器给扫出来的,攻击者较为倾向获利而不是炫技,以窃取敏感信息为主要的攻击目的,另一方面来说,现有的常规安全漏洞扫描发现技术也比较完善,发现注入此类的问题基本很少,增加了一些攻击成本。
为什么要单独把业务安全列为一个课程呢,因为目前常规的渗透测试技术主要是基于 Owasp10 的,一般不会涉及到业务逻辑方面的风险,然而业务逻辑里有些特别重大的威胁比如登录验证绕过、越权访问等威胁都会造成很严重的后果,恰巧的是,常规的渗透测试技术会忽视掉业务逻辑层面的风险。所以要把业务安全单独拉出拉说一下。
业务安全测试关键点
图片来源:《Web 攻防之业务安全实践指南》
此图已经列出了每个不同的场景业务环之间可能存在的逻辑漏洞,读者可根据此图进行自排查。
不同业务场景的审视角度
不同业务场景之间的审视角度是需要不同的,用一位攻击者的视角来审视这个业务环节,比如说现在是给一家 P2P 做风险评估。
在这里简要有三种角色:普通用户、系统、管理员:
普通用户:我能注册、充值、购买、交易、查询,以及对自我账号的应有权限;
管理员:我能看到业务人员,能在后台进行应有权限的操作,比如查询流水等;
系统:你们都看不见我,但我在运作,我是支持系统我支持了整个业务流程。
在测试的时候,面对不同的业务场景要进行不同的角色来进行测试,结合业务需要从不同的视角来进行安全测试,比如说我在前台,我在使用整个业务,测试的点就要在注册登录与身份验证等环节(密码是否能被任意找回,是否存在暴力破解可能,是否过滤了危险字符)。
那么支持系统则要考虑到,用户的密码进库的时候是否进行了加密,业务之间的数据传输是否是明文,系统的参数过滤机制是否完善,有 SQL 注入或者代码执行等威胁吗?
在测试前最好是已经了解了整个系统的运行逻辑,我测试的时候常会用不同的权限账号在前后台的不同场景都走一遍,了解并熟悉每个业务逻辑点再进行有根据的测试。
登录认证安全测试
登录认证这个相信也比较好理解,只要输入了账号密码就能和业务进行交互逻辑,对比数据一致性给出错误或者成功,这个业务环相关的逻辑漏洞应该关注暴力破解和 Cookie 覆盖。
暴力破解
测试方法:暴力破解即穷举验证,用账号密码进行穷举,直到找出正确的账户或者密码,与字典有关。
一般分为三种情况:
我已知账号的情况下,用密码字典进行暴力破解(Admin+密码);
我未知账号,用账号字典进行暴力破解(账号+123456);
我账号密码都未知,用账号密码和密码字典进行碰撞暴力破解(账号+密码)。
测试过程:
简单的画了个草图,来解释一下测试过程,首先我们先使用工具对登录页面进行循环提交字典数据进行碰撞,服务器收到请求后会判断是否正确,错误就回到首页,正确就跳转到登录内页。
使用乌云上的案例来讲:
某系统用户密码可爆破导致公司敏感信息泄漏(223897)
可以看到登录页面是只有一个用户名和密码框的,没有做任何的验证,这个时候我们使用 Burp Suite 进行暴力破解即可,具体的步骤不再详叙,可以查看我之前写的 Burp suite 工具使用指南。
最后通过返回的结果来判断是否破解成功,尝试登陆即可。
Session 安全测试
还是拿乌云的例子来讲:Yxcms 管理员 SESSION 伪造漏洞(47827)。 Yxcms 是一款内容管理系统。借助后台一个 CSRF 起飞,伪造 session 可直接登录后台。
漏洞细节
我也是第一次见到这样有趣的漏洞,Yxcms 允许我们自定义 session,而且这个过程通过 get 方式来完成。我觉得这样的问题属于 CSRF,不经意之间就能获取大效果。
其问题代码如下:
当 $_GET[‘phpsessid’] 非空时,就令 session_id 为我们传入的值。于是我想到一个猥琐的方法,我们构造一个链接让管理员点击,管理员点击后会重新设置他的 session,而且这个 session 就是我们构造的。因为 session 重置了所以管理员也需要重新登录,而重新登录后其 session_id 就是我们构造的。我们只要利用这个 session_id 就能登录管理后台了。
比如我来构造:http://xxxx/index.php?r=admin/index/index&phpsessid=f4cking123。管理员点击后会跳转到登录页面,但此时他的 phpsession 已经是我们构造的 f4cking123 了:
这是管理员如果重新登录,那个这个 session 就有后台权限了。我们也利用这个链接:http://xxxx/index.php?r=admin/index/index&phpsessid=f4cking123,将自己的 session 设置成 f4cking123,或者随意怎么修改,只要把 phpsessid 修改成 f4cking123 就能拥有后台权限了:
这个漏洞的测试方法也很简单,登陆一个账号后对当前授权的 Session 进行记录,然后退出后再次登陆,如果第二次的值与第一次的值相同,则存在固定的会话风险,攻击者一旦获取到你的值便可以进行授权认证。
Seesion 会话过期性测试
与上面那个可以连在一起讲,这个过期性就是在用户注销或者退出系统时,系统应该对身份进行清空,让本次的会话令牌无效,令攻击者无法获取。
Seesion 会话超时测试
这个业务关键点,要根据具体的情形来进行设置,因为比如说是转账的时候,身份令牌我推荐做到几分钟内最好,几分钟内未和服务器进行任何交互就可以清空认证信息,要求重新登录进行认证。
测试方法:登录的时候对 Session 进行记载,发送到 Burp 的 Repeater 模块,然后在重要的交互页面上停留个二十分钟后继续发送此包,查看是否返回关键信息。
Seesion 仿冒测试
还是乌云那个案例,修改了 Seesion 认证来改变了不同用户的身份,测试方法如案例所示,先用普通用户 lihua 的账号进行登录,记住 ID 后便可修改其他人的 ID 来尝试篡改登录用户。
登录模块的业务风险点重点就是在这几个方面,建议对每个生成的 Session 令牌进行安全配置周期。
办理业务安全测试
办理业务安全的场景一般以电商交易居多,比如有遍历订单 ID 获取其他人的交易详情。
订单 ID(用户 ID)篡改越权测试
驴妈妈某处越权导致订单信息泄露(涉及 700 多万订单信息)
漏洞细节
驴妈妈旅游网-中国新型的 B2C 旅游电子商务网站,为旅游者提供景区门票、自由行、度假酒店、国内游、出境游等一站式旅游服务。
漏洞存在
http://fx.lvmama.com/
分销平台。
看见有注册的地方,本来想注册的,然后:
然后发现要审核。欲哭无泪啊。等吗?肯定不行,等 7 天啊。谁受得了啊。
于是乎,咋们就想着能不能破解出来一个呢?
然后 yangfan yangfan123 登录,进去点个查看订单。悲剧就发生了。首先看下他自己的订单:
然后看看别人的订单:
http://fx.lvmama.com/mOrder/ticketDetail.do?orderId=27880000
然后继续看别人的:
http://fx.lvmama.com/mOrder/ticketDetail.do?orderId=27887310
再来一个:
http://fx.lvmama.com/mOrder/ticketDetail.do?orderId=27261000
http://fx.lvmama.com/mOrder/ticketDetail.do?orderId=20900000
20900000-27261000 一共 700W 订单数赶紧修复啊。听说泄露客户信息,现在法律都要管啦。
我们可以回首看看,该漏洞先是使用了暴力破解破解到了一个账号,然后登陆进去查看订单,并把订单号进行了列举,只列了几条,可以看到一件返回了不同人的订单,这里实际就是(平行越权+暴力破解)了,当然使用 Burp 进行数字列举相信会更多。
用户 ID 也是一个概念,都是对 ID 进行列举,这里就合并在一起讲了。
修复建议:判断用户的身份,做好平行权限控制,防止绕过。
总结:越权分为垂直和水平越权,水平越权指两个权限一致的同学能互相查看对方的敏感内容,垂直越权指用户 A 同学去访问了管理员B同学的数据,低权限越了高权限。
测试方法:更改账户 ID 身份来进行测试。
接口未授权访问测试
百度某运维平台未授权访问
漏洞细节
Hadoop 管理平台
http://123.125.112.41/dfshealth.html#tab-overview
data node 信息
百度 bae 应用
配置文件
修复建议:在后端对登录状态进行验证,未登录不返回信息。
商品订单编号修改测试
在支付类场景中,最常见的就是修改商品金额,造成低价购买商品,比如说 1 元钱购买了 100 元的东西,其中也有通过修改商品的编号来达到以低价购买高价商品的可能。
漏洞简介:供销大集网站通过修改数量为负,使得支付金额为负数,同时购物车一起支付正数商品时可以成功付款!
漏洞细节 :
供销大集网站:
http://www.ccoop.com.cn/index.html
。登录后选择购买商品,支持快递配送和物流自提。我先选择民生家乐,民生百货的购物卡很实用哦,这里就选择一张 500 面值的购物卡:
这张 500 面值卡是正常加入购物车购买的,所以是正数,这里在添加一张 300 面值的卡 我们修改数量为 -1:
然后在添加 2 张 100 的卡到购物车,结算为 0:
提交付款即可。
上面的漏洞案例使用了在交易中没有效验负金额这个概念,在运算中出错,服务端应该考虑到这个情况来进行及时的阻断。
修复建议:后端做好效验,金额、信息、折扣等数据只接受从服务端发来的。
密码找回安全测试
密码找回业务的安全隐患情节有点多,比如说验证码回显,还有验证码爆破等情况。
中民保险网某处重置任意用户密码、任意登录
漏洞细节:
应用宝下载 APP,走找回密码流程。18888888888 点击获取验证码,验证码直接返回:
之后设置密码皆可,登录验证:
任意手机号登录,验证码登录时。同样返回验证码:
此个案例就是验证码回显在本地,可使用 Burp suite 进行抓包测试,回在了响应包里,可以被本地截获到。
修复建议:避免验证码回显本地,一定要放在服务端。
中华英才网重置任意用户密码
漏洞细节
先进入官网
http://www.chinahr.com
,点右上角“求职者登录”,再点“忘记密码”,其实可以直接进入
http://passport.chinahr.com/pc/findPwd
,输入土豪账号 13888888888:
直接点找回密码(此时验证码已发到手机上),然后在重置页面填上任意验证码,用 burpsuite 抓包,把 msgCode 设为变量:
然后进行 4 位数爆破:
看到验证码 4470 的长度与其他不同,就马上停止了,然后把验证码带入包中放行:
Bingo!
以上案例举例了一个验证码存在暴力破解的可能性,推荐验证码为 6 位安全性较高,同时建议对验证码采取次数限制。
出现的相关案例:
密码找回凭证暴露在修改 URL 中;
验证码回显;
返回失败通过修改状态为 TRUE 修改成功;
Token 安全隐患(弱 Token)。
修复建议:
对验证次数,比如验证码类进行次数验证,防止暴力破解;
使用健康的 Token;
严格确认找回者和凭证一致,防止使用张三的凭证找回了李四的密码;
越权绑定其他人信息。
接口安全测试
山东移动某接口可任意调用导致手机号码泄露办理各种业务
漏洞细节 : 山东移动在使用 3/4G 的时候,会在网页中插入一段 js,然后在网页右下角显示一个流量球,显示你当前剩余流量,点击流量球还可以办理业务。
但是在 js 进行 Ajax 请求查询的时候没有进行有效的安全校验,导致用户在使用 3/4G 的时候该接口可以被任意网页 js 调用,可以获取用户手机号码,当前已经办理的业务,当前的套餐情况,办理各种套餐等。
获取手机号的 poc:
var angular = {"callbacks": {"_y": function(data){console.log(data);alert(data.respparam.phoneNumber);}}};$.ajax({ url: "http://**.**.**.**:8080/html/servicereq/queryMessageList?callback=angular.callbacks._y&csession=-1648015146&reqparam=%7B%22flag%22:%22-1%22,%22startNum%22:%221%22,%22number%22:%2210%22%7D&templateId=fullscreenbar", method: "get", dataType: "jsonp", jsonp: "angular.callbacks._y",})
办理业务和获取套餐信息同理:
测试流程是修改接口的参数账号,然后返回到不同的用户信息。接口调用的方面也比较多,比如说验证码和邮件验证码,两种都可以作为炸弹使用,同时还有案例中的接口账号修改,诸如修改了订单 ID 来获取信息也是一种接口遍历的方式。
修复建议:
查看身份的一致性;
加密资源的 ID,可以是用户 ID 也可以是商品 ID,防止暴力枚举;
权限控制,每个用户能做什么需要控制好。
结语
业务安全体系的建设是个庞大的工程,需要结合实际的情况去不断的完善,内容也实在太多,时间仓促这里只挑了几个有建设性意义的案例来进行说明,有疑问的读者可添加我的微信或者在读者圈下进行留言问题,我会尽快回复。
推荐书籍:《Web 攻防之业务安全实战指南》此书的内容十分完善,其中的观点很赞,强烈推荐每位业务安全建设者阅读。
原文:
http://gitchat.ysk521.cn/?url=https://gitbook.cn/gitchat/activity/5c1af5328216bb1e23185cbb
搜索更多相关主题的帖子:
WEB
WEB安全
UID
123
帖子
1826
精华
5
积分
50
阅读权限
100
在线时间
761 小时
注册时间
2013-8-15
最后登录
2024-11-25
查看详细资料
TOP
linda
琳达
版主
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2019-7-13 18:16
只看该作者
https://thief.one/SecWeb/
UID
123
帖子
1826
精华
5
积分
50
阅读权限
100
在线时间
761 小时
注册时间
2013-8-15
最后登录
2024-11-25
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
官方发布
通知公告
产品下载
购买咨询
技术讨论
系统管理
系统管理
状态统计
访问控制
基础策略
内置服务
网络设置
应用过滤
特殊应用
网络审计
WEB审计过滤(WAF)
DNS过滤
WEB代理及过滤
FTP、POP3、SMTP过滤
MSN、QQ过滤
VOIP应用
防病毒、防垃圾邮件引擎
入侵防御
蜜罐检测
IDP规则及IPS状态
远程接入
用户认证
IKEv2/IPsec
OCSERV
PPTP/L2TP
OpenVPN/SSLVPN
WireGuard
SoftEther/SSTP
SSL接入
大地云控
IT技术交流
硬件选型
虚拟化&云计算&SDN&NFV
真实IT经验
灌水聊天
同行动态
行业信息
龙门阵