보안공부/Wargame.kr 풀이 (9) 썸네일형 리스트형 wargame.kr strcmp 풀이 strcmp 문제를 풀어봅시당Start를 누르고 문제에 들어가면 다음과 같이 form과 소스코드를 확인할 수 있는 view-source가 있습니다.view-source를 눌러 코드를 보니 POST로 받은 password가 사전 정의된 password와 같으면 플래그를 출력하지만, 이외의 경우에는 Wrong password..를 띄우고 끝납니다.근데... 마지막 값 비교가 ==로 매우 수상합니다.==를 활용하여 NULL과 0을 느슨한 비교할 경우에는 다음 표와 같이 True가 반환되게 됩니다.따라서 우리는 password 값을 읽을 수 없도록 해주면 되는데, 이를 위해서 name의 password 부분을 password[]로 변경하고 보내줍니다.그러면 다음과 같이 플래그가 출력되게 됩니다.Reference.. wargame.kr md5_compare 풀이 오늘은 md5_compare문제를 풀어보려고 한다. 문제에 들어가니 다음과 같은 폼이 기다리고 있다. view-source라고 되어있는 링크를 눌러 코드를 분석해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Colored by Color Scripter cs ctype_alpha는 값이 모두 알파벳일떄 true를 리턴해주는 함수이고, is_numeric은 값이 숫자일때 true를 리턴해주는 함수이다. 따라서 우리는 VALUE 1에는 알파벳을, VALUE 2에는 숫자를 입력해주어야 하고, 그 두 값의 md5의 해시가 같아야 플래그가 나온다는 사실을 알 수 있다. md5 해시를 어떻게 같게할 수 있을까? 불가능하다. 그런데 여기서.. wargame.kr tmitter 풀이 오늘은 wargame.kr에 있는 tmitter 문제를 풀어봅시다. 사이트에 들어가면 회원가입과 로그인 메뉴가 반겨줍니다. 이 상태에서는 뭘 해야할지 모르니 당연히 소스보기를 통해 주석을 확인합니다. 확인한 결과 admin으로 가입해야한다는 사실을 알게 되었습니다. 그래서 Sign Up 버튼을 눌러 들어가 admin / adminadmin 을 치고 가입하려고 하니 admin은 이미 존재한다며 가입을 거부했습니다. 하지만 문제 설명에서 주어진 SQL 구문인 id char(32) 을 준것으로보아 받은 값이 사이즈(길이)를 초과할 경우에는 초과된 부분을 제외한 값을 넣어주는 mysql의 특성을 이용하면 풀릴것 같은 느낌이 들었습니다. 따라서 32로 설정되어있던 maxlength값을 1 증가하여 33으로 설정해.. wargame.kr type confusion 풀이 - json WARGAME.KR type confusion 풀이[ json ]오늘은 wargame.kr의 type confusion 문제를 풀어보자. 문제에 들어가면 다음과 같이 입력창 하나와 이 페이지의 소스코드를 준다. 우선 제공해준 Backend단의 코드를 한번 분석해보자. 우선 0.5초(500000 마이크로초)를 대기한 후, lib.php를 적재한 후 json형태로 넘겨받은 데이터를 파싱해 $json에 저장한다.$key에 welcome to wargame.kr!_(랜덤 문자열)가 SHA1으로 암호화된 값을 대입해준다.파싱된 JSON($json)에서 key값이 $key의 값과 같으면 flag를 출력해주고, 다를 경우 false로 응답해주는 $ret를 json 형태로 작성하여 응답해준다. 그럼 이제이 사이트에 있.. wargame.kr WTF_CODE 풀이 - Space WARGAME.KR WTF_CODE 풀이[ Space ]오늘은 wargame.kr의 WTF_CODE 문제를 풀어보자. 이 문제를 처음보는 사람의 입장으로써는 충분히 공감된다. 파일을 다운받아 열면 진짜 아무것도 없으니.... 하지만 이 파일의 확장자는 ws, 스페이스와 탭으로 구성된 이 난해한 언어는WHITESPACE 이다. 따라서 인터넷에 검색하면 나오는 상용 컴파일러를 이용하면 키값을 도출할 수 있다.http://vii5ard.github.io/whitespace/ WARGAME.KR WTF_CODE 클리어! wargame.kr login filterling 풀이 - 대소문자 WARGAME.KR login filterling 풀이[ 대소문자 ]오늘은 wargame.kr의 login filterling 문제를 풀어보자. 들어가면 다음과 같이 로그인창이 하나 나온다. 친절하게도 이 페이지의 백엔드 코드를 제공해줬다. ID PW get source 그럼 이제 우리가 해야할것은?당연히 코드를 분석하는것이다. if(isset($_POST['id']) && isset($_POST['ps'])){ include("../lib.php"); # include for auth_code function. id값과 ps값이 POST를 통해 넘어오면 lib.php를 include해준다. mysql_connect("localhost","login_filtering","login_filtering_pz.. wargame.kr flee button 풀이 - Style WARGAME.KR flee button 풀이[ Style ]오늘은 wargame.kr의 flee button 문제를 풀어보자. 들어가면 다음과 같이 버튼이 도망치고 있다. 개발자 도구를 열어 확인해보니 유난히 값이 많이 바뀌는 style태그가 하나 있다.마우스를 움직여보며 확인해보니 저 값만 바뀐다. 고로 저 값을 비워주면 버튼의 움직임이 멈추고 누를 수 있는 상태로 변한다. 이제 저 버튼을 누르면 키값이 나온다. 이게 답이 된다. WARGAME.KR flee button 클리어! wargame.kr QR CODE PUZZLE 풀이 - GET WARGAME.KR QR CODE PUZZLE 풀이[ GET ]오늘은 wargame.kr의 QR CODE PUZZLE 문제를 풀어보자. 들어가면 다음과 같이 나온다. 이제 이 파일을 받아보자. Javascript를 해석해서 푸는 방법도 있지만, 이 문제또한 already got 문제처럼 개발자 도구의 Network 탭을 통해 해결이 가능하다.이렇게 깔끔히 원본 QR코드가 나오게 된다. 위와 같이 나온 QR을 열어보면 다음과 같이 링크가 하나 나온다. 해당 링크로 들어가면 다음과 같이 키값이 하나 나오는데, 이게 답이 된다. WARGAME.KR QR CODE PUZZLE 클리어! 이전 1 2 다음