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 라는 문구가 출력됐는데,
나중에 좀 더 알아보자.