phpMyAdmin利用小结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了phpMyAdmin利用小结相关的知识,希望对你有一定的参考价值。

参考技术A phpmyadmin根目录下后面添加:

在fofa上搜索相应站点进行测试:

Trick:如何判断目录是否存在,往往确定了/var/www/html目录,但是还有一层目录不能 确定,可以采用目标域名+常用的网站根目录的方式进行爆破,当使用

不存在将会报错Can't create/write to file '/var/www/html/666.txt' (Errcode: 2);
如果存在但是目录写不进去将返回(Errcode: 13);

利用过程:
1、获取网站绝对路径
2、判断是否有读写权限:

版本5.5.53之前默认为空,之后的版本默认为null

这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效

3、写入shell到网站根目录下

原理:mysql5.0版本以上会创建日志文件,phpmyadmin有一个记录日志的文件,但是一般情况下会关闭。通过修改日志的全局变量,打开日志并指定日志保存路径,设置日志记录名称为.php

查询日志全局变量:

打开日志全局变量:

设置日志保存路径:

进行查询,使查询的语句写入日志文件中:

原理:只有当查询语句执行的时间要超过系统默认的时间时,该语句才会被记入进慢查询日志

启用慢查询日志(默认禁用):

修改slow_query_log_file日志文件的绝对路径以及文件名:

慢查询时间值:

如果查询时间超过了这个时间值(默认为10秒),这个查询语句将被记录到慢查询日志中

通常情况下执行sql语句时的执行时间一般不会超过10s,所以说这个日志文件应该是比较小的,而且默认也是禁用状态,不会引起管理员的察觉。

向日志文件写入shell:

phpmyadmin反序列化漏洞任意文件读取(WooYun-2016-199433)
影响phpMyAdmin 2.x版本,poc如下:

CVE-2016-5734 RCE:
利用条件:

主要原因由于将用户输入的信息拼接进preg_replace函数第一个参数中,而在PHP5.4.7以前,preg_replace存在漏洞,可以0进行截断,并将正则模式修改为e,进而执行命令。

在Kali中有自带的EXP

具体请参考: https://www.jianshu.com/p/8e44cb1b5b5b

CVE-2018-12613文件包含:
利用条件:

满足以下5个条件:

判断是否存在漏洞经过二次编码绕过
/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

然后在sql语句中执行一些语句记录到日志,然后在包含即可
SELECT '<?php phpinfo()?>';
查询phpmyadmin cookie值(开发者工具查看)
http://192.168.75.130:8080/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_ff16b4962b5343089c8fcd4c58df53ba

CVE-2014 -8959:本地文件包含
利用条件:

POC:

在实际利用中可以利用写入文件到/tmp目录下结合此漏洞完成RCE,php版本可以通过http header、导出表内容到文件的附加内容看到。

CVE-2013-3238:
利用条件:

msf有相应的利用模块:
exploit/multi/http/phpmyadmin_preg_replace

CVE-2012-5159:
利用条件:

msf有相应的利用模块:
exploit/multi/http/phpmyadmin_3522_backdoor

CVE-2009-1151:
PhpMyAdmin配置文件/config/config.inc.php存在命令执行
利用条件:

msf有相应的利用模块:
exploit/unix/webapp/phpmyadmin_config

弱口令&万能密码:
弱口令:版本phpmyadmin2.11.9.2, 直接root用户登陆,无需密码
万能密码:版本2.11.3 / 2.11.4,用户名’localhost’@'@”则登录成功

phpMyAdmin渗透利用总结
phpMyAdmin 渗透利用总结

利用jquery操作Radio方法小结

用Radio来实现用户的选择效果,在项目中积累了一些利用JQUERY来操作Radio的方法,这里与大家分享下

 

在开发中经常会用到Radio来实现用户的选择效果,我在项目中积累了一些利用JQUERY来操作Radio的方法,在这里分享一下,供有需要的朋友借鉴。

1、改变radio的选择,触发一些效果

 

复制代码代码如下:

$("input:radio[name=‘dialCheckResult‘]").change(function (){ //拨通
alert(“123”);
});


2、让页面中所有的radio可用。

 

$("input:radio").attr("disabled",false);

3、让页面中所有的radio不可用。

$("input:radio").attr("disabled","disabled");

4、让某个radio置于选中状态。

$("input:radio[name=‘dialCheckResult‘]").eq(0).attr("checked",true);

5、让页面中“未选中”状态的radio不可用。

$("input:radio:not([checked])").attr("disabled","disabled");

6、遍历选中状态的radio,除了某一个radio之外,其他的“选中”状态的radio设定是“未选中”状态。

 

复制代码代码如下:

$(‘input:radio:checked‘).each(function(i,val){
if(val.name != "dialCheckResult" ){
$("input:radio[name=‘"+val.name+"‘]:checked").attr(‘checked‘,false);
}
});


7、让所有“未选中”状态的radio不可用。

 

$("input:radio:not([checked])").attr("disabled","disabled");

8、获得某个选中的特定NAME的radio的值。

var dialCheckResult=$("input:radio[name=‘dialCheckResult‘]:checked").val() ;

9、让所有“选中”状态的radio置于“未选中”状态。

$(‘input:radio:checked‘).attr(‘checked‘,false);

10、让页面中的radio都置于“选中”状态或“未选中”状态。

$("input:radio").attr("checked",true);

$("input:radio").attr("checked",false);

以上是关于phpMyAdmin利用小结的主要内容,如果未能解决你的问题,请参考以下文章

利用phpmyadmin修改mysql的root密码及如何进入修改密码后的phpmyadmin

getshell技巧-phpMyAdmin的利用

利用docker-compose搭建LAMP+phpmyadmin环境

phpMyAdmin 4.7.x CSRF 漏洞利用

如何利用phpmyadmin导入和导出mysql数据库

如何利用phpmyadmin导入和导出mysql数据库