修复网站漏洞对phpmyadmin防止被入侵提权的解决办法
phpmyadmin是很多网站用来管理数据库的一个系统,尤其是mysql数据库管理的较多一些,最近phpmysql爆出漏洞,尤其是弱口令,sql注入漏洞,都会导致mysql的数据账号密码被泄露,那么如何通过phpmyadmin来上传提权webshell呢
首先我们来搭建一下PHP+mysql环境,linux centos系统,PHP的版本是5.3,mysql版本是5.6,linux系统64位,apache 2.2版本,部署在新开的一台阿里云的按量付费ECS服务器。
phpmyadmin漏洞利用
利用mysql数据库select into outfile方式来写入webshell到网站的根目录下,该漏洞的利用前提是必须知道网站的当前路径是多少,如何知道网站的当前路径,这个要通过爆出网站的错误来进行查看绝对的路径。使用下面的代码:
select load_file('/home/www/safe.php')
select '<?php eval($_POST[sine]); ?>' into outfile '/home/www/safe.php';
执行这个语句就可以生成一句话的木马后门。
也可以使用写数据库日志的方式来进行漏洞的利用,前提是mysql的版本都是5.0以上的,以及日志开启,如果没有开启日志功能,我们需要在phpmyadmin里进行开启,语句如下:set globalgener al_log = "ON";这个数据库语句就是开启日志的功能。查看当前数据库是否开启,可以使用语句查看到SHOW VARIABLES LIKE 'general%'就可以看到是否开启日志了,日志开启成功,那么我们把日志的文件改为php,这样就可以记录日志到php文件当中去了,我们在操作语句的时候可以把一句话网站后门代码写到日志文件当中去进行执行。
关于phpmyadmin网站的绝对路径获取,可以使用单引号来进行错误测试,在ID值后门加上单引号,有些网站就会爆出绝对的网站路径,再一个使用错误的赋值比如ID=1是正常,那么我们可以使用ID=-1,来进行报错,也可以使用搜索引擎来查看网站的快照,看看是否存在一些错误的快照收录,很多网站会留下一些测试的代码,比如phpinfo这样的代码,文件地址是text.php 1.php phpinfo.php等待的文件。
以上就是phpmyadmin漏洞利用,以及如何提权拿webshell的一些利用技巧,关于phpmyadmin漏洞的修复,SINE安全建议管理员关闭掉phpmyadmin的对外访问,只允许在服务器里打开phpmyadmin的界面,外网无法打开。对网站的根目录部署防篡改安全防护,禁止新增PHP文件。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
多线程 Thread.yield 方法到底有什么用?
概念 我们知道 start() 方法是启动线程,让线程变成就绪状态等待 CPU 调度后执行。 那 yield() 方法是干什么用的呢?来看下源码。 /** *Ahinttotheschedulerthatthecurrentthreadiswillingtoyield *itscurrentuseofaprocessor.Theschedulerisfreetoignorethis *hint. * *<p>Yieldisaheuristicattempttoimproverelativeprogression *betweenthreadsthatwouldotherwiseover-utiliseaCPU.Itsuse *shouldbecombinedwithdetailedprofilingandbenchmarkingto *ensurethatitactuallyhasthedesiredeffect. * *<p>Itisrarelyappropriatetousethismethod.Itmaybeuseful *fordebuggingorte...
-
下一篇
《快学 Go 语言》第 7 课 —— 冰糖葫芦串
字符串通常有两种设计,一种是「字符」串,一种是「字节」串。「字符」串中的每个字都是定长的,而「字节」串中每个字是不定长的。Go 语言里的字符串是「字节」串,英文字符占用 1 个字节,非英文字符占多个字节。这意味着无法通过位置来快速定位出一个完整的字符来,而必须通过遍历的方式来逐个获取单个字符。 我们所说的字符通常是指 unicode 字符,你可以认为所有的英文和汉字在 unicode 字符集中都有一个唯一的整数编号,一个 unicode 通常用 4 个字节来表示,对应的 Go 语言中的字符 rune 占 4 个字节。在 Go 语言的源码中可以找到下面这行代码,rune 类型是一个衍生类型,它在内存里面使用 int32 类型的 4 个字节存储。 type rune int32 使用「字符」串来表示字符串势必会浪费空间,因为所有的英文字符本来只需要 1 个字节来表示,用 rune 字符来表示的话那么剩余的 3 个字节都是零。但是「字符」串有一个好处,那就是可以快速定位。 为了进一步方便读者理解字节 byte 和 字符 rune 的关系,我花了下面这张图 图片 其中 codepoint 是每...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL数据库在高并发下的优化方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果