业务功能滥用

  • A+
所属分类:安全闲碎

业务功能滥用

业务功能存在缺陷,被非法恶意利用,导致系统资源被占用或被他人用来恶意攻击。


1.短信定向转发

1.1.漏洞描述
短信接收人可任意指定
1.2.漏洞成因
发送短信时手机号没有从当前会话中获取,攻击者可利用该漏洞将验证码发送到自己的手机号上,重置他人密码或转账。
1.3.风险评估
短信接收人可任意指定
漏洞风险等级:建议高
1.4.测试方法
拦截发送短信的请求,将手机号改为测试人员的手机号,测试是否可接收短信验证码。
1.5.加固方法
发送短信时手机号从当前会话中获取,避免从前端传入。

2.邮件可定向转发

2.1.漏洞描述
应用系统发送邮件的接收人可由客户端任意指定
2.2.漏洞成因
送邮件时邮箱没有从当前会话中获取,攻击者可利用该漏洞将邮件发送到自己的邮箱中,重置他人密码。
2.3.风险评估
邮件接收人可任意指定
漏洞风险等级:建议高
2.4.测试方法
拦截发送邮件的请求,将接收人邮箱改为测试人员的邮箱地址,测试是否可接收邮件。
2.5.加固方法
发送邮件时邮箱从当前会话中获取,避免从前端传入。

3.业务接口调用缺陷

3.1.漏洞描述
应用的业务接口存在缺陷,可以通过业务接口直接进行恶意操作。
3.2.漏洞成因
没有对每一个访问的接口检查当前用户是否已经登录并授权,攻击者可通过编写API枚举脚本,恶意调用敏感接口,从而进行提交数据等操作。
3.3.风险评估
可通过业务接口能够操作核心业务内容,进行越权或获取敏感数据。
漏洞风险等级:建议高
3.4.测试方法
把业务逻辑和功能模块呈现的内容结合,推测出隐藏的API接口。如用户信息的接口是http://www.xxx.com/api/user/userInfo,推测重置密码接口可能是:
http://www.xxx.com/api/user/passReset,文件上传接口是http://www.xxx.com/api/user/uploadFile等。如果这些接口没有限制访问,则可以直接调用并提交数据。
针对开源或商业软件的业务接口调用缺陷可参考《通用系统安全测试指导文档》
3.5.加固方法
对于每一个访问的接口都首先检查当前用户是否已经登录并授权(不需要认证的接口除外,例如,免费下载接口等)。

4.引用第三方不可控脚本/URL

4.1.漏洞描述
页面中引用了不可控的脚本或超链接
4.2.漏洞成因
页面中引用了不可控的脚本或超链接,攻击者可在网站中插入恶意链接或脚本,导致正常用户浏览时cookie被窃取或被种植病毒木马。
4.3.风险评估
存在不可控外链或脚本,且未经过审批,攻击者可在网站中插入恶意链接或脚本。
漏洞风险等级:建议高
4.4.测试方法
检查页面内容,是否引用了第三方未知脚本或超链接,如恶意的js脚本或病毒木马的下载链接等。
4.5.加固方法
建议在不影响业务的前提下,对网站引用的文件和源代码进行审查,一经发现有未审批的外链或脚本,应立即删除。

5. 开启危险接口

5.1.漏洞描述
开启可利用的危险接口,如获取订单信息、用户身份信息等。
5.2.漏洞成因
开启了危险接口,如订单信息打印、上传、web管理控制台等,可能被攻击者发现并利用,直接操作应用数据,造成数据泄漏等风险。
5.3.风险评估
漏洞风险等级:建议高
5.4.测试方法
使用扫描器扫描特殊目录和链接
根据正常接口的命名特征猜测隐藏的危险接口,如获取个人信息接口是getUserInfo,猜测获取订单信息接口getOrderDetail
5.5.加固方法
敏感接口增加访问控制,避免未授权访问;
用户访问接口需校验权限,避免越权访问。

6.未验证的URL跳转

6.1.漏洞描述
服务端未对传入的跳转url变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。由于是从可信的站点跳转出去的,用户会比较信任,所以跳转漏洞一般用于钓鱼攻击,通过转到恶意网站欺骗用户输入用户名和密码盗取用户信息,或欺骗用户进行金钱交易;也可能引发的XSS漏洞(主要是跳转常常使用302跳转,即设置HTTP响应头,Locatioin: url,如果url包含了CRLF,则可能隔断了http响应头,使得后面部分落到了http body,从而导致xss漏洞)。
另外在struts2 中存在重定向的漏洞,是因为struts2由于缩写的导航和重定向前缀“action:”、 redirect:”、 redirectAction: 等参数前缀的内容没有被正确过滤导致的开放式重定向漏洞。
6.2.漏洞成因
服务端未对传入的跳转url变量进行检查和控制,未对传入的URL做有效性的认证,没有保证该URL来自于信任域。
6.3.风险评估

攻击者利用URL跳转漏洞来欺骗安全意识低的用户,从而导致“中奖”之类的欺诈事件发生。同时利用URL跳转,也可以突破常见的基于“白名单方式”的一些安全限制,如传统IM里对于URL的传输会进行安全校验,但是对于知名网站的域名及URL将直接允许通过并且显示为可信的URL,一旦该可信的URL里包含URL跳转漏洞将导致安全限制被绕过。URL跳转最典型的例子就是登录跳转,示例代码如下:

public void doRedirect(HttpServletRequest req, HttpServletResponse res)

{

   String jumpURL=request.getParameter(jumptoURL);

    response.setHeader("Location",jumpURL);

}

若程序未过滤jumptoURL参数,攻击者将恶意链接:
http://www.xxx.com/login.jsp?jumptoURL=http://www.evil.com发给其他用户,安全意识较低的用户会认为该链接展现的内容是www.xxx.com,从而产生欺诈行为。同时由于QQ、淘宝旺旺等在线IM都是基于URL的过滤,对部分站点会通过白名单的方式直接通过,因此恶意URL可以在IM里传播。例如IM认为www.xxx.com是可信的,但是通过在IM里点击上述链接将导致用户最终访问http://www.evil.com
漏洞风险等级:建议高
6.4.测试方法
首先找到网站相关url中存在跳转链接的参数(如登陆页面)。
在检测的同时,可以修改参数中的合法URL为非法URL,然后查看是否能正常跳转或者通过抓包工具获取其HTTP响应头中Host:的值是否包含了构造的URL
如果是struts2重定向漏洞,则可通过web扫描工具扫描发现,或者手工验证,直接在URL后添加?redirect:+指定钓鱼链接,例如:10.182.53:9098/admin/login.action?redirect:http://diaoyu.com进行验证。
6.5.加固方法
1.对传入的URL做有效性的认证,保证该URL来自于信任域。限制的方式可参考以下两种:
2.限制RefererRefererHTTP header中的字段,当浏览器向web服务器发送请求时,一般会带上Referer,告诉服务器是从哪个页面链接过来的),通过限制Referer保证将要跳转URL的有效性,避免攻击者生成自己的恶意跳转链接;
3.加入有效性验证Token,保证所有生成的链接都来自于可信域,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验。

7.短信内容可控

7.1.漏洞描述
短信内容可从客户端指定
7.2.漏洞成因
短信内容可从客户端指定,借助短信平台,编辑钓鱼短信发送给其他用户
7.3.风险评估
攻击者可利用该漏洞,借助短信平台,编辑钓鱼短信发送给其他用户。
漏洞风险等级:
1)短信内容可控,且接收人可任意指定,建议为高;
2)短信内容可控,但接受人不可控,建议为中;
7.4.测试方法
在客户端编辑任意短信内容,测试是否过滤特殊内容。
7.5.加固方法
建议在不影响业务的前提下,禁止客户端编辑短信内容。

8.邮件内容可控

8.1.漏洞描述
应用系统发送邮件的邮件内容可由客户端任意指定
8.2.漏洞成因
邮件内容未进行相应过滤或限制,可进行恶意编辑
8.3.风险评估
攻击者可利用该漏洞,借助邮件平台,编辑钓鱼邮件发送给其他用户。
漏洞风险等级:
1)邮件内容可控,且收件人可任意指定,建议高;
2)邮件内容可控,但收件人地址不可控,建议中;
8.4.测试方法
手工找到有关网站注册页面,认证页面,是否具有邮件发送页面,如果有,则进行下一步
通过利用burp或者其它抓包截断工具,抓取发送邮件的数据包,并且进行重放攻击,查看邮箱是否在短时间内连续收到10封以上邮件,如果收到大量邮件,则说明存在该漏洞
8.5.加固方法
建议在不影响业务的前提下,禁止客户端编辑邮件内容。

9.请求重放攻击

9.1.漏洞描述
重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
这种攻击会不断恶意或欺诈性地重复一个有效的数据传输,重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。从这个解释上理解,加密可以有效防止会话劫持,但是却防止不了重放攻击。重放攻击任何网络通讯过程中都可能发生。重放攻击是计算机世界黑客常用的攻击方式之一,它的书面定义对不了解密码学的人来说比较抽象。
9.2.漏洞成因
关键业务操作未作token或者唯一标识码,导致攻击者可以重复多次进行请求,导致恶意操作
9.3.风险评估
攻击者恶意或欺诈性地重复发送一个有效的数据包,如果服务器未检查此类重复提交的请求数据的有效性,那么转账充值等敏感操作将有可能会被重复执行。
漏洞风险等级:建议高
9.4.测试方法
Windows SMB 请求重放攻击分析:
smb中继或叫smb请求重放攻击,B是一个smb服务器,A来进行认证,BA的认证信息转发到C上,如果A的凭证在C上认证成功就能进行下一步操作,如创建服务执行命令。如果在域中控制了某些常用服务,如:WEB OA系统、文件共享等服务则可以尝试使用SMB中继攻击来引诱域管理员访问达到获取其他机器权限的目的。

业务功能滥用

环境:
192.168.123.10 win 7 域管理员(administrator)机器
192.168.123.11 kali linux攻击者机器
192.168.123.100 域内普通用户-受害者机器
攻击演示:
需要smb签名关闭下才能进行利用,只有windows serversmb签名是默认开启的,像Windows 7的签名默认关闭可以用nmap探测smb是否关闭
Nmap --script smb -security-mode.nse -p445 192.168.123.0/24 --open

业务功能滥用

下载impacket工具包:
   git clone https://github.com/CoreSecurity/impacket.git
192.168.123.11(攻击者机器)执行
   Ntlmrelayxpy -tf hoststxt -socks -smb2support
hosts.txt里面的内容是要进行中继的IP,机器越多成功率越高,我这里只有一个IP
业务功能滥用
然后让192.168.123.10(域管理员机器访问192.168.123.11(攻击者机器)的共享,可以架设一个web服务器,html页面里嵌入攻击者地址,我这里为了方便演示就在本地写一个html

业务功能滥用

192.168.123.10(域管理员机器)访问共享时,提示如下说明中继成功

业务功能滥用

[*] Authenticating against smb://192.168.123.100 as Z3R0Administrator SUCCEED[*] SOCKS: Adding Z3R0/[email protected](445) to active SOCKS connection. Enjoy
然后在本地会创建一个socks4代理
 /etc/proxychains.conf 的最后一行填入
Socks4    192.168.123.11  1080
配置好socks4代理后攻击者执行
proxychains python secretsdump.py z3r0/[email protected]192.168.123.100
这样secretsdump.py发送出的认证数据包经过socks4代理中继就能成功进行认证

业务功能滥用

如果不加上其他参数的话ntlmrelayx.py默认会dumphash

业务功能滥用

 9.5.加固方法
服务端应用程序应检查客户端提交的数据的唯一性,如使用流水号、时间戳、token等,并将流水号、时间戳等进行签名。

10.批量提交

10.1.漏洞描述
注册不需要验证码时,攻击者通过编写自动化脚本,实现程序自动提交注册信息;若注册需要验证码,但验证码位数不多于4位且为纯数字时,通过使用软件burpsuiteintruder功能穷举得到正确的验证码后,再结合自动化脚本工具即可实现批量注册垃圾账号。
10.2.漏洞成因
应用程序未使用验证码等防自动化操作的方法,可批量提交请求,如批量注册。
10.3.风险评估
漏洞风险等级:
1)正常业务为单条数据请求,且不存在防自动化批量操作措施,可批量自动化提交,建议为中;
2)正常业务为单条数据请求,且存在防自动化批量操作措施,但在单个数据包中写入批量数据,可成功提交,并且服务器能批量执行,建议为低;
10.4. 测试方法
1.编写自动提交HTTP数据包的脚本;
2.使用burpsuiteintruder功能批量提交请求。
10.5.加固方法
1.使用安全性强的验证码,验证码应从以下方面保证其安全性:验证码长度不低于4位,避免使用容易被程序自动识别的验证码,验证码不应返回客户端。
2.用户注册功能处,提交注册信息后进行邮箱或短信验证通过后再将注册信息写入数据库。
3.对同一IP地址短时间内提交请求的次数进行限制。

11.短信炸弹

11.1.漏洞描述
现在大部分网站都绑定了手机号作为安全验证,在登录/修改密码处,如果流程设计不当,可导致短信炸弹漏洞。
11.2.漏洞成因
比如,网站逻辑中未对发送的手机号做限制,导致可以通过抓包重放,消耗客户在短信平台的资源。
11.3. 风险评估
可利用该漏洞消耗系统资源,影响业务系统正常运行。
漏洞风险等级:建设中
11.4.测试方法
手工找到有关网站注册页面,认证页面,是否具有短信发送页面,如果有,则进行下一步。
通过利用burp或者其它抓包截断工具,抓取发送验证码的数据包,并且进行重放攻击,查看手机是否在短时间内连续收到10条以上短信,如果收到大量短信,则说明存在该漏洞。
11.4.1测试条件
1.网站业务正常运行;
2.本机安装了burp
11.4.2测试步骤
1.访问目标网站,填入手机号,设置本地代理。

业务功能滥用

2.使用burp拦截请求,右键发送到Intruder模块中,修改字段来进行测试(有的网站可以通过在Repeater模块中重放来达到目的)
11.5.加固方法
针对同一手机号/账户,限制其短信发送频率及每日发送验证码最大次数。




关注路劲科技,关注网络安全!


业务功能滥用
kali学习笔记之端口扫描工具
kali学习笔记之微信与WPS的安装
聚焦天火网安科普万里行·河北站,护航网络安全
招募令| 别看别看,一篇“三无”招聘文章,请慎重点击

业务功能滥用

相关推荐: 矿池漏洞安全科普

扣(藏)块攻击就是在矿池,混水摸鱼,反正有的矿池是根据你的算力,按时间给你“钱”的,矿池是怎么知道我的算力的,我能不能欺骗矿池??? 挖矿软件和矿池之间的都是用的公开的协议,json格式发包,可以说是明文传输的,    {"worker":…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: