워게임 39

[XSS game] Level 3 문제풀이

레벨 3으로 넘어가보자. 이런 창이 뜬다. 문제를 읽어보니 alert에 대한 얘기를 하는데 레벌 1, 2와 달리 답을 입력하는 곳이 따로 없고 URL을 이용해서 문제를 풀어야 하는 것 같다. 이미지 1, 2, 3을 눌러보니 각각 흑백 컴퓨터 사진이 나오고 URL이 frame#1, #2, #3으로 바뀐다. 힌트를 살펴보자. 힌트 2에서는 window.loacation에 대해서 얘기하고 있고 힌트 4에서는 를 사용했을 때 작동하지 않는 이유를 설명하고 있다. 힌트에서 특별히 해결과정을 찾지는 못했다. 다음으로는 코드를 살펴보자. html을 살펴봤을 때 img 태그 뒤에 어떤 식으로 링크를 작성했는지 알 수 있다. 힌트 3에서도 html의 구성요소를 살펴보라고 얘기하고 있는 걸 알 수 있다. https://x..

문제풀이 2022.11.07

[XSS game] Level 1 & 2 문제풀이

1. Level 1 사이트에 접속하면 처음 이런 페이지가 뜬다. 레벨 1을 해결해야 다음 레벨로 넘어가는 것 같다. Mission Objective를 읽어보면 자바 스크립트를 이용하여 alert 창을 띄워야 하는 것 같다. 자바 스크립트를 이용하여 'swlug'라는 문구가 있는 alert 창을 띄우는 방법을 찾아보자. : alert 창을 띄우는 코드를 작성해 입력해주었다. 문제해결 2. Level 2 레벨 2로 넘어가보면 이런 화면이 뜬다. 똑같이 팝업창을 띄우라고 써있어서 alert 코드를 이용해보면 실행되지 않음을 알 수 있다. 힌트를 참고해봤을 때 alert를 이용한 script 태그는 먹히지 않고 onerror를 사용해야함을 알 수 있다. onerror란 img 태그가 유효하지 않을 때 대체할 수..

문제풀이 2022.11.07

[Lord of SQLInjection] goblin 문제풀이

처음 사이트를 들어가면 이런 화면이 나온다. query를 보면 id는 guest값으로 고정되어 있고 no는 값이 없는데 no의 값을 이용해서 문제를 풀어야 할 것 같다. 코드를 살펴보면 ' '' / i 문자가 입력되면 No Quotes ~_~라는 문구가 뜨며 해결이 되지 않는 것 같다. no 값에 1을 넣어주면 Hello guest라는 문구가 나온다. guest의 no 값이 1인 것 같다. 우리가 알아야 하는 건 guest가 아닌 admin 값인데 guest 값이 1이니까 admin 값은 0이지 않을까 추측해본다. or문을 이용하여 guest 값을 무시하고 admin 값을 넣어줘야 하는데 or문을 사용하려면 '(싱글쿼터)가 꼭 들어가야 한다. 그럼 or문은 아니라는거고... 다른 방법이 뭐가 있을까? 검..

문제풀이 2022.10.31

[Webhacking.kr] 27번 문제풀이

웹해킹 27번 문제에 접속하면 위와 같은 창이 뜬다. SQL인젝션 문제인 것 같다. view-source라는 버튼을 클릭하면 전체 코드가 뜬다. 코드를 한 번 살펴보자. 전체 코드 중 이 부분을 살펴보자 id값이 admin이면 문제가 풀리는 것 같다. 주석으로 admin's no = 2라고 써져있는 부분을 활용해보자. 2를 입력하면 query error라고 뜬다. admin의 no가 2라고 했으니 쿼리문을 조작해서 no값을 2로 만들어야 할 것 같다. no 뒤에 괄호가 열려있기 때문에 0) or no = 2를 넣어주어야 하는데 2 뒤의 부분을 --로 주석처리 해줌과 동시에 공백 또한 %09로 처리해준다. 주석처리해준 -- 뒷부분도 공백처리를 해주어야 오류가 발생하지 않는다. 0)%09or%09no%09l..

문제풀이 2022.10.10

[Webhacking.kr] 14번 문제풀이

14번 문제에 들어가보면 이런 창이 뜬다. 소스코드를 확인해본다. 자바스크립트를 알아보면 indexOf()에 이러한 기능이 있다. indexOf( ) : 문자열에서 원하는 문자열을 검색하는 내장함수로 위치값을 index로 반환 위 함수를 참고해서 소스코드를 번역해보면 .kr의 위치값을 ul에 저장하고 30을 곱하는데 그 값이 pw.input_pwd.value의 값과 같으면 문제가 풀리는 것 같다. 주소를 살펴보았을 때 .kr은 0부터 시작해서 앞에서부터 18번째 위치에 있다. 30을 곱해야 하니까 18*30을 해서 540을 체크란에 입력해준다. 문제가 풀린 걸 볼 수 있다.

문제풀이 2022.10.04

[Webhacking.kr] 15번 문제풀이

15번 문제에 들어가보면 Access_Denied라는 팝업창이 뜨면서 다른 사이트로 넘어가진다. 다른 사이트로 넘어가지니까 소스창을 볼 수도 없고 어떻게 해야하지 하다가 자바스크립트 안에 다른 사이트로 넘어가게 하는 동작이 들어가있을 것이라고 생각하고 자바스크립트를 차단해야겠다고 생각했다. 크롬 설정창에 들어가 자바스크립트를 허용하지 않음으로 바꿔주었다. 자바스크립트를 허용하지 않고 다시 15번 문제에 들어가보니 자바스크립트가 허용되지 않았다는 알림과 함께 다른 사이트로 넘어가지 않고 이러한 화면이 나온다. 소스코드를 확인해보니 a href 뒷부분이 답인 것 같다. 링크 뒤에 ?getFlag 부분을 입력하면 문제가 풀릴 것 같다. 링크 뒤에 ?getFlag 부분을 입력해주니 이렇게 페이지가 넘어가며 문제..

문제풀이 2022.10.03

[Webhacking.kr] 34번 문제풀이

34번 문제에 딱 들어가면 debug me라는 팝업창이 뜬다. 문제 해결을 위해 소스코드를 봐주면 이렇게 복잡한 소스코드가 뜬다. 알아보는데 어려움이 있어서 코드를 보기좋게 정렬하기 위해 https://beautifier.io/ 라는 사이트에 들어가 코드를 예쁘게 정렬해준다. debug me라는 문구가 팝업창으로 떴으니 코드에서 팝업창을 띄우게 하기 위해 사용하는 alert() 부분을 찾아준다. alert() 뒷부분이 debug me이지 않을까 해서 콘솔창에다 확인해보니 debug me가 맞았다. alert() 부분을 else문으로 처리했으니 if문이 성립한다면 debug me 창이 뜨지 않고 문제가 해결되지 않을까 하는 생각이 들어서 if문 부분을 콘솔창에 입력해주었다. 그랬더니 성공했다는 팝업창이 뜨..

문제풀이 2022.10.03

[Webhacking.kr] 42번 문제풀이

문제를 풀기위해 아래 주소로 접속해준다. https://webhacking.kr/chall.php Webhacking.kr webhacking.kr 42번 문제를 클릭하면 아래 사진 같은 창이 뜬다. test 파일은 다운로드가 되지만 read me 파일은 다운로드가 되지 않는다. read me 파일을 다운로드 가능하게 만들어야 하는 것 같다. 우선 test 파일을 다운받아주면 아래 같은 텍스트 파일이 뜬다. 딱히 특별한 건 없어보인다. 문제 페이지의 소스 코드를 살펴보자. test칸은 download이라는 코드가 있는데 read me칸은 download이라는 java 코드가 있다. 인코딩/디코딩을 위해 아래 사이트 이용 https://www.convertstring.com/ko/EncodeDecode/B..

문제풀이 2022.09.26

[Dreamhack] Cookie 문제풀이

문제를 풀기위해 아래 주소로 접속해준다. https://dreamhack.io/wargame/challenges/6/ cookie 쿠키로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Introduction of Webhacking dreamhack.io 아래 사진과 같은 문제가 나온다. 접속 정보의 주소로 접속해준다. 주소로 접속해 로그인 버튼을 누르면 아래와 같은 창이 나온다. 문제 파일을 다운로드해 코드를 확인해보면 guest 계정 로그인과 admin 계정 로그인 정보가 나온다. admin 계정으로 접속하려면 FLAG를 알아내야한다. guest 계정으로 로그인해보면 admin 계정이 아니라는 말이 뜬다. 쿠키를..

문제풀이 2022.09.26