분류 전체보기

    LOS -rubiya : Skeleton

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("skeleton"); highlight_file(__FILE__); ?>pw 를 Get 방식으로 받아주고, prob _ . () 를 필터링한다.그리고 id 가 admin이면 문제가 풀린다. 그런데, query 뒷부분에, and 1=0 이라는 false 구문이 들어있다. 해결해야 할 문제다.and 1=0은 한줄 주석으로 처리해주면 된다. # 을 이용하자. # 뒤의 모든 것들은 주석으로 처리된다.넣어줄때 url-encoding 하는거 잊지말자.?pw=' or id='admin'..

    LOS -rubiya : Vampire

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("vampire"); highlight_file(__FILE__); ?>이전 문제들이랑 다르게 strtolower 라는 함수가 등장한다.직관적으로 읽어봤을때 string to lower 를 의미하는것 같다. 확실히 하기 위해서 구글링해보자. -> 맞다.Get으로 받아준 id 값을 소문자로 치환해주고, admin이라는 값을 NULL로 바꿔준다.그리고 id 가 admin이면 문제가 풀린다. 조금만 고민해보면 쉽게 문제를 풀 수 있다. admin이라는 값은 초기 입력에서 한번만 삭제..

    LOS -rubiya : Troll

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("troll"); highlight_file(__FILE__);?>id 에 Get 방식으로 입력을 받아주고, 필터링한다.\를 필터링하고, admin을 필터링하는데, 눈치가 빠르다면 항상 붙던 \i 라는 게 없다는것을 알 수 있다.기본적으로 preg_match 방식은 대소문자를 구분한다. \i 옵션을 넣어주게 된다면 대소문자를 구분하지 않게 된다는 것을 알고 가자.result 의 id 가 admin이면 문제가 풀리게 된다.위에 작성해놓은 것처럼 대소문자가 섞여있다면 문제를 pass 할..

    LOS - rubiya : Orge

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

    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 을 넣어주고 싶으니,..

    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=..

    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=..

    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 파일이 있다는 것을 알 수 있다. 헤더 부분부터 끝까지 한번 긁어서 다른 이..