728x90

http://web.chal.csaw.io:5487/처음 들어가보면

 

 

이런 화면이 뜬다. 처음에 일단 Polls를 들어가보았다.

 

 

이런 것들이 뜬다. 두개를 모두 들어가봤는데 딱히 별건 없었다. 여기서 알아낸것은 주소창뒤에 아랫것은 1이 붙고 위에것은 2가 붙는다는것이였다. 그럼 3을 넣어서 오류를 한번내보면 어떨까라는 생각에 해보았다.

 

 

역시 예쁘게 오류가 떴다. 내리다보면 진한 부분이 있는데 그건 사용자 스크립트에 관한부분이다. 연하게 되어있는 부분은  라이브러리함수이고, 여튼 그럼 사용자 스크립트를 보자.

 

 

이렇게 'getme'와 'listme'라는 것들로 값을 구하는것처럼 보인다. 나중에 쓸일이 있을것 같다. 이제 다시 Ad-Lib으로 들어가보자.

 

 

이런게 뜬다. 이건 그냥 저 값들 이외에 값을 넣어서 오류를 한번더 내보자.

 

 

역시 오류가 났다. 이것도 내리다보면

 

 

이런게 나온다. 'mrpoopy'를 넣으면 될것같다. 아까 구했던 listme와 함께 넣어보자.

 

 

 

역시 여기에 flag값이 있는게 확실해졌다. 양식도 여기서 가르쳐주었다. __flag__로 넣으면 될것같다. 이번에는 flag값을 구해야하므로 getme를 이용해서 넣어보자.

 

 

 

역시 flag값이 나온다. 이번문제는 Django에 기반을 둔 문제인것같다. 이쪽으로 좀더 공부를 해야할것같다.

 

 

 

 

 

 

 

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

orange v3 - web  (0) 2017.10.01
LittleQuery - web  (0) 2017.10.01
orange v1 - web  (0) 2017.10.01
728x90

http://web.chal.csaw.io:7312/?path=orange.txt들어가보면 또

 

 

이렇게만 떠있다. 그럼 v1처럼 directory traversal을 이용하여 들어가보자.

 

 

어? 이것까지 막아놨다. v1보다 좀더 신경을 쓴것같다. v1처럼 인코딩을 해서 주소창에 넣어봐도 안된다. 그럼 문자를 UTF-16에서 직접 찾아봐야 할 것 같다. http://www.fileformat.info/info/charset/UTF-16/list.htm이 사이트에서 쭉 찾아보다보면 'Į'이 문자가 나온다. 이건 알파벳 'N'을 가리키는 문자라고 한다. 그럼 저걸 써보면 http://web.chal.csaw.io:7312/?path=ĮĮ/flag.txt이렇게 유추할수있다. 들어가보면

 

 

이렇게 flag가 뜨게된다. 이 문제는 다른방법으로 더 쉽게 풀수있는지 한번 시도해봐야할것같다.

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

Shia Labeouf-off! - web  (0) 2017.10.01
LittleQuery - web  (0) 2017.10.01
orange v1 - web  (0) 2017.10.01
728x90

 

처음 이 문제를 들어가면 접하게 되는 화면이다. 그냥 다른 웹페이지들이랑 다를게 없어보인다. 일단 소스보기를 먼저 눌려본다.

 

 

역시 힌트가 있었다. 저 주소를 뒤에 한번 쳐봐야겠다.

 

 

모드를 지정해주는것 같다. 그럼 또 모드를 주소창 뒤에 쳐준다. ?mode=schema라고 쳐주면 될것같다.

 

 

또 db를 지정해준다. 기분좋게 또 뒤에 db를 littlequery로 설정해준다. &db=littlequery라고 치면 될것같다.

 

 

테이블까지 지정해준다. table을 user로 설정해줘야겠다. &table=user를 치면 될것같다.

 

 

역시 맞았다. 여기서 여러가지 정보들을 알려주는데 지금은 딱히 쓸모없을것같다. 그럼 아까 맨처음에 봤던 mode중에 preview를 쳐봐야겠다.

 

 

역시 그냥 풀려버리면 재미가 없다. sql 인젝션을 이용해보자. http://littlequery.chal.csaw.io/api/db_explore.php?mode=preview&db=littlequery`.`user&table=user이렇게 하면 될것같다.

 

 

한번더 써야될것같다. 그러면 http://littlequery.chal.csaw.io/api/db_explore.php?mode=preview&db=littlequery`.`user`--%20&table=user이렇게 써주었다.

 

 

그러자 username과 passwd가 떴다. 이걸 로그인창에 한번 쳐보자.

 

 

그대로 쳤는데 로그인이 되지 않는다. 소스보기를 눌려보자.

 

 

SHA1으로 뭔가 인코딩해서 보내는것같다. 그럼 개발자모드에 들어가서 그냥 코드를 수정하는 방식으로 풀어야겠다.

 

 

아직 다른쪽으로는 부족해서 HTML로 코딩해서 써봤다.

 

 

그러자 flag값이 나왔다. 다른방법으로도 한번 시도해볼만한 문제인것같다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Shia Labeouf-off! - web  (0) 2017.10.01
orange v3 - web  (0) 2017.10.01
orange v1 - web  (0) 2017.10.01
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