write-up(web)

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

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

    27번 문제 화면입니다. 27번 문제 소스코드입니다. 필터링되는 문자는 #,select,(,공백,limit,=,0x 입니다. i 옵션으로 대소문자를 구분하지 않습니다. 쿼리를 입력하게 되면 no = ( query )의 형태로 괄호 안에 감싸져서 괄호 안이 true가 되면 결과로 무조건 guest가 나오게 됩니다. 따라서 괄호를 상쇄시켜줄 필요가 있습니다. 쿼리는 다음과 같이 짤 수 있습니다. no=(99) or id like 'admin' and no>1 and no

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

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

    문제 화면입니다. 문제의 소스 코드입니다. 주석에 적혀있는대로 admin.php로 가줍니다. 로그 뷰어입니다. 삽질한 입력 값들을 보여줍니다.. 로그 값으로 admin이 출력되게 만들라는 힌트가 적혀 있습니다. (You must logged as "admin") log injection에 대한 글은 아래 글을 참고하시면 됩니다. https://www.hahwul.com/cullinan/log-injection/ Log Injection 🔍 Introduction Log Injection은 사용자 입력이 로그에 포함되는 경우 공격자가 이를 이용해 로그 항목을 위조하거나 악성 내용을 로그에 삽입할 수 있습니다. 🗡 Offensive techniques Detect WhiteBox 소스코 www.hahwul...

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

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

    문제의 첫 화면입니다. 첫 번째 문제의 소스 코드입니다. get 방식으로 get 변수에 hehe라는 값을 넣어주면 다음 문제로 넘어가는 구조입니다. url로 값을 전달하니 다음 문제가 열립니다. 두 번째 문제 화면입니다. 두 번째 문제 소스코드입니다. post 방식으로 post에 hehe, post2에 hehe2 값을 넣어 전달해주면 다음 단계로 갈 수 있습니다. 파이썬으로 코드를 작성합니다. requests 모듈에 관한 설명은 아래 글을 참고해주세요. https://security-nanglam.tistory.com/77 [python] requests 모듈 정리 [requests] requests 설치 - cmd[관리자 권한] 에서 pip install requests라고 입력해서 설치를 하면 된다...

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

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

    문제 화면입니다. 페이지를 로드하면 플래그 값이 한 문자씩 빠르게 보여주고 다 보여주고 나면 ?를 출력하는 모습입니다. 문제의 소스코드입니다. run() 메서드에 있는 내용을 찾아보니 ActiveX에 관련된 내용인 것 같습니다. cross-browser(브라우저가 달라도 실행 가능하게 코딩하는 방식)를 고려하면서 나오게 된 코딩 방식이라는 듯 합니다 브라우저의 ActiveX 지원여부에 따라 ActiveXObject객체나 native javascript 객체가 할당되는 구조입니다. 객체는 어차피 만들어질 것이고,, 어쨋든 중요한 건 answer() 메서드의 구조입니다. 해당 객체의 open(), send() 메서드를 통해 플래그가 있는 페이지를 요청해 플래그 값을 가져오는 구조임을 알 수 있습니다. 따라서..

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

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

    문제의 소스 코드입니다. id가 admin이면 풀리는 문제입니다. preg_match 함수를 통해 admin을 필터링하고 urldecode처리를 해준 값이 admin이어야 합니다. 브라우저의 url에서 문자를 표현하기 위해 퍼센트 인코딩을 사용합니다. 퍼센트 인코딩은 %뒤에 해당 문자의 16진수 값을 붙여서 사용합니다. admin의 16진수 아스키 값인 61,64,6D,69,6E를 사용하면 됩니다. 이때, urldecode 함수가 있으므로 퍼센트 인코딩한 값을 한 번 더 인코딩해줍니다. 해당 값을 url로 전송해주면 문제가 풀립니다. url은 ascii 코드로만 이루어집니다. 따라서 아스키 값 이외의 값들을 전달하기 위해 퍼센트 인코딩을 사용합니다.