solveme (6) 썸네일형 리스트형 SolveMe URL filtering 풀이 오늘은 URL filtering 문제를 풀어보자. 이 문제에서는 다음과 같은 코드를 주었다. 우리는 GET 메소드를 통해 do_you_want_flag로 yes라는 값을 보내야 하기에 /?do_you_want_flag=yes 라는 페이로드와 함께 올려야 하는데 하지만 필터에 의해 다음과 같이 필터된다.하지만, 먼저 필터에 들어가기 전에 다음과 같은 코드를 확인할 수 있을것이다.$url_query = parse_url($url, PHP_URL_QUERY); 이 함수(parse_url)에는 취약점이 있다.이 취약점에 대한 자세한 정보는 http://skysec.top/2017/12/15/parse-url%E5%87%BD%E6%95%B0%E5%B0%8F%E8%AE%B0/ 에서 확인할 수 있다. 따라서 /를 하.. SolveMe Hard login 풀이 오늘은 Hard login 문제를 풀어보자. 주어진 링크에 들어가니 PHP 코드가 나왔다.그 코드는 제공된 조건을 만족하면 이 디렉토리로 넘겨주는 코드였다. 근데 잠깐만요.... 이 디렉토리로 넘겨준다는건 인덱스로 넘겨준다는 뜻인데? 그래서 login.php 라는 파일명을 삭제해줬더니 다시 login.php로 넘어왔다.따라서 curl을 통해 확인해보자. 역시 예상대로 답이 나왔다. SolveMe Hard login 클리어! SolveMe Winter sleep 풀이 - 긴 시간 오늘은 Winter sleep 문제를 풀어보자. 링크에 들어가니 다음과 같은 코드가 나왔다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 SolveMe Bad compare 풀이 - Hex SolveMe Bad compare 풀이[ Hex ]오늘은 Bad compare 문제를 풀어보자. 제공해준 링크에 들어가니 다음과 같은 PHP 코드를 하나 준다. SolveMe Thirty six 풀이 - 알파뉴메릭 SolveMe Thirty six 풀이[ 알파뉴메릭 ]오늘은 Thirty six문제를 풀어봅시다. 59714216653669596140166323768414581512983971077273551022216라는 값과 알파뉴메릭이라는 단서를 줬네요.우리의 친구 구글에게 36자에 대해 질문하니 Base36이라는 결과를 던져줍니다. https://www.dcode.fr/base-36-cipher이라는 사이트를 찾았지만, 이 사이트는 모두 대문자로 출력해주어 플래그 인증이 되지 않았습니다.그래서 찾아보던 도중 Base36복호화를 해주는 파이썬 라이브러리( https://pypi.org/project/base36/ )를 찾고 실행하였더니 플래그가 나왔습니다. SolveMe Thirty six 클리어! solveme Warm up 풀이 - 뒤집기 SolveMe Warm up 풀이[ 뒤집기 ]SolveMe의 Warm up 문제를 풀어보자. 제공해준 링크로 들어가니 index.php의 코드와 base64로 인코딩된 구문 하나를 준다. echo base64_encode(hex2bin(strrev(bin2hex($flag)))), ''; 위 구문이 저 base64로 인코딩된 문자열을 출력해주는 코드인데, 뭔가 뒤집으면 될것 같다.다른 언어로 작성해도 되겠지만, 내 주언어인 PHP를 이용해보자. echo hex2bin(strrev(bin2hex(base64_decode("1wMDEyY2Ud2YTY0M2NgMTEyZDQyMjAzNWczYjZgMWI4NTt3YWxmY=")))); 완전히 거꾸로 작동하게 하기 위해 코드를 위와 같이 수정하고PHP를 실행해주는 .. 이전 1 다음