WebHacking

[root-me] PHP preg_replace()

BIGFROG 2020. 1. 6. 20:37

e modifier 취약점 문제.

 

찾아보니까  real world에서는 대부분 패치되어 이용하기 힘든 취약점이라고 한다.

 

preg_replace함수는 특정 문자열을 필터링할 수 있는 함수인데,

 

/e 옵션을 넣어주면 "치환되는 문자"부분을 php코드 그대로 해석해준다.

 

즉, php코드로 실행시킬 수 있다는 말이 된다.

 

search부분에는 /[0-9]/e 로 /e옵션을 줬고,

 

replace부분에는 원격 파일을 읽을 수 있는 방법 중 하나인

 

file_get_contents('flag.php'); 를 입력했다.

 

content부분에는 숫자 1을 입력해줘서 문자열이 치환되도록 했다.

 

 

 

 

 

*fopen함수를 이용해서 읽었을 때는 resource id #2 라는 문구가 출력됐는데,

나중에 좀 더 알아보자.