CGI
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Deepen your expertise in Mobile Security with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
CGI 스크립트는 perl 스크립트이므로, .cgi 스크립트를 실행할 수 있는 서버를 침해한 경우 perl 리버스 셸 (/usr/share/webshells/perl/perl-reverse-shell.pl
)을 업로드하고, 확장자를 .pl에서 .cgi로 변경한 후, 실행 권한 (chmod +x
)을 부여하고 웹 브라우저에서 리버스 셸에 접속하여 실행할 수 있습니다. CGI 취약점을 테스트하기 위해 nikto -C all
(및 모든 플러그인)을 사용하는 것이 권장됩니다.
ShellShock는 Unix 기반 운영 체제에서 널리 사용되는 Bash 명령줄 셸에 영향을 미치는 취약점입니다. 이는 Bash가 애플리케이션에 의해 전달된 명령을 실행할 수 있는 능력을 목표로 합니다. 취약점은 환경 변수의 조작에 있으며, 이는 컴퓨터에서 프로세스가 실행되는 방식에 영향을 미치는 동적 이름 값입니다. 공격자는 환경 변수에 악성 코드를 첨부하여 변수를 수신할 때 실행되도록 할 수 있습니다. 이를 통해 공격자는 시스템을 손상시킬 수 있습니다.
이 취약점을 악용하면 페이지가 오류를 발생시킬 수 있습니다.
이 취약점을 찾을 수 있는 방법은 구식 Apache 버전과 cgi_mod (cgi 폴더 포함)을 사용하고 있는지 확인하거나 nikto를 사용하는 것입니다.
대부분의 테스트는 무언가를 에코하고 해당 문자열이 웹 응답으로 반환되기를 기대하는 방식으로 이루어집니다. 페이지가 취약할 수 있다고 생각되면 모든 cgi 페이지를 검색하고 테스트하십시오.
Nmap
CGI는 http 요청의 각 헤더에 대해 환경 변수를 생성합니다. 예를 들어: "host:web.com"은 "HTTP_HOST"="web.com"으로 생성됩니다.
HTTP_PROXY 변수가 웹 서버에 의해 사용될 수 있습니다. "Proxy: <IP_attacker>:<PORT>"를 포함하는 헤더를 보내고, 세션 중에 서버가 요청을 수행하는지 확인하십시오. 그러면 서버가 만든 각 요청을 캡처할 수 있습니다.
기본적으로 cgi가 활성화되어 있고 php가 "구형" (<5.3.12 / < 5.4.2)인 경우 코드를 실행할 수 있습니다. 이 취약점을 악용하기 위해서는 매개변수를 보내지 않고 (특히 "=" 문자를 보내지 않고) 웹 서버의 일부 PHP 파일에 접근해야 합니다. 그런 다음 이 취약점을 테스트하기 위해 예를 들어 /index.php?-s
에 접근할 수 있습니다 (note the -s
) 그리고 응답에 애플리케이션의 소스 코드가 나타납니다.
그런 다음 RCE를 얻기 위해 이 특별한 쿼리를 보낼 수 있습니다: /?-d allow_url_include=1 -d auto_prepend_file=php://input
그리고 요청 본문에서 실행될 PHP 코드. 예:**
취약점 및 가능한 익스플로잇에 대한 추가 정보: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, CTF 작성 예시.
모바일 보안에 대한 전문성을 심화하세요. 8kSec 아카데미를 통해 iOS 및 Android 보안을 마스터하고 인증을 받으세요:
AWS 해킹 배우고 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우고 연습하기: HackTricks Training GCP Red Team Expert (GRTE)