KOROMOON

착한 사마리아인이 되고 싶습니다.

3/10/2020

preg_replace() 함수를 이용한 PHP WebShell


※ 주의사항 : 

악용하지 마세요!!!
해당 글은 연구 목적으로 기재하였습니다.
악의적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신에게 있습니다.



( 1 ) preg_replace() 함수


mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit [, int &$count ]] )

정규 표현식 검색과 치환을 수행하는 함수로 subject 를 검색하여 매치된 pattern 을 replacement 로 치환함.
참고로 patten 인자의 /e 옵션은 preg_replace()가 replacement 인자로 변환을 하고 PHP 코드로 취급하도록 함.



( 2 ) preg_replace() 함수를 이용한 PHP WebShell

< preg_replace() 함수를 이용한 PHP WebShell >

URL 입력 : hxxp://사이트 주소/webshell.php?c="명령어"​
< 실행한 화면 >

해당 WebShell 코드를 보면 preg_replace()​ 함수를 이용하여 세 번째 인자 koromoon 문자열에서 첫 번째 인자 매치된 패턴 koromoon 을 backdoor 변수에서 받아지는 명령어로 변환함.

여기서 첫 번째 인자의 /e 옵션으로 인해 입력되는 명령어가 PHP 코드로 변환되어 실행하게 됨.



참고 사이트 : 
https://www.php.net/manual/en/function.preg-replace.php



============================================================

본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.

댓글 없음:

댓글 쓰기