CTF | wargame 130

XCZ.kr / Prob21 (웹, phph소스분석)

prob21 - PHP Obfuscation Crackphp 소스코드를 보고 분석을 해야하는 문제이다.엄청나게 복잡하다. 헥스값을 되어 있으나 그냥 웹서버에 올려놓으면 자동으로 변환이 되나보다.일일히 변환할 수 없기 때문에 파이썬에 넣어서 소스를 풀어냈다.>>> data='''암호화된소스코드'''>>> data ... 결과물여전히 지저분하다. 따로 정리해주는 툴을 찾아보았지만 딱히 없어서 그냥 하나씩 직접 정리하였다. 아직도 지저분하다. 보면 똑같은 변수 ${"a"} 임에도 보기 불편하게 그냥 여러번 선언한 경우가 있다. 이를 다시 정리하면 아래와 같다. 꽤 깔끔해졌다. 소스의 행동방식은 간단하다.GET으로 key를 받고 key에 해당하는 값이 맞으면 정답을 출력해준다.GET으로 넘겨야할 인자 key의 ..

CTF | wargame 2016.07.22

XCZ.kr / Prob18 (웹, php소스분석)

prob18 - Web Basic 간단하다. 소스코드를 보고 분석을 하면된다. 주 코드 부분은 위와 같고 좀 더 보기 쉽게 하면 이것과 같다. 문제는 간단하다. 해당 페이지에 들어갈때 쿠키값'c'와 GET으로 보내는 값 'g', POST로 보내는 값 'p'가 비교하는 값이 맞으면 된다. 비교값은 이것이다. result1은 get값+cookie값이고 result2는 post값이다. get이나 cookie는 그냥 웹브라우저를 이용하면 되지만 post를 보낼 방법이 없었다. 마지막 비교에는 post값이 없어도 되지만 첫 비교에서는 세 값이 모두 있어야 한다. 그래서 파이썬을 이용하기로 했다. 최종적으로 나온 소스코드. Post로 값을 넣고 쿠키값을 넣어야 하는데 서버에서 로그인이 되어있지 않으면 문제를 풀 수..

CTF | wargame 2016.07.22

XCZ.kr / Prob15 (암호학, 돼지우리)

Prob 15암호학에 머리가 좋아진건지 아니면 머리가 나빠서 이제서야 풀게 된건지...그림이 한장 있고 Tic-Tac-Toe!라는 제목이 붙어있다.암호학이니 Tic-Tac-Toe!로 검색을 하면이런 그림들이 나온다. 프리메이슨으로 알고 있었는데 돼지우리(PigPen)등의 여러 이름을 가진것 같다. 검색을 하다 보니http://www.snipview.com/q/Pigpen_cipher PigPen으로 나온 코드표를 보던 중 점 두개를 보게 되었는데 제시된 그림과는 매치가 되지 않았다.그러던 중에 일단 답이 있다면 알려주는 신호가 있지 않을까 싶어서시작이 password is 또는 key is로 시작한다는 가정 하에 맞추어 보니 key is 가 맞았다. 위에 나온 pigpen표를 'key is'로 시작하도록..

CTF | wargame 2016.07.22

sCTF16 - Vertinet (png픽셀 추출 & 연산, 소켓연결)

문제는 problem1.2016q1.sctf.io:50000에 연결을 하여 문제를 푸는 것이다.이 문제는 앞서 나왔던 verticode를 풀어야만이 풀 수 있는 문제이다. 웹으로 연결을 하였을 경우의 화면이다. 앞서 나왔던 verticode와 같은 그림파일 하나가 주어지고 INCORRECT라는 문구가 나온다.문제를 풀기 위해서는 웹브라우저로 들어가서는 안되고 소켓으로 연결을 해야 된다.소켓으로 연결을 하면 먼저 그림파일을 주고 그에 해당하는 응답을 다시 보내면 답이 온다.그림에 해당하는 문자열이 맞을 경우 다음 그림파일을 주는데 200개의 그림을 전송하고 그에 응답이 맞으면 답이 온다. 문제를 풀기 위해 작성한 소스기존 verticode에서 사용한 rgb,zo테이블과 decode함수는 동일하다.단,. 소..

CTF | wargame 2016.04.14

sCTF16 - Verticode (png픽셀 추출 & 연산)

문제가 길다. 하지만 읽어보면 그다지 어렵지 않다.파일은 3개가 주어지는데 1,2번은 예시 파일이고 3번째 파일이 문제의 파일이다.1번 예시를 보면 이 사진이 주어지는데 검은색 부분은 1이고 흰색 부분은 0이다. 이를 토대로 보면1000001이 된다. 이 값은 아스키값으로 'A'가 된다.이런식으로 사진에서 검은색과 흰색을 판별하여 문자열을 추출하면 된다. 2번 예시를 보면 약간의 조건이 붙었다.1000001이지만 앞서 나온 색이 특정 색일 경우에 값을 더해주어야 한다. 조건은 이와 같다. 여기서는 1000001 이므로 일단 'A'를 알 수 있고 여기에 보라색이므로 +1을 해주어 결과적으로 'B'가 된다. 문제의 코드를 보면 이게 엄청 길다.고로 사람이 직접 할 수는 없다는 것이다. 이번 문제를 풀기 위해..

CTF | wargame 2016.04.14

sCTF16 - Lengthy Lingo (문자열 길이 -> 아스키)

encrypted.dat 파일이 하나 주어진다. 힌트는 숫자는 일정한 패턴을 보이지 않는다.....라고 씌여있다. 문제파일을 메모장으로 읽어온 것이다. 보면 숫자가 나열되어 있고 ","(콤마)로 나뉘어 있다.콤마대로 나누어 줄을 정렬해 보면 이처럼 나온다. 보면 각 줄 숫자의 길이도 일정하지 않다.이 문제의 답은 각 줄 숫자들의 총 길이이다.즉, 1번째 숫자들의 총길이가 65라고 한다면 문자 'A'가 되는 것이다. 최종적으로 보면 위와 같다.\r\n으로 다시 묶은 이유는 제일 마지막에 \r\n이 붙어 그냥 지워주기 위함이다. sctf{101_th3_numb3r5_d1dn'7_3v3n_m4tt3r}

CTF | wargame 2016.04.14