Websec-level9
입력한 문자열이 블랙리스트에 걸러진후 파일에 저장되며 이 파일을 다시 불러서 eval 해준다.
stripcslashes를 이용하면 풀 수 있다.
stripcslashes는 \n, \r 과 같은 역슬래쉬가 있는 문자들을 역슬래쉬를 제거하고 그 문자의 의미(?)로 표현해준다.
(ex : \n -> 줄바꿈)
(stripcslashes online tester http://php.fnlist.com/string/stripcslashes)
따라서 블랙리스트에 있는 ' 같은 문자를 \x27, \47으로 입력해주면
블랙리스트에 필터링 되지않고 cache_file에 저장되며 이 파일을 출력해줄 때 stripcslashes를 통해 \x27이 '로 해석되어 함수를 실행 시킬 수 있어서 문제를 해결할 수 있다..
'Web hacking > Websec' 카테고리의 다른 글
websec - level 19 (0) | 2020.03.05 |
---|---|
websec - level 24 (0) | 2020.02.25 |
Websec - level 22 (0) | 2020.02.22 |
Websec - level 14 (0) | 2020.02.19 |
Websec - level 17 (0) | 2020.01.05 |