当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-028794

漏洞标题:天天快递某系统SQL注入一枚可导致用户数据泄漏

相关厂商:天天快递

漏洞作者: 基佬库克

提交时间:2014-03-18 18:08

修复时间:2014-05-02 18:09

公开时间:2014-05-02 18:09

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-18: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-05-02: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

天天快递注入一枚..自动注入工具好蛋疼啊..码了好多字..

详细说明:

注入点在http://122.224.96.66/wappda.asp?Method=GET&Name=560001115481
但是你用safe ,穿山甲,红萝卜或sqlmap的联合查询方式是得不到数据的..
为啥,且听慢慢解说..
首先查指纹,是win2k3,ORACLE 数据库..
首先怀疑是不是权限问题,sqlmap最新版查当前用户和权限

QQ截图20130713190103.png


QQ截图20130713190239.png


看这权限应该是木有问题的...
我们手注下看看

QQ截图20130713183733.png


QQ截图20130713183804.png


看到没,两次报错的行数是不一样的..
说明啥.. @xsser 说的没错 ,当输入的数据被多个sql语句执行时,如果注入语句中联合查询不能同时满足两个sql语句,则用联合查询爆表就出问题了
ok...
在 wooyun的知识库里找到 sqlmap早期版本的 中文手册..
http://drops.wooyun.org/tips/143
其中提到sql的爆库4种技术..
接下来使用出错爆库法..
根据freebuf中文章
http://www.freebuf.com/articles/web/5411.html
utl_inaddr.get_host_address函数在参数不合法时,会把参数以出错方式返回..
safe在猜字段时使用了这个方法

QQ截图20130713184511.png


上图也暴露出另一个照成猜表失败的原因..编码问题,该网页是gbk编码的..
中文表名字段的时候,虽然safe识别了网页编码,能正确识别出中文表名,但是你看他在猜中文字段时就出问题了..sqlmap是在所有自动爆库工具中做的最好的,但还是有问题...
sqlmap 在使用出错技术爆表是 使用的是xmltype这个函数

QQ截图20130713191224.png


他在猜表猜字段的时候,对网页返回的表名(gbk编码的),取byte值(在python中urllib.urlopen函数read后返回的严格来说是byte的,虽然在python2中bytes和string分的很随意),然后chr之后用||连接..所有字段名都是可以正确得到的..
但是中文在wincmd(or cygwin)环境下显示又是另一回事,具体看sqlmap说明..
这是,你如果dump整个database是木有问题的..这是理论上说,其实还是有问题...
部分表太多数据了..目测一些中等的表有100万条..页面返回的时间在1分钟以上..
有些表压根就不能获取长度,因为sql语句执行超时..服务器太破了...
sqlmap中如果想猜表,必须先获取长度..如果你长度获取不了,你不能获取内容...
如果-T 参数指定表呢??这里问题又来了..当你指定一个中文表名时..sqlmap会以utf8作为编码处理你的输入,当你给中文时 urllib.quote 会把中文以utf8 处理成url编码的..注意这里不是用chr,而是直接处理的..
ok,返回就又是表名错误..唯一可能的方法是用 --eval 自己先处理参数..
好吧..sqlmap的问题貌似还真不少..
去github提交下看看吧..
码了好多字,多给点rank会怀孕吗??

漏洞证明:

我不暴中文表了
给个safe报暴文的做证明算了

QQ截图20130713195314.png

修复方案:

sqlmap是功能最强大的自动化sql注入工具没有之一

版权声明:转载请注明来源 基佬库克@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝