热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql转义字符_巧用mysql注入getshell!

环境准备:phpstudy的安装在官网下载phpstudy下载地址:1.64位:http:public.xp.cnupgradesphpS

环境准备:

  1. phpstudy的安装
    在官网下载phpstudy
    下载地址:
    1. 64位:http://public.xp.cn/upgrades/phpStudy_64.7z
    2. 32位:http://public.xp.cn/upgrades/phpStudy_32.7z

cb7ea2553bbded09afb388b31bb1dbc5.png

安装好后如图所示

c3a9f84726b9fc4f038b1a69d28c1a28.png

配置好环境变量如图(系统变量)

2.phpmyadmin的安装及配置

在官网下载安装包

06b7dd1077eda67664c36bda63a948a5.png

解压后放到phpstudy 的www目录,确保可以访问

参考配置phpmyadmin

1、直接到官网下载文件,phpMyAdmin-4.3.7-all-languages.zip

2、解压到web目录下,命名为phpMyAdmin

3、配置config文件 ,打开libraries下的config.default.php文件,依次找到下面各项,按照说明配置即可:

(1)访问网址

$cfg['PmaAbsoluteUri'] = '';这里填写phpmyadmin的访问网址 ,我这里为http://localhost:8088/phpMyAdmin

(2)mysql主机信息

$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address

填写localhost或mysql所在服务器的ip地址,如果mysql和该phpmyadmin在同一服务器,则按默认localhost

$cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port

mysql端口,如果是默认3306,保留为空即可。

(3)mysql用户名和密码

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user 访问phpmyadmin使用的mysql用户名  fg['Servers'][$i]['password'] = ''; // MySQL password (only needed对应上述mysql用户名的密码

(4)认证方法

$cfg['Servers'][$i]['auth_type'] = 'COOKIE';

在此有四种模式可供选择,COOKIE,http,HTTP,config

config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。

当该项设置为COOKIE,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,,具体如下:

PHP安装模式为Apache,可以使用http和COOKIE;

PHP安装模式为CGI,可以使用COOKIE

(5)短语密码(blowfish_secret)的设置

$cfg['blowfish_secret'] = '';

如果认证方法设置为COOKIE,就需要设置短语密码,置于设置为什么密码,由自己决定 ,但是不能留空,否则登录phpmyadmin时提示错误。

最后就会安装完成!

配置成功后,访问自己的127.0.0.1端口下的phpmyadmin目录

如果出现报错

Warning: Unsupported declare 'strict_types' in D:\phpstudy_pro\WWW\phpmyadmin\index.php on line 8Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in D:\phpstudy_pro\WWW\phpmyadmin\index.php on line 63

可能是php版本问题,可切换php7及以上版本解决此问题

a27c606f907bf5677e98f935ba1c31ed.png

d05aa263156172d1370899efa338acbc.png

配置成功后访问路径127.0.0.1/phpmyadmin

可以看见phpmyadmin的登陆页面

Mysql Getshell漏洞利用

前提条件:

  1. 知道网站的绝对路径(通过网页的404页面,报错或者phpinfo)

  2. Gpc没有开启,单引号不会被转义(若被转义,则无法执行正常的sql语句)

    GPC:magic_quotes_gpc=On,PHP解析器就会自动为post、get、COOKIE过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符(认为是php的字符)引起的污染    

  3. 要有file权限,默认下只有root有此权限

  4. 对目录要有写的权限,一般image之类的存放突破的目录就有

  5. 没有配置secure-file-priv

漏洞复现1(利用写入的权限):

查询secure_file_priv的开启状态

利用show global variables like '%secure%' 语句查询开启secure_file_priv的状态

825fc93c392621dc4d3e09bf345e6b86.png

secure_file_priv的Value值为NUll代表着限制了mysql不允许导入和导出

要是想使语句导出成功,需要在mysql文件夹下配置my.ini

当secure_file_priv的值没有具体值时,表示不对mysqld 的导入导出做限制

在[mysqld]内加入secure_file_priv ="" 即可

a9a19d12aa74b0f07557f153f1c68b19.png

选择自己的留言板作为靶场,找到一个传id的地方

b964a3dd8634206692260cbf8c9f75fb.png

测试可知为整型的注入,and 1=1正常 and 1=2报错,利用order by 可以查询到列数为9

b3e9f7241acc890b78dd6a44ba9cbc58.png

利用文件写入权限写入一句话木马

union select 1,"",3,4,5,6,7,8,9 into outfile 'D:/phpstudy_pro/WWW/liuyanban/a1.php'

这里需要注意/或者\\是正确的,\是不正确的

8d53166538baf8975091e9e79ea38530.png

1422ca0e74c94a7da50c8ecd32318baa.png

绝对路径是按照报错返回的值确定的

上传成功后利用蚁剑链接,即可getshell

729c6a6dd91b4bad9306d4ebfbbe7a98.png

漏洞复现2(利用日志文件getshell):

首先知道phpmyadmin的账号密码,利用弱口令可以得到

mysql 5.0版本以上会创建日志文件,修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。

首先查看日志的状态

show variables like '%general%';

c93fe7774914d1ce96b877d00d99597a.png

可以知道sql语法的执行日志存放在LAPTOP-1DSIFCE7.log文件中

如果修改general_log_file的值,就会把执行的sql语句放到特定的路径,进而可以getshell

利用命令SET GLOBAL general_log='on'可以开启日志文件的存放

SET GLOBAL general_log='on'

936e8eba809080a4821888ed2869e8f4.png

执行完此命令可以利用查询语句查看到general_log成功开启

1c17eb3c351d0657099ec82d36c8c044.png

然后设置general_log_file的Value值为www目录下的文件路径(前提是已经知道绝对路径)

利用命令

SET GLOBAL general_log_file='D:/phpstudy_pro/WWW/test.php'

                                                                注意反斜杠的转义

51c17bbc1ace60daa8d2efa960378944.png

执行成功可以在目录下看见test.php文件

b5fcc598f3a039d16e42f520d7c433cd.png

由于执行的语法都会存放在设置的这个文件中,那么我们就可以利用select语句写入一句话木马

SELECT '

a1543473d3312b1e8884c5829154d441.png

可以在test.php文件中看到自己写的语法

d0eeed569d0cc8be1f0485fc9102f00a.png

使用菜刀蚁剑等shell工具可以getshell

a6f1f223dbff0025ea5e4b9a8dfe380e.png

也可以在sqlmap里加上--os-shell参数一键getshell!

80d2a9e209ffebe1e3fdab88b595a2fb.png

d170852b32c46a890437cb5d82768cb7.png

选择web支持的语言和需要连接的用户

bfe4a1e1f6cc0f797a69629eca41c49c.png

输入ipconfig后确认即可。




推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
author-avatar
手机用户2502886741
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有