Web

    Level 0

    접속하면 다음과 같이 뜹니다. 하지만 아무 것도 없습니다. 그래서 Ctrl+U를 통해서 소스를 봤습니다. 그랬더니 이렇게 주석으로 처리되어 있었습니다. gtVrDuiDfck831PqWsLEZy5gyDz1clto

    cobolt

    이번에도 GET으로 값을 전달해주는군요. 이전 문제와 다른 점이라고 한다면 역시 pw 부분에 들어가 있는 md5() 함수일 것입니다. md5는 hash 함수의 일종으로 매우 취약한 것으로 알려져 있습니다. md5() 라는 함수는 php에서 제공하는 함수지만 취약점이 알려진 경우는 md5('어떤 문자열', True) 경우뿐입니다. 그래서 저는 아예 pw 부분을 검사하지 않게 만들고 싶었죠. 그래서 주석문을 사용해 아예 무시해주도록 했습니다. 물론 밑에 id 조건에 의해 id는 admin 으로 전달해주고요. 더보기 * 다음에 주의하며 주석문을 써봅시다. (둘 다 가능합니다.) 통과!!

    gremlin

    처음 들어가서 본 문제는 다음과 같이 php 코드가 주어졌습니다. 일단 정답을 전달하는 방법은 GET이군요. ?id=(answer)&pw=(answer) 이런 식으로 전달해주면 되겠습니다. 이번 문제는 간단하게 '연산자 우선순위를 이용해서 풀어주면 됩니다. and 가 or 보다 우선순위가 높으니 and를 검사하고 or을 연산하게 될 것입니다. 그래서 ?id=wow&pw=wow' or '1'='1 을 해주게 되면 select id from prob_gremlin where id='wow' and pw='wow' or '1'=1' 이렇게 전달됨으로써 id와 pw 부분이 틀려서 0이 되더라도 뒤쪽 or이 참이기 때문에 최종적으로 조건문은 참이 되게 됩니다. PASS!

    Intermediate Level 2

    이전 문제와는 반대로 POST method를 사용해서 보내라고 하는군요. POST method는 GET method와는 달리 url로 데이터를 전달하지 않습니다. 그러므로 어쩔 수 없이 코딩을 해야겠군요. Python으로 작성한 코드입니다. 이렇게 하고 python post.py (파이썬 파일 이름을 post.py로 했습니다.)로 실행하면 성공!

    Intermediate Level 1

    GET method로 패스워드를 보내라고 하는군요. GET method란 url의 파라미터로 ?key1=value1&key2=value2&...&... 이렇게 사용합니다. 한번 바로 보내보도록 하죠. PASS!

    Basic+ Level 3

    이번 문제는 Adobe Flash의 동작 방식의 취약점을 알아볼 수 있는 문제이다. 이 문제의 문제점은... Flash의 지원이 끊김과 동시에 여러 방면으로 온라인 상에서의 지원도 많이 끊겨서 도움을 받을 수 있는 사이트들이 많이 없어졌다는 것입니다. 그래서 어쩔 수 없이 이전 포스팅된 글에서 소스에 대한 정보들만 얻고 나왔습니다ㅠ 이렇게 생긴 간단한 코드더군요. POST 방식으로 해당 URL에 score를 보내는 모양입니다. 그래서 간단하게 HTML 스크립트를 짜서 해결해보았습니다. 그리고 열어서 보이는 버튼을 클릭하면 해결! 다음으로 가보죠. [여담] 보안 강화로 인해 Proxy를 이용한 풀이는 어려워졌습니다. 금방 감지하여 페이지 전송을 중단하게 되어 http 같은 보안성이 약한 프로토콜을 사용할 ..

    Basic+ Level 2

    시작하자마자 User agent가 권한이 있지 않다면서 거부당했습니다. 그러면서 secure_user_agent 만이 허가된다고 하네요. 이 문제는 쉽습니다. Header에 전달될 때 User agent를 저희가 원하는 걸로 보내면 됩니다. User agent를 변경하기 위한 여러 좋은 방법들 가운데 저는 Chrome 확장 프로그램을 사용해서 해결해보도록 하겠습니다. 사용방법은 이 링크에서 보시면 됩니다. 먼저 Chrome 그룹에다가 추가합니다. 그리고 User agent를 'secure_user_agent'로 설정해줍니다. 나머지는 맘대로 설정해주셔도 상관없습니다. 두 번째로 우리가 풀고 있는 Domain에 대해서는 저희가 만든 User agent를 쓸 수 있도록 설정해주면 됩니다. 여전히 옵션 창 안..

    Basic+ Level 1

    b1.txt 파일을 다운받아서 숨겨진 메시지를 찾아보라고 합니다. 일단 열어봤습니다. 스크롤 보이시나요? 엄청 긴 문자열이 존재하고 알 수 없는 표시밖에 존재하지 않습니다. 그래서 이걸 Hex editor로 열어봤습니다. 처음 부분에 BM6~~ 뭐라뭐라 하고 존재합니다. 그래서 혹시 이미지 파일의 Header가 아닐까 싶어 구글링을 해봤습니다. 역시나. 이건 "Bitmap" 파일이었습니다. 바로 확장자를 .bmp로 바꿔주고 열어봤습니다. GOTCHA! 다음으로 넘어갑시다.

    Main Level 10

    이번에도 아무것도 없군요. 그래서 Ctrl + U로 소스를 봤더니 다음과 같은 힌트가 있었습니다. 이 문제 진짜 어려웠습니다. 유추할 수 있는 어떤 경로로 넣어주든지 간에 안 떠서 조금 시간이 걸린 문제였습니다... 그리고 생각난 것이 level 8에서 사용했던 경로가 떠올랐습니다. 바로 robots.txt로 접속해서 해당 링크 뒤에다가 붙여서 접속해봤습니다. 그랬더니 다음과 같은 암호가 나타났습니다. ':'을 기준으로 구분되고 각각 암호화된 ID, PW라는 것을 알 수 있었습니다. 그리고 하나의 길이가 64인걸 알 수 있고 또 하나의 bit는 4-bit이므로 하나의 길이는 256-bit라는 것을 알 수 있습니다. 그럼 여기서 생각나는 하나의 암호화 기법은 바로 해쉬 중 하나인 SHA-256입니다. 이걸..