본문 바로가기

DreamHack12

[DreamHack] 드림핵 Type c-j 올바른 id와 pw 값을 넣으면 flag값을 반환하는 문제이다. 소스코드 화면의 기본적인 출력을 담당하는 페이지며 로그인 기능을 구현하였다. 정해진 id와 pw값을 지정한 후 form을 통해 입력받은 데이터와 비교하여 맞을 경우 flag를 아닐 경우 에러를 출력한다. 풀이 function getRandStr($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[mt_r.. 2023. 11. 14.
[DreamHack] 드림핵 phpreg 풀이 사이트에 접속하게 되면 Nickname과 Password를 입력하는 input 박스를 확인할 수 있다. 해당 input 박스에 알맞은 값을 넣어야 다음 Step2로 넘어갈 수 있다. 해당 코드를 확인해 보자 if ($_SERVER["REQUEST_METHOD"] == "POST") { $input_name = $_POST["input1"] ? $_POST["input1"] : ""; $input_pw = $_POST["input2"] ? $_POST["input2"] : ""; 각 input 박스를 생성 후 POST로 입력을 받는다. if (preg_match("/[a-zA-Z]/", $input_pw)) { echo "alphabet in the pw :("; } Password에 a~z까지 대소.. 2023. 11. 14.
[DreamHack] 드림핵 Carve Party 해당 문제는 아래의 호박 그림을 10000번 클릭하면 flag값을 출력하는 문제이다. 풀이 해당 문제를 해결하는 방법은 두 가지가 있다. 1. 실제로 10000번 클릭 2. 코드 조작 먼저 1번의 방법부터 시도해 보자 1번 실제로 10000번을 클릭하는 것은 상당히 힘든 일이다. 그러므로 도구를 사용해 보자 파이썬을 통해 자동 클릭 도구를 만들어 줄것이다. 가장 간단히 만들 수 있는 클릭 자동화 도구 코드이다. pyautogui를 사용해 자동으로 클릭을 하게 하였다. 5번 라인에서 PAUSE의 속도를 최대한 적게 하여 빠르게 클릭이 가능하게 만들었다. 2번 코드 조작을 위해 해당 html의 구조를 확인하였다. html코드에서 동적으로 화면을 조작하는 것은 javascript의 역할이므로 script부분을.. 2023. 11. 13.
[Dream Hack] 드림핵 ex-reg-ex 해당 문제는 input 박스에 올바른 input이 들어왔을 경우 플래그값을 반환하는 문제이다. 소스 코드 풀이 위의 소스코드에서 중요하게 봐야 할 것은 이 부분이다. 해당 코드는 input_val변수에 form.get을 통해 input박스의 값을 가져와 저장하고 저장된 값이 미리 정해둔 정규표현식과 매치가 될 경우 flag를 리턴하는 코드이다. 해당 정규표현식의 의미는 이러하다. 정규 표현식 의미 dr 문자열 "dr"이 포함되어야 한다. \w{5,7} 문자,숫자,언더바('_')의 값이 5~7개 포함되어야 한다. e 문자열"e"가 포함되어야 한다. \d+ 숫자가 하나 이상 포함되어야 한다. am@ 문자열"am@"가 포함되어야 한다. [a-z]{3,7} a~z까지의 문자가 3~7개 포함되어야 한다. \. 문.. 2023. 11. 13.