write-ups/CTF

christmas CTF PICTUBE Write up

2017. 12. 27. 21:52

최근에 크리스마스 CTF가 열렸다. 솔로 형들끼리 대회에 나갔는데 같이 나간 수가 무려 20명ㅋㅋ 웹이 너무 어려워서 대회 때는 못 풀었는데, 대회가 끝나고나서 문제를 풀게 되어서 라이트업을 작성해보려고 한다. 원평이형, 시우, 내가 힘을 합쳐서 풀었던 문제이다. 



1등을 해버려따... 팡호형 없는 팡호형 1인팀

PICTUBE 

공격 루트를 찾기 위해서 먼저 기능부터 알아보자. 이 문제는 Gallery 라는 컨셉으로 제작된 문제이다. 


이럭개 귀여운 튜브와 라쿤을 볼 수 있다. 물론 카톡으로도 많이 봤을거지만..ㅋㅋ 


Proposal 메뉴에 들어가면 뭔가를 쓸 수 있다. 쇼쇽- 샤삭 뭔가를 써보자. Waiting이 뜨면서 나중에 Success로 바뀌는 경우와 Failed 라고 바로 뜨는 경우 두 개가 있다. Failed는 뭔가를 필터링했다는 것 같은데, 어떤 문자를 필터링했는지 알아보자.


document, src, location, eval, ', ", ` 등등..


필터링된 단어들을 보면 보통 XSS 공격에서 주로 쓰이는 기법임을 알 수 있다. 그럼 그리고 Proposal에 쓴 글을 보려면 admin 권한이 필요하다고 하는데 이 권한을 얻기 위해서 고군분투해보자.



시나리오 

고냥 XSS 로 admin의 권한을 획득하면 된다. 

공격 방법 

거의 모든 단어가 필터링되어 있는데, 어떻게 공격할지 계속 감을 잡지 못하고 브라우저의 console에서 자바스크립트 트릭을 찾아보고 있었다. 찾다보니, 대회가 끝나기 2시간 전인 10시 경에 좋은 트릭하나를 발견했다. 


문자열을 만들기 위해서 계속 고생하고 있었는데 위와 같은 트릭을 쓰면 될 것 같았다. 옆에서 내가 이 트릭을 연구하는 것을 보고 주창이도 이 트릭을 연구하다가 문자열을 extract할 수 있는 기막힌 방법을 생각해냈다. 



그래서 야자시간에 이러한 트릭을 이용해서 document, cookie, fromCharCode 등의 문자열을 만드려고 노력했다. 그리고 만들었다... 



이런식으로 스크립트를 짜면 된다. 


그리고 이러한 방법을 이용해서 문자 치환 딕셔너리를 만들던가 해서 어드민의 권한을 가져오면 된다. 



flag : XMAS{C0m3_1n_c0mf0rt4b1y~~,,xD}

'write-ups > CTF' 카테고리의 다른 글

Codegate 2018 본선 진출했습니다  (0) 2018.02.04
Trustealth CTF easy write up  (0) 2018.01.08
2017 ROOT CTF write up  (0) 2017.12.26
mma ctf 2nd 2016 greeting write up  (0) 2017.12.19
codegate 2017 babypwn write up  (1) 2017.12.18