728x90

처음에 http://web.chal.csaw.io:7311/?path=orange.txt라고 주소가 주어졌다. 들어가보면 진짜 아무것도 없이 i love oranges라고 떠있었다. 당연히 url주소만 봐도 directory traversal을 이용하는 문제같았다. 그래서 뒤에 orange.txt를 지운 http://web.chal.csaw.io:7311/?path=이걸 주소창에 쳐보았다.

 

 

 

예상했던대로 directroy traversal이 맞는것 같았다. 그러나 우리가 찾는 flag.txt는 없는것 같았다. 그럼 루트권한까지 올라가기위해 ../를 이용해봐야겠다고 생각했었다. 그래서 http://web.chal.csaw.io:7311/?path=/../../대충 이렇게 쳐봤다.

 

 

역시 이렇게 쉽게 풀리지는 않았다. ../를 차단하는 방식으로 코딩을 해놨을거라고 추측을 하고 url인코딩을 해보기로 했다. url 인코딩을 하면 %252e가 나온다. 그것을 이용해 주소창에 http://web.chal.csaw.io:7311/?path=/%252e%252e/를 쳐보았다.

 

 

역시 풀렸다. 그럼 http://web.chal.csaw.io:7311/?path=/%252e%252e/flag.txt 여기 접속해서 flag.txt값을 읽어오면

 

 

flag값이 나오게 된다. 여기서 끝내면 공부가 안될것같아서 더 server.js에 들어가서 코드를 대충 봤다.

 

 

역시 예상대로 ..이 차단되는 방식의 코딩이였다. 그렇게 어렵지 않은 문제였지만 url인코딩을 생각을 못하면 풀수없는 문제였다.

 

 

 

 

 

 

 

 

 

'ctf write-up > csaw ctf 2017' 카테고리의 다른 글

Shia Labeouf-off! - web  (0) 2017.10.01
orange v3 - web  (0) 2017.10.01
LittleQuery - web  (0) 2017.10.01

+ Recent posts