webhacking.kr slipping beauty write-up
오늘 기계학습 시험을 봤는데 너무 망쳐서 그냥 웹해킹이나 더 공부하려고 webhacking.kr 문제를 풀었다.
highlight_file() 을 통해 소스가 제공되는 문제이다. 한눈에 봐도 Attack Surface가 2가지 정도 보인다. File Upload 기능과 PHP Zip wrapper를 통한 file read 기능이 그것이다.
1 트.
일단 이 공격을 ZIP Slipping 이라고 했던 것 같은데, symbolic linked file을 zip하여 arbitrary file read까지 할 수 있다는 사실을 알고 있는 상태였다.
+ TMI ) 고등학교 1학년 때 BoB WEB CTF였나? 거기서 성준이형이 이 공격을 사용해 출제한 문제를 풀면서 알게됐던 공격이다. 이런 식으로도 공격이 되는구나 싶어서 상당히 신기했던 기억이 난다.
근데 안된다. 😅
알고보니 PHP zip:// wrapper를 사용해 file read를 하는 경우엔 symbolic linked file을 읽을 수 없는 듯.
음 하여튼 이 문제는 zip slipping으로 푸는 문제라고 생각해서 2시간 정도 관련 레퍼런스를 참고하면서 삽질했다.
2 트.
근데 또 보니까 문자열을 검색하는 과정에서 위와 같은 코드를 사용하는 거였다.
preg_replace() 함수는 내가 알기론 parameter가 3개인데,, 싶어서 간단히 테스트를 해보니 아래와 같았다.
결국 preg_replace() 로 금지된 문자를 검색하는 코드는 없는 것이나 다름없는 것이었다. 그렇지만 이 가젯을 어디에 사용할 수 있는지 몰라서 삽질을 조금하다가 넘겼다.
3 트.
이런 식으로 Arbtrary File write를 할 수 있다는 것을 알게되었다. 여기서 삽질하다가 시우한테 힌트를 받았는데 session 파일을 덮으면 되는 것이었다. 끝이었다. 예전에 Layer7 CTF에서 시우가 출제한 문제에서도 세션 파일을 overwrite하는 문제가 있었는데 그것도 재밌게 풀었던 기억이 난다.
끝.
플래그를 얻었다.
'write-ups > webhacking.kr' 카테고리의 다른 글
webhacking.kr NotSQL (0) | 2021.04.20 |
---|---|
webhacking.kr CHILD write-up (0) | 2021.04.17 |