Web hacking/Websec

Websec - level9

seumm 2020. 3. 24. 20:30

Websec-level9

 

 

 

 

입력한 문자열이 블랙리스트에 걸러진후 파일에 저장되며 이 파일을 다시 불러서 eval 해준다.

 

 


 

stripcslashes를 이용하면 풀 수 있다.

stripcslashes는 \n, \r 과 같은 역슬래쉬가 있는 문자들을 역슬래쉬를 제거하고 그 문자의 의미(?)로 표현해준다.

(ex : \n -> 줄바꿈)

(stripcslashes online tester http://php.fnlist.com/string/stripcslashes)

 

 

따라서 블랙리스트에 있는 ' 같은 문자를 \x27, \47으로 입력해주면

블랙리스트에 필터링 되지않고 cache_file에 저장되며 이 파일을 출력해줄 때 stripcslashes를 통해 \x27이 '로 해석되어 함수를 실행 시킬 수 있어서 문제를 해결할 수 있다..