728x90

 

문제를 들어가면 이런 글씨만 써져있다. 그럼 일단 소스를 보자.

 

 

 

어 소스를 보니 저기 밑쪽에 무슨 버튼이 있다고 한다. 저기 구석에 보니 버튼이 있다. 일단 소스도 봤으니 그냥 저것들 url뒤에 붙여보자.

 

 

그랬더니 이런 방대한 로그의 기록들이 나온다. 저기 위에 쿼리전송을 통해 필요한 값들을 찾으면 될것같다.

 

verb:get AND request:flag AND response:200

이렇게 입력해주면 될것같다. verb칸에는 get가 있으면 되고 request칸에는 flag가 들어가고 response에는 200이 뜨는 값을 AND로 묶어서 보내주자.

 

 

 

그랬더니 그거에 맞는 로그들이 나왔다. 그런데 보면 죄다 log.search.php가 앞에 붙어있는데 하나만 그게 없다. 그러면 쟤가 아마도 진짜 flag를 뱉어내는 아이일것이다. 한번 url에 쳐보자.

 

역시 flag를 뱉어냈다.

 

 

 

 

 

 

 

 

 

 

728x90

처음 받은 압축파일을 까보면 저렇게 두개가 들어가있다. 일단 파이썬부터 보자.

 

 

일단 열어봤는데 뭔가 오류가 있는것 같다. 그럼 한번 읽어보자.

 

 

데이터를 더해주는 모습이다.  이러면 코딩을 해서 풀어야 할것같다.

 

 

코드를 대충 설명하면 lock.iso파일을 읽어서 data에 넣고 아까 본 파이썬 코드에서 끝부분과 첫부분을 들고와서 코드에 넣어준다. 그리고 aa라는 zip파일로 index의 값을 넣어주는 코드이다.

 

 

 

 

역시 aa라는 압축파일안에 index가 있었다.

 

 

 

역시 답이 나왔다. 근데 이거보다 훨씬 더 쉽게 푸는 방법이 있었다. https://gospelofmark.ch/defcamp-ctf-qualification-2017-hex-warm-up.html 여기서 알게 된건데 binwalk라는것을 사용하는 것이다.

 

 

 

그냥 이렇게 쳐주기만 하면

 

 

이렇게 나오고 index.txt를 들어가주기만 하면

 

 

이렇게 답이 나오게 된다. 이 방법도 조금더 공부해봐야 할것같다.

 

 

 

 

 

 

 

 

 

 

 

'ctf write-up > D-CTF Quals 2017' 카테고리의 다른 글

Are you brave enough? - web  (0) 2017.10.02
Is nano good? - web  (0) 2017.10.02
Super Secure - web  (0) 2017.10.02
728x90

https://brave.dctf-quals-17.def.camp/ 처음 준 홈페이지 주소이다. 들어가보면

 

이라고만 나와있다. 그럼 index.php~를 들어가보기로 했다.

 

 

들어가보면 이렇게 소스코드들이 있다. 살펴보면 id=id라는 쿼리가 들어가야 될 것 같다. 그리고 널문자가 반환되어야지 되는데 거의 다 체크가 되어서 ;%00을 뒤에 써주면 될것같다. 그럼 url을 대충 짜보면 https://brave.dctf-quals-17.def.camp/index.php?id=id;%00이렇게 될것같다.

 

역시 풀리게 됬다. 근데 이쪽은 좀더 공부를 해야 정확히 알것같다.

'ctf write-up > D-CTF Quals 2017' 카테고리의 다른 글

HEX Warm Up - hex  (0) 2017.10.03
Is nano good? - web  (0) 2017.10.02
Super Secure - web  (0) 2017.10.02
728x90

https://junior2.dctf-quals-17.def.camp/?page=theme/admin/login이게 문제 주소이다.

 

 

처음 들어가면 또 로그인창이 뜬다. 역시 소스보기를 눌려봐야겠다.

 

 

딱히 별다른건 없고 그냥 나노로 뭔가 해놓았다고 한다. 그럼 index를 들어가보자. 물론 나노저걸 이용해서 말이다. https://junior2.dctf-quals-17.def.camp/index.php~이렇게 들어가보면 아무것도 안나온다. 화면상에는 말이다. 그럼 소스를 한번 보자.

 

 

역시 이건 뭐라고 나와있다. 루트권한으로 접근할만한것들은 거의 다 막아놓은 모습이다. 근데 타입을 정해준것같다. 그럼 대충 한번 짜보았다. /''도 막혀있기 때문에 두번 써서 짜보았다. https://junior2.dctf-quals-17.def.camp/?type=a&page=//etc//passwd이렇게 짜고 들어가보니

 

 

이런게 떠있었다. 이 많은것들중에서 flag값처럼 보이는 애가 있었다.

DCTF{7569fd: 4bf5b7ded2f:x:1002:1002::/home/4bf5b7ded2f: c48b33a7972:x:1003:1003::/home/c48b33a7972: c0752d13db4:x:1004:1004::/home/c0752d13db4: 32ff9930a99:x:1005:1005::/home/32ff9930a99: 6c567ea3321:x:1006:1006::/home/6c567ea3321: 13b} 이걸 짜잘한거 빼고 보면 DCTF{7569fd4bf5b7ded2fc48b33a7972c0752d13db432ff9930a996c567ea332113b} 이렇게 된다. flag값을 이렇게 구했다. 뭔가 굉장히 어려운듯하면서 쉬운 문제였다.

 

 

 

 

 

 

 

'ctf write-up > D-CTF Quals 2017' 카테고리의 다른 글

HEX Warm Up - hex  (0) 2017.10.03
Are you brave enough? - web  (0) 2017.10.02
Super Secure - web  (0) 2017.10.02
728x90

https://junior1.dctf-quals-17.def.camp/이게 이 문제의 주소이다.

 

 

들어가보면 그냥 평범한 로그인 창이 나온다. 일단 소스보기를 눌려보자.

 

 

username이랑 비밀번호를 그냥 줬다. 그러나 역시 이걸로는 로그인이 안된다.

 

 

소스를 더 보면 username칸은 email로 입력하게 되어있다. 그러나 우리에게 준 username은 email폼이 아니다. 그럼 개발자 모드에서 소스를 수정해야할것같다.

 

 

이렇게 html에서 type을 "anything"으로 바꿔준다음 로그인창에 아까 본 username과 비밀번호를 쳐봤다.

 

 

역시 그냥 저기서 끝나면 문제가 아니였다. 여기서 또 뭔가를 해야할것같다. 근데 저거 다 따르기도 귀찮으니 그냥 또 개발자모드로 들어가보자.

 

 

역시 그냥 flag값이 나왔다. 웹해킹의 기초정도라고 보면 될것같은 문제였다.

 

 

 

 

 

'ctf write-up > D-CTF Quals 2017' 카테고리의 다른 글

HEX Warm Up - hex  (0) 2017.10.03
Are you brave enough? - web  (0) 2017.10.02
Is nano good? - web  (0) 2017.10.02
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