Wargame/Webhacking.kr

    [Webhacking.kr] 27번 풀이 (150p)

    문제 종류 - Web 사용한 툴 - 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. view-source를 눌러 코드를 확인하자. 대충 코드만 읽어보면 18번 문제와 매우 유사하다. SQL Query문에서 no=2를 유도하면 되는 듯하다. 다른점이 있다면, no=($_GET['no']) 부분이다. 괄호가 있기 때문에 or만 넘겨줘서는 Injection을 실행할 수 없다. 그러나 주석을 이용한다면 어떨까? 이렇게 값을 넘겨보자. ?no=123);%00 (;%00 = 주석) 해당 Query문을 실행하면, no=(123);%00 이기 때문에, 주석뒤에 새로운 명령문을 삽입할 수 있게 된다. 이 방식을 이용해 Query문을 작성해봤다. ?no=123)%09or%09no%09like%092;%00 -> ?no..

    [Webhacking.kr] 43번 풀이 (250p)

    문제 종류 - Web 사용한 툴 - Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. 웹쉘을 이용해 /flag 내용을 보면 문제가 풀리는 듯하다. 먼저 아무 파일이나 넣고 File Upload 취약점이 있는지 봐보자. 올린 파일의 경로가 그대로 나타난다. php 파일을 하나 만들어 /flag 내용을 열람(?)해보자. 올렸더니 다음과 같은 에러 메시지가 출력된다. 취약점을 방지하기 위해 .php를 포함한 다양한 확장자를 검사하는 모양이다. 확장자를 .php로 바꿔보고 다시 시도해보자. -> 에러는 발생하지 않지만, php 파일은 실행되지 않는다. Burp Suite를 이용해 우회해보자. 아까 qr.png 파일은 잘 업로드되었으니..

    [Webhacking.kr] 39번 풀이 (100p)

    문제 종류 - Web 사용한 툴 - Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. view-source를 눌러 코드를 확인하자. \\ -> NULL ' -> '' (싱글 쿼터 2개) POST->id 값은 0번에서 15개만 뽑아 사용한다. 밑에 SQL Query문을 자세히 봐보면 id='에 싱글 쿼터 하나가 안 닫혀있다. 지금까지 찾은 특징들을 이용해 Injection을 시도해보자. 15개 까지만 사용하니까 1[공 백]' 이렇게 넣어 뒤에 15번째에 있는 싱글 쿼터를 사용하면 될 듯 하다.

    [Webhacking.kr] 23번 풀이 (200p)

    문제 종류 - Web 사용한 툴 - Burp Suite Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. 을 inject 해보라고 한다. 그래서 console을 이용해봤지만 이게 아닌 것 같다 ㅋㅋㅋ.. 말 그대로 을 출력하면 해결되는 문제인 듯하다. 먼저 replace 루틴을 살펴보기 위해 다음 문자들을 넣어봤다. 정상적으로 출력이 되는 모습이다. s c r i p t a l e r t 이렇게 하나씩 끊으면 잘 출력이 되지만 2개 이상 붙어있을 경우 no hack이라는 오류가 뜬다. -> 알고보니 영문자 2개 이상이 붙어있을 경우와 #&등 특정 문자에서 오류가 뜬다. 지금까지 webhacking.kr에서 난 이문제가 제일 오..

    [Webhacking.kr] 41번 풀이 (250p)

    문제 종류 - Web 사용한 툴 - Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. view-source를 눌러 코드를 확인하자. fiwrite, fopen, fclose에는 앞에 @가 적용되어 있어 에러 메시지를 출력하지 않는다. 아마 copy 함수에서 오류 메시지를 출력해 $upload_dir 값을 얻어야 할 듯하다. -> Ubuntu iso를 넣어봤는데 너무 큰 나머지 그냥 사이트가 refresh 되었다. qqqqqqqqqq...와 같이 100글자가 넘는 파일을 보내도 Done~이라고 하고 무시해버린다. 그렇다면 Burp Suite를 사용해 저기 필터링 처리 되어있는 문자 '>' 를 넣어보도록 하겠다. 아쉽게도(?) 저..

    [Webhacking.kr] 20번 풀이 (200p)

    문제 종류 - Web 사용한 툴 - Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. 개발자 도구를 이용해 코드를 분석해보자. nickname, comment 값이 있어야 하고, captcha 값이 주어진 값과 같아야 한다. 솔직히 피지컬로 풀 수 없을 거라고 생각해서 1번 시도해봤는데 그냥 풀리길래 당황했다..; 아마 단순한 Javascript 수정 문제라고 생각한다.

    [Webhacking.kr] 18번 풀이 (100p)

    문제 종류 - Web 사용한 툴 - Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. view-source를 눌러 코드를 확인하자. preg_match 부분에서 특정 문자들을 걸러내고, no hack을 출력한다. $result는 DB에서 가져온 값이 넣어진다. $result와 admin이 같다면 문제가 해결되는 듯하다. 옆에 주석으로 admin's no = 2라고 적혀있다. 한번 쿼리를 날려보자. 예상했던 대로 아무 반응도 없다. 문자열을 검사하는 루틴에서 OR가 없으니 OR을 이용해 출력해보겠다. %00이 안먹는 이유로 CR을 사용해 URL에 ?no=111%0dor%0dno=2 값을 넘겨준다.

    [Webhacking.kr] 42번 풀이 (200p)

    문제 종류 - Web 사용한 툴 - Flag, Hint, 정답 형식 flag: ? hint: X 정답 형식: ? 풀이 문제에 들어가면 다음과 같은 화면이 나타난다. test.txt에 내용은 다음과 같다. 이번엔 flag.docx를 열어보려고 했으나 다음과 같은 알림창이 나타났다. 코드를 보아하니 flag.docx는 하드 코딩이 되어있던 상태였다. test.txt 부분은 base64 encode가 되어있는 상태였다. 그럼 flag.docx도 base64 encode한 값을 넘겨주면 되지 않을까? 음.. 맞았네요.