WriteUp

    LOS - rubiya : Darkelf

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("darkelf"); highlight_file(__FILE__); ?>pw 에 Get 방식으로 입력을 받는데, prob _ . () or and 를 필터링한다. or and 를 필터링하는게 메인이겠다. 이후에 result 의 id 값이 admin이면 문제가풀린다.or 는 %7C%7Cand 는 %26%26으로 인코딩해주면 된다. ?pw='or id='admin'%23 을 넣어주고 싶으니,?pw='%7C%7C id=..

    LOS -rubiya : Wolfman

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?>pw를 Get 방식으로 받아주고, prob _ . () 공백을 필터링한다. 로그인 정보를 보여주고, 이때 로그인한게 admin이면 문제가 풀린다.공백을 필터링하는게 제일 중요한 문제인듯 하다. /**/ 을 이용해도 되고, %0a,%0b를 이용해도 된다. ?pw='or id='admin' %23 을 넣어주고 싶으니?pw='or%0aid='admi..

    LOS -rubiya : Wolfman

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?>pw를 Get 방식으로 받아주고, prob _ . () 공백을 필터링한다. 로그인 정보를 보여주고, 이때 로그인한게 admin이면 문제가 풀린다.공백을 필터링하는게 제일 중요한 문제인듯 하다. /**/ 을 이용해도 되고, %0a,%0b를 이용해도 된다. ?pw='or id='admin' %23 을 넣어주고 싶으니?pw='or%0aid='admi..

    prob 3 (150pt)

    prob 3 (150pt)

    일단 암호인듯 하다. 알파벳으로 구성된 것으로 보아, vigenere 아니면 shift cipher의 하나가 아닐까라는 생각이 들었다. shift 먼저 넣어보자. (ZODK: Lvyiwl: 13 Oeez Iajxw Qbnsy os Yjekrr) 여기에 13이라는 숫자가 호옥시 key 값이 아닐까라는 생각이 들었기 때문…. 개소리였고, vigenere cipher 였다. Kasiski test 이용해서 통계적으로 찾아줄수도 있지만, 시간이 많이 걸리니 decoding 사이트를 이용한다. https://www.dcode.fr/vigenere-cipher 찾아준 key는 GANGPSYNAM 이었다. MEETPSYYOUMAYNOTKNOWHISNAMEBUTACCORDINGTOTHEYOUTUBESTATSSOMEMI..

    prob 2 (100pt)

    prob 2 (100pt)

    일단 Title 하고 Description 은 인지하고 있자. 다운로드를 눌러보니 이상한 소리가 나는데, 여기서 감을 잡았고, 파일 이름에서 확신이 있었다. 모스부호네. 직접 듣고 01 로 표시해서 하는 방법도 있겠지만, 좀더 간편하게 해결해보자. https://morsecode.world/international/decoder/audio-decoder-adaptive.html 이 링크를 타고 가면, 모스부호를 듣고 출력해주는 사이트이다. 소리를 키고 하면 좀더 정확하게 나온다. 카페여서 소리를 끄고했더니,,, 정확하지는 않지만, 두번 실행해본 결과 AUTH KEY IS MORSEC0DE 라는 것을 알 수 있다. 다 대문자라 Hint 1 이 의미가 있나 싶다 Clear!

    prob 1 (100pt)

    prob 1 (100pt)

    End of Image 라는 Title 을 가지고 있다. 일단 이미지를 다운받아보자. PNG 파일인데 그냥 사진파일만으로는 딱히 얻어낼 것이 없으니 HxD에 넣어서 관찰합시다. End of Image 라고 있어서 파일 끝부분을 보니까, 다음과 같은 게 있다. 어떤 식으로든 답을 숨겨놨겠는데, 비교를 위해서 다른 png 파일을 하나 열어서 보자. END라는 말이 보이는데, End of Image를 표시해주는게 이런 의미인 것 같다. 문제의 사진에서는 END 라는 단어가 없다. 혹시 모르니 검색해보자(ctrl-F) 있다. ÿØÿáÒexif 이 부분도 어디서 많이 본 부분이다. 검색해보니 JPG 파일의 헤더 부분이다. 여기서 JPG 파일이 있다는 것을 알 수 있다. 헤더 부분부터 끝까지 한번 긁어서 다른 이..

    Challenge 18 (100pt)

    Challenge 18 (100pt)

    sql injection 문제다. 제출링크가 있고 get 방식으로 no라는 변수에 넘겨준다는 것을 확인할 수 있다. 밑에줄에는 result 도 출력해준다. 소스를 한번 보자. SQL INJECTION RESULT

    Challenge 26 (100pt)

    Challenge 26 (100pt)

    view-source Get['id'] 값이 admin이면 문제가 풀린다. 그대로 admin을 넣어주게 되면, if문의 preg_match에서 걸린다. $_GET['id'] 를 urlencode 해준다. urlencode 해준 값이 admin이 되어야 하기 때문에 admin=%61%64%6d%69%6e 이다. 이걸 한번 더 인코딩 해주기 때문에, %61%64%6d%69%6e를 변환해서 ?id=%2561%2564%256d%2569%256e 이렇게 넣어주면 된다. clear!

    Challenge 38 (100pt)

    Challenge 38 (100pt)

    POST 방식으로 입력받는 창이 존재한다. 어쩌라는 건지 감이 안온다. 소스페이지를 보자 LOG INJECTION 저기 admin 페이지의 존재를 주석에서 말해주고 있다. 일단 입력값으로 준다는 것 말고는 별다른게 없어보이니까 admin 페이지로 가보자. admin으로 로그인 해야 된다고 설명에 나와있다. 이전 페이지로 가서 admin을 입력해보자. -> you are not admin 이라는 문구가 뜬다. admin을 입력값으로 받지 못하는거 같은데, 입력값을 다음과 같이 주면 되겠당 아무값.....+개행+ip+admin 개행값을 고민하고 있는데, \n %0a 같은 문자들이 먹히지 않는다. 그래서 input 창의 태그값을 textarea 로 바꾼 뒤, 개행을 넣어서 입력해 주었다. 그리고 admin 페..

    LOS -rubiya : Orc

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello admin"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); highlight_file(__FILE__); ?>solve..