在一个有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
目前
已经被禁用,并且WAF也会在写入文件的时候拦截。
那么我们尝试通过一个脑洞大开的方法去getshell。
登录phpmyadmin后,查看全局变量:
找到
这里是存储了每一个sql语句执行的日志(包含SQL语句本身)
但是
变量必须是ON状态,代表启用。
此时我们把
开启为
,然后再去更改
的地址为我们的
绝对路径。
在每一次更改
的时候mysql都会判断日志文件是否存在,如果不存在则会自动创建。
此时该文件已经创建,并且文件内容保存了最后一条SQL语句的日志信息。
接下来,我们直接随意查询SQL,每一句都会被写入这个shell.php
由于有WAF,我们采用远程包含的形式来运行webshell。
在我们的远程地址里,放置函数名,使服务器端访问它,然后加载到内存,直接去调用此函数,再去接收我们提交的php代码。
关于菜刀免杀,请看上一篇文章。
下面再附上一个SQL查询免杀shell的语句,方便大家遇到此类情况直接利用:
来源链接:https://www.webshell.cc/6433.html
本文作者为Mr.Bai,转载请注明。