LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
WhiteIntel은 다크 웹을 기반으로 하는 검색 엔진으로, 회사나 그 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 무료로 확인할 수 있는 기능을 제공합니다.
WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.
그들의 웹사이트를 확인하고 무료로 엔진을 시도해 볼 수 있습니다:
compress.zlib://
및 PHP_STREAM_PREFER_STDIO
compress.zlib://
및 PHP_STREAM_PREFER_STDIO
플래그 PHP_STREAM_PREFER_STDIO
를 사용하여 프로토콜 compress.zlib://
로 열린 파일은 나중에 도착하는 데이터를 동일한 파일에 계속 기록할 수 있습니다.
이는 다음과 같은 호출을 의미합니다:
다음은 http://attacker.com/file을 요청하는 요청을 보낼 것이며, 서버는 유효한 HTTP 응답으로 응답할 수 있으며, 연결을 열어둔 채로 나중에 추가 데이터를 보내 파일에 기록할 수 있습니다.
당신은 main/streams/cast.c의 php-src 코드 부분에서 이 정보를 볼 수 있습니다.
Race Condition에서 RCE로
이 CTF는 이전 트릭을 사용하여 해결되었습니다.
공격자는 피해 서버가 공격자 서버에서 파일을 읽는 연결을 열도록 만듭니다. 이는 compress.zlib
프로토콜을 사용합니다.
이 연결이 존재하는 동안 공격자는 서버에 의해 노출된 임시 파일이 생성된 경로를 외부로 유출할 것입니다.
연결이 열려 있는 동안 공격자는 자신이 제어하는 임시 파일을 로드하는 LFI를 악용할 것입니다.
그러나 웹 서버에는 <?
를 포함하는 파일을 로드하는 것을 방지하는 확인이 있습니다. 따라서 공격자는 Race Condition을 악용할 것입니다. 여전히 열려 있는 연결에서 공격자는 웹 서버가 파일이 금지된 문자를 포함하고 있는지 확인한 후에 내용을 로드하기 전에 PHP 페이로드를 보낼 것입니다.
자세한 정보는 https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer의 Race Condition 및 CTF 설명을 확인하십시오.
WhiteIntel은 다크 웹을 통해 동작하는 검색 엔진으로, 회사나 그 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 무료로 확인할 수 있는 기능을 제공합니다.
WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.
그들의 웹사이트를 방문하여 무료로 엔진을 시도해 볼 수 있습니다:
Last updated