전체 글

전체 글

    [Webhacking.kr] Challenge old-03 write-up

    [Webhacking.kr] Challenge old-03 write-up

    문제의 첫 화면입니다. 간단한 노노그램 문제가 있습니다. 해당 문제를 풀면 이런 창으로 넘어갑니다. log를 남기기 위한 이름(ssongk)을 입력해주면 이렇게 결과 창이 나오게 됩니다. 이전 폼 데이터를 전송하는 부분 외에는 서버와 통신할 방법이 없어 보이므로 이전 페이지로 가줍니다. 이전 페이지의 소스 코드 중 수상하게 hidden으로 숨겨져 있는 name이 answer인 녀석을 이용해보겠습니다. 먼저 싱글 쿼터를 전송해보니 이렇게 쿼리 에러가 뜹니다. 여기서 무조건 참인 조건식을 넣어주게 되면 alert 창과 함께 문제가 마무리 됩니다. 저에겐 생각보다 많이 어려운 문제였고요 1. 문제를 보고 sql injection 공격임을 파악하는 것 2. name이 id인 녀석을 공란으로 두게 되면 제대로 된..

    [Webhacking.kr] Challenge old-06 write-up

    [Webhacking.kr] Challenge old-06 write-up

    처음 문제 페이지에 접속하면 ID : guest, PW : 123qwe로 출력 됩니다. view-source를 눌러 소스 코드를 확인합니다. 소스 코드를 분석해보면 base64로 20번 인코딩 한 후 문자를 바꿔주는 replace() 함수 변환을 거쳐서 쿠키 값(user, password)에 저장되고 이 값들의 바꾼 문자들을 다시 원래대로 돌려주고 base64로 20번 디코딩한 값을 화면에 출력해주고 id : admin, pw : nimda 일 때 solve(6) 함수를 호출시켜주는 문제임을 알 수 있습니다. base64 인코딩 및 replace() 함수를 적용한 쿠키 값을 직접 대입해서 요청하면 풀릴 것으로 예상됩니다. import base64 from dataclasses import replace ..

    [Webhacking.kr] Challenge old-11 write-up

    [Webhacking.kr] Challenge old-11 write-up

    문제 첫 화면입니다. view_source를 클릭해 소스 코드를 확인해보니 정규표현식을 다루는 문제입니다. $pat에 정규표현식이 저장되어 있으며 preg_match 함수를 통해 get방식으로 받은 변수 val과 비교해 참이면 solve()함수를 호출합니다. 정규표현식을 분석해보겠습니다. [1-3] -> 1~3 숫자 1개 [a-f]{5} -> a~f 문자 5개 . -> \n을 제외한 문자 1개(와일드카드 개념인듯 합니다) * -> 앞에 있는 문자가 0개 이상(여기서 앞에 있는 문자는 .임) $_SERVER[REMOTE_ADDR] -> 클라이언트(본인) ip \t -> 탭 공백(url에선 %09로 인코딩) 분석한 내용을 토대로 정규식을 짜보면 아래와 같습니다. 1aaaaa_255.255.255.255%09..

    [Webhacking.kr] Challenge old-10 write-up

    [Webhacking.kr] Challenge old-10 write-up

    문제 화면입니다. 개발자 도구로 소스 코드를 확인해보겠습니다. id가 hackme인 녀석을 발견했습니다. 이 친구를 공략하는 문제겠구나 라는 느낌을 가지고 분석해봅니다. 마우스 클릭 이벤트가 발생할 경우 left값이 1씩 증가하며 1600일 경우 하이퍼링크가 생성되는 함수를 가지고 있는 모습입니다. left 값을 1599로 해주고 클릭해줍니다. 자동으로 창이 넘어가면서 alert창이 뜨면서 문제가 마무리됩니다. (alert 창의 내용이 처음 풀었을 때와 다름)