sql手工注入系列之cookie注入

本次用到的靶場是由掌控學院提供的sql注入靶場

靶場傳送門



引言~
  cookie注入的原理也和平時的sql注入大同小異,一般的sql注入我們是使用get或者post方式提交的,而cookie注入只不過我們是將提交的參數已cookie方式提交罷了,get方式提交就是直接在網址後面加上需要注入的語句,post則是通過表單方式提交,可以通過bp等工具來攔截數據改包,get和post的不同之處就在於一個我們可以通過URL地址欄處看到我們提交的參數,而另外一個卻不能。
  而相對post和get方式注入來說,cookie注入就要稍微繁瑣一些了,要進行cookie注入,我們首先就要修改cookie,這裏就需要使用到ModHeader插件。

插件傳送門

  另外cookie注入的形成要有兩個必須條件:

  條件1是:後臺對get和post方式提交的數據進行了過濾,但未對cookie提交的數據庫進行過濾。
  條件2是:在條件1的基礎上還需要程序對提交數據獲取方式是直接request(“xxx”)的方式,未指明使用request(請求)對象的具體方法進行獲取,也就是說用request這個方法的時候獲取的參數可以是是在URL後面的參數也可以是cookie裏面的參數這裏沒有做篩選,之後的原理就像我們的sql注入一樣了。

正文開始~

一.信息收集
1.打開傳送門,映入眼簾的是一個新聞門戶站。 我們點擊一條新聞,爲什麼要點擊新聞呢?因爲一般新聞頁面的功能都是與數據庫進行交互的。

在這裏插入圖片描述

通過URL我們可以得知,是網站下的shownews.asp這個ASP動態網頁文件,與數據庫進行交互,並查詢出了第171篇(id=171)新聞內容的值。




2.緊接着我們來猜一下頁面數據表的字段數
在這裏插入圖片描述
通過頁面可以清楚的看出,查詢當前表是否有10個字段,頁面返回正常,於是我們繼續拼接order by,但把10改成11,這時候頁面報錯,基本可以判斷字段數爲10個了

這時候雖然知道了字段數,但是還不清楚顯示位是多少,接着我們通過聯合查詢來回顯,因爲字段數爲10,所以相應的,聯合查詢所查詢的字段數也要一致爲10爲,不然查詢的字段數和數據庫裏面存的表字段數不一致會報錯!!
在這裏插入圖片描述
訪問發現有waf(防火牆之類的web硬軟件),經測試只要url出現select(查詢)關鍵字,就會被攔截。



3.這時候我們的cookie注入就要派上用場了,我們嘗試,將測試語句放到cookie裏面,再發送給服務器,因爲網頁防護一般只攔截Get、post傳參,這裏用到了ModHeader插件
在這裏插入圖片描述
可以看到頁面正常,這證明cookie裏的id=171,也能正常傳參,被當作sql語句拼接。那我們直接進行注入

4.接着我們再來查詢一下當前頁面的回顯位

在這裏插入圖片描述
數據庫中不存在abc這個表,自然就出錯了,使用更換from 處可以來猜解表明
繼續猜測是否存在admin表

id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin
+號代替空格,不然會出錯

在這裏插入圖片描述
可以發現頁面回顯了2、3、7、8、9

信息收集完成,接下來我們開始來爆數據了

二.數據收集

我們接着繼續嘗試猜測最常見的管理表字段名Username和Password,我們在2、3、7、8、9中任選兩個,分別填入Username和Password

id=171+union+select+1,username,3,4,5,6,7,8,password,10+from+admin在這裏插入圖片描述
接着刷新頁面,發現頁面返回了admin表中,username和password字段的值:admin、b9a2a2b5dffb918c

這應該就是管理員用戶名和密碼了,但管理員密碼看起來有些奇怪。字母+數字的16位組合,很像md5的特徵。

打開cmd5.com(解密站點)

將b9a2a2b5dffb918c進行解密。
在這裏插入圖片描述
通過cmd5解密發現密碼的明文是welcome。

成功獲取了管理員賬號密碼,接着我們去尋找後臺登錄

三.後臺登錄

既然管理員這麼不小心都用上username和password這種大衆的密碼存放表了,再次盲猜後臺的登錄界面爲admin

在這裏插入圖片描述

回車後出現管理員登錄頁面,輸入用戶名admin、密碼welcome,填寫驗證碼。
在這裏插入圖片描述
成功登陸!到此,成功通過cookie注入繞過防得到密碼,登陸後臺拿到flag!
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章