전체 글

전체 글

    Bluetooth - Unknown file

    Bluetooth - Unknown file

    먼저 바이너리 파일을 어느 확장 프로그램으로 실행시킬지 고민을 좀 했다. "The only thing he knows is that it comes from a communication between a computer and a phone." 이걸 보고 WireShark에 넣어볼 생각을 했다. 넣으니 블루트스 통신 패킷으로 인식해서 열어진다. 이 부분에서 BD_ADDR 이 의미하는 것은 블루투스 주소이다. 0c:b3:19:b9:4f:c6 가 MAC 주소에 해당한다. 또 핸드폰 기기의 이름을 알아야하는데, Remote name이 그 이름이라고 한다. GT-S7390G 나는 그냥 패킷에서 찾았는데, WireShark 에서 따로 모아주는 기능이 있다. [Wireless] -> [Bluetooth Device..

    Twitter authentication

    Twitter authentication

    다시 authentication 문제다. 맥락이 비슷하니 한번 들여다보자. 패킷이 하나네. 이부분만 잘 보면 되겠다. 먼저 twitter authentication 방법부터 검색해보자. Authorization 부분을 BASE64로 디코딩 해보니 다음과 같은결과값이 나온다. usertest:password -> 밑에 credentials랑 같은 값이다. id 가 usertest고 pw 가 password 겠다. password를 입력했더니 문제가 풀렸다.

    ETHERNET - frame

    ETHERNET - frame

    00 05 73 a0 00 00 e0 69 95 d8 5a 13 86 dd 60 00 00 00 00 9b 06 40 26 07 53 00 00 60 2a bc 00 00 00 00 ba de c0 de 20 01 41 d0 00 02 42 33 00 00 00 00 00 00 00 04 96 74 00 50 bc ea 7d b8 00 c1 d7 03 80 18 00 e1 cf a0 00 00 01 01 08 0a 09 3e 69 b9 17 a1 7e d3 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 59 32 39 75 5a 6d 6b 36 5a 47..

    Telnet-authentication

    Telnet-authentication

    텔넷 통신은 한번에 string을 보내는 것이 아니라, 한 문자씩 보내고 확인하는 통신을 한다. 그렇기 때문에, password 가 드러나 있지는 않을 것이다. wireshark 에서는 이러한 Telnet 통신을 통합해서 보여주는 옵션이 있다. [statistics] -> [conversation] -> [TCP] -> [follow stream] 그러면 커맨드 창에서 입력한 내용들이 드러난다. Password : user

    FTP-authentication

    FTP-authentication

    패킷 열어서 일일히 뒤져봤다. PASS라는 단어가 있어서 입력해봤는데 답이였다. PASS 라는 형식으로 주어지는줄 알았다면 사진처럼 필터에 PASS 검색했을 것이다. PASS : cdts3500

    LOS -rubiya : Incubus

    "function(){return obj.id=='{$_GET['id']}'&&obj.pw=='{$_GET['pw']}';}"); echo "query : ".json_encode($query).""; $result = mongodb_fetch_array($db->prob_incubus->find($query)); if($result['id']) echo "Hello {$result['id']}"; $query = array("id" => "admin"); $result = mongodb_fetch_array($db->prob_incubus->find($query)); if($result['pw'] === $_GET['pw']) solve("incubus"); highlig..

    Prob 13 (150pt)

    Prob 13 (150pt)

    문제가 이렇게 시작한다 파일부터 다운받아보자. 네트워크 패킷 같은데 WireShark 이용해서 열어보도록 하자. http 만 추출해서 검색해 보았는데 이렇게 생긴 페이지를 하나 찾았다. 이게 메인일 것 같다. treasure1 부터 찾아보자. PNG 정보가 있는데 뭔가 좀 이상한가 보다. 패킷을 잘 살펴보니 png 헤더가 들어가 있다. treasure 123 이 하나의 사진을 분할해 놓은건가 보다. 2에는 별다른 정보는없는데 3에서 마지막 부분에 IEND 가 보여서 알았다. 모두 저장해서 treasure 1 2 3 을 하나로 합쳐주자. 그냥 HxD로 해서 복사 붙여넣기 했다. 이런 이미지가 나온다. Key = NET\oRK1sFun 인것 같으니 Description 에 있는 대로 실행해주자. 먼저 md5..

    LOS -rubiya : Siren

    LOS -rubiya : Siren

    저번보다는 mongodb에 익숙해진 것 같다. id pw를 받아주고, json_encode 해준다. 가져온 result 에서 id 값을 가져오고, Hello User를 출력해준다. 이때 id 값이 admin일때의 pw 값을 입력해주면 문제가 풀린다. pw의 길이를 찾아줘야 하고, 문자열 대조가 가능하다면 굳이 길이를 찾을 필요는 없다. pw의 길이별 문자를 찾아줘야 한다. 계속 검색해보다가 $regex라는 것을 찾았다. { : {$regex : /pattern/, $options : ''}} pattern ^ : 시작하는 문자. $ :끝나는 문자 . :개행을 제외한 모든 문자. option i m x s 한번 써먹어보자. ?id=admin&pw[$regex]=^a 이건 a로 시작하는지 보겠다는 뜻이다. ..