當前位置:首頁 » 編程語言 » sql手工注入語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql手工注入語句

發布時間: 2022-04-01 16:30:52

⑴ 手工注入sql的時候總是遇到2和11, 這兩個數字有什麼特別之處嗎

你用了什麼語句才出現2和11這兩個數字的?

⑵ 如何手工注入sql注入構造url

先舉個例子,你要登錄一個網站,上面讓你輸入用戶名字和密碼。那麼,假如你輸入的用戶名是 admin ,但是你不知道密碼,你就輸入了一個 1' OR '1' = '1 ,那麼,你就提交了兩個參數給伺服器。假如,伺服器拿這兩個參數拼SQL語句:SELECT T.* FROM XXX_TABLE TWHERE T.USER_ID = '/*param1*/'AND T.PASSWORD = '/*param2*/'那麼,你提交的兩個參數就使SQL文變成了:SELECT T.* FROM XXX_TABLE TWHERE T.USER_ID = 'admin'AND T.PASSWORD = '1' OR '1' = '1'那麼,這個SQL原來的校驗功能就被你繞過去了,你的這種行為就稱之為SQL注入。

⑶ SQL手工注入限制了回顯長度,怎麼辦

按照我的經驗來看可能有安全軟體在伺服器上或者網站代碼里有防注入代碼。建議旁註或者C段用CAIN

⑷ 如何對網站進行SQL注入

首先你要了解什麼是SQL注入漏洞,SQL注入漏洞就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令,比如很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊。
簡單來說,網站一般都是由web應用程序,資料庫,伺服器等組成的,網站的所有用戶數據,密碼表單等等都是保存在資料庫當中的,資料庫的內容按到常理來說是只能在伺服器內部進行查詢,當然,但是,開發人員對客戶端用戶向客戶端提交的參數沒有進行過濾,那麼,黑客就可以從客戶端【瀏覽器,等等,詳細可以學習http協議】向伺服器提交查詢資料庫的SQL語句,如果提交的語句成功的被伺服器給接收到並且執行么,那麼黑客豈不是想怎麼查詢資料庫裡面的內容就怎麼查詢,不是么?那些管理賬號密碼,會員數據不是分分鍾就到手了?SQL注入漏洞危害是非常大的。

當然,這種漏洞是根據提交參數沒過濾而產生的,那麼除了瀏覽器的get提交參數,http協議中還有,post提交,cookie提交,等等。注入漏洞不是網上那些所謂的黑闊,用什麼啊D,明小子之類的亂檢測一氣而找出來的,如果樓主想研究這個漏洞的產生,原理,利用和防禦,是需要進行代碼審計,SQL注入語句基礎,等等。

現在一般常用的工具:SQLmap【這是一款神器,現在是公認最強大的開源注入工具】

建議樓主去看幾本書:《SQL注入天書》《SQL注入漏洞的產生與防禦》

這個漏洞的利用不是幾句話就能說清楚的,詳細的可以追問,純手工打字,望樓主採納。

⑸ SQL手動注入怎麼獲得ASP網站後台鏈接。

...sql手工注入不能爆出後台地址的。。。要用目錄掃描器掃描。或者針對網站程序的版本來確定後台地址的。

⑹ 簡單的sql注入攻擊問題

剛開始你就想找資料庫的漏洞????

要找漏洞,首先你要對資料庫的操作,人員許可權的分配 等等 很多,非常了解。以及知道了它的工作原理,你才有可能找到所謂的漏洞。找到其中的BUG。如果漏洞那麼好找,要資料庫管理員幹嘛。

從頭開始學,學會了之後 漏洞,找菜有意思。

⑺ sql手工注入

推薦裝一個伺服器安全軟體,雲鎖就非常不錯,免費而且功能強大,支持windows和linux伺服器,能有效抵禦病毒、木馬、webshell、後門等惡意代碼和CC攻擊、Sql注入、XSS跨站攻擊、網頁篡改、掛黑鏈等黑客行為,有保護您的伺服器和網站安全!希望能幫到您,求加分

⑻ 如何通過注入SQL語句獲取網站管理許可權及安全措施

×

loading..

資訊
安全
論壇
下載
讀書
程序開發
資料庫
系統
網路
電子書
微信學院
站長學院
QQ
手機軟體
考試

系統安全|
網站安全|
企業安全|
網路安全|
工具軟體|
殺毒防毒|
加密解密|

首頁 > 安全 > 網站安全 > 正文

如何通過注入SQL語句獲取網站管理許可權及安全措施

2011-04-19

0 個評論

收藏

我要投稿

我們知道網站後台需要驗證用戶的輸入, 如果不這樣做, 用戶甚至可以輸入一些SQL語句操作後台的資料庫,
這么好玩的事情一直沒有真正體驗過. 前幾日學校搞了一個"你最喜歡的輔導員"投票活動, 網站估計是給某個學生團隊做的,
結果經同學破解了這個網站的管理員帳號和密碼, 我遂向他請教了原理, 也了解了他破解的步驟, 自己又實踐了一遍. 感謝經同學,
沒有他我就不知道這些, 也不可能有這篇博客.
本文破解網站的網址是www.2cto.com 本文的內容不適用於這個網站了.我整理了詳細的破解過程跟大家分享, 文中的邏輯比較強, 需要讀者耐心的看. 但文本講述的是破解步驟, 是一般思路, 如果您有疑問, 請留言, 我們交流討論 :)
一 網站是否存在SQL注入漏洞

網站一般包含一張用戶表(用戶名和密碼)和一張管理員信息表(管理員名稱和密碼), 輸入用戶名和密碼之後, 一般做法是後台都會執行一條SQL語句,
查詢有沒有對應的用戶和密碼, 比如SELECT * FROM SomeTable WHERE UserName = $UserName AND
pwd = $pwd, 如果這條語句返回真, 那麼登錄操作就完成了.
試想一下如果在學號和密碼文本框中輸入or=or,
並提交的話, 上面提到的SQL語句就變成了SELECT * FROM SomeTable WHERE UserName = or=or AND
pwd = or=or, 這個語語句變成了一個邏輯表達式, 表達式包含幾段, 分別為:

1. SELECT * FROM SomeTable WHERE UserName = (假)
or
2. = (真)
or
3. (假)
and

4. pwd = (假)
or
5. = (真)
or
6. (假)

最後整個邏輯表達式為0|1|0&0|1|0, 這個結果為真(在執行到"0|1|..."的時候整個表達式省略號中的就不計算了, 因為"或"前面已經是真), 因此可以登錄成功, 事實上也登錄成功了.

二 破解後台資料庫的原理
在用戶名和密碼的文本框中輸入or=or, 截至上面所示的第2步, 表達式值為真,
因為後面緊接了一個"或", 所以無論在這後面的表達式是什麼, "真或者假""真或者真"都是為真的. 關鍵就是or=or中間的那個=,
=表示一個字元, 永遠為真. 如果我們將這個=改成某個SQL表達式, 如果這個表達式為真, 那麼整個表達式就為真.

後面的幾個步驟要求用戶名和密碼文本框中都輸入同樣的文本, 原因是: 後台的語句格式可能是SELECT * FROM SomeTable
WHERE UserName = $UserName AND pwd = $pwd, 也有可能是SELECT * FROM SomeTable
WHERE pwd = $pwd AND UserName = $UserName, 無論哪一種情況, 只要用戶名和密碼都輸入的文本是一樣的,
只要文本中包含的SQL表達式為真, 那麼整個表達式就為真. 這樣寫帶來的另一個好處是復制粘貼很方便.
通過寫一些SQL表達式來一次一次的測試出資料庫里的內容.

三 獲取後台資料庫的表名
如果將表達式替換為(SELECT COUNT(*) FROM 表名)<>0,
這個表達式用來獲取一個表中有多少條記錄, 需要做的就是猜這個表名是什麼, 猜中了的話, 那麼這個表中的記錄條數肯定就不會等於0,
那麼這個表達式的值就是真的. 常用的表名也就是那麼一些, 一個個的代進去試, 最後發現有個叫做admin的表, 它的欄位不為空. 很顯然,
這個表是用來存放管理員信息的.

四 獲取後台資料庫表的欄位名
現在已經知道這個表叫做admin了, 接下來想辦法得到這個表中的欄位.

把表達式替換成(SELECT COUNT(*) FROM admin WHERE LEN(欄位名)>0)<>0,
這個表達式用來測試admin這個表中是否包含這個欄位. LEN(欄位名)>0表示這個欄位的長度大於0, 在這個欄位存在的情況下,
LEN(欄位名)>0是始終為真的. 如果包含的話這個欄位的話, 整條SELECT語句返回的數字肯定不為0, 也就是說整個表達式為真,
從而得到欄位名.
按照這樣的方法, 靠猜共得出了三個很關鍵的欄位:id, admin, pass.

五 獲取欄位的長度
目前已得到的信息是有個admin表, 表中有id, admin, pass欄位. 後台中存儲用戶名和密碼, 常規做法是存儲它們進行MD5加密後的值(32位), 現在測試一下是不是這樣.

把表達式替換為(SELECT COUNT(*) FROM admin WHERE LEN(欄位名)=32)<>0, 將admin和pass代進去結果是真, 說明後台存儲管理員帳號和密碼用的是加密後32位的欄位.

六 獲取管理員帳號和密碼
MD5加密後的字元串包含32位, 且只可能是由0-9和A-F這些字元組成.
1. 獲取管理員帳號

將表達式改成(SELECT COUNT(*) FROM admin WHERE LEFT(admin,1)=A)>0,
意思是我猜測某個adimin帳號的第一個字元是A, 如果成功則表達式成立. 失敗的話, 把A換成0-9和B-F中的任意字元繼續試, 知道成功.
如果成功了, 我再繼續猜這個帳號的第二個字元, 假如第一個字元是5, 我猜測第二個字元是A, 那將表達式改成(SELECT COUNT(*)
FROM admin WHERE LEFT(admin,2)=5A)>0. 可以發現字元串中LEFT()函數中的1變成了2,
另外5A代碼左邊兩個字元是5A, 其中5已經確定下來了. 就這樣重復不斷的猜, 直到得到整個32位的MD5加密後的字元串.
2. 獲取該帳號對應的的id
為什麼需要獲取該帳號對應的id? 原因如下: 按照上一條是可以得到帳號和密碼的, 但一張表中可以有若干個管理員帳號和密碼, 怎麼對應起來呢? 需要通過id. 一個id對應一條記錄, 一條記錄只有一對匹配的帳號和密碼.

將表達式改成(SELECT COUNT(*) FROM admin WHERE LEFT(admin,1)=5 AND id=1)>0,
上一條假設了某帳號第一個字元是5, 只要這個表達式中的"AND id = 1"正確, 那麼就可以得知該帳號的id是1. 如果不是1,
換成其它的數字一個個的試一試.
3. 獲取帳號對應的密碼
現在已經猜出了某管理員的帳號,
並且知道對應的id是多少(假設得出來是4), 現在只要得到該條記錄中記錄的密碼是什麼. 同理, 將表達式改成(SELECT COUNT(*)
FROM admin WHERE LEFT(pass,1)=A AND id=4)>0, 注意id已經是知道了的4,
現在要一個個的猜pass中從第1個到第32個字元是什麼, 方法同"獲取管理員帳號"方法. 最後可以得到一個32位的MD5加密後的字元串(密碼).

*注: 如果嫌手工得到每個字元是什麼太麻煩, 可以自己用C#寫一個程序, 模擬一下登錄, 通過控制一個循環, 可以很快得到結果.

七 將MD5加密後的帳號和密碼轉成明文

網上有一些網站資料庫里存儲了海量(幾萬億條)的MD5加密後的暗文對應的明文, 只需輸入你需要查找的MD5加密後的字元串就可以查看到明文是什麼.