[Webhacking.kr] Challenge 26
·
Wargame | CTF/Webhacking.kr
Challenge 26 26번 문제 : URL인코딩에 대한 문제이다.문제화면이다. 바로 페이지의 소스를 확인해 본다. 'admin'을 id 파라미터로 넘겨주어야 문제가 해결된다.admin을 입력해 본다. no!라는 메세지가 출력된다. admin을 url인코딩하여 입력해 본다. 이번에도 no!라는 메시지를 출력하였다.소스를 보면 URL디코딩을 하여 admin이 나와야하기 때문에 "%61%64%6d%69%6e" 이 값이 넘어가도록해야한다. %를 URL인코딩하여 입력하면 id값에 %61%64%6d%69%6e 값이 들어가고 이 값을 URL디코닝하면 admin이 나오기때문에 문제가 해결된다.
[Webhacking.kr] Challenge 25
·
Wargame | CTF/Webhacking.kr
Challenge 25 파일 목록들이 보인다. file파라미터로 hello를 넘겨주어 hello.txt를 열어서 파일내용을 보여주는 것 같다.password.php를 열면 flag를 알 수 있을 것 같다.file 파라미터를 임의의 값으로 바꾸면 hello로 변경하여 hello.txt을 열게 한다.hello를 입력하면 뒤의 확장자는 .txt로 자동적으로 합쳐 주기 때문에 password를 입력하더라고 password.txt로 입력되기 때문에 파일을 열 수 없다.이 때 널바이트를 이용하여 password.php(null)을 입력하여 password.php(null).txt까지만 인식하도록 바꿔준다.
[Webhacking.kr] Challenge 24
·
Wargame | CTF/Webhacking.kr
Challenge 24 24번 문제 : 쿠키와 문자열 필터링에 관한 문제접속한 ip주소와 브라우저 정보가 출력된다. index.phps로 해당 페이지의 소스를 확인해본다.$ip = $REMOTE_ADDR을 통해 ip주소를 가져온다.여기서 $REMOTE_ADDR은 값이 없을 때 $SERVER[REMOTE_ADDR] 을 통해 받는다.여기서 중요한 부분이 extract()함수를 통해 $_SERVER를 먼저 호출하고 그 다음 $_COOKIE를 가져오기 떄문에우리는 쿠키헤더에 REMOTE_ADDR이라는 쿠키를 만들면 그 값은 바로 $ip 변수에 저장된다고 볼 수 있다.그래서 우리는 쿠키를 이용하여 127.0.0.1를 입력하면 된다.하지만 str_replace를 통해 필터링 되고 있다.하지만 이는 한번만 필터링 하..
[Webhacking.kr] Challenge 23
·
Wargame | CTF/Webhacking.kr
Challenge 23 23번 문제 : XSS(Cross-Site-Scripting) 문제로 필터링되어 있는 문자열을 우회하여 스크립트를 삽입하여야 한다.문제 화면이다. 라는 스크립트를 입력하는 것이 목표이다.를 그대로 입력해 보았다.no hack를 출력하였다.확인해보니 script가 필터링 되어 있었다. : 입력가능 : no hack : 입력가능 %0a, %0d의 경우는 입력이 가능하나 스크립트가 재대로 실행되지 않았다. 그래서 NULL을 입력해보았다. NULL을 URL인코딩하면 %00이다. 공백대신 널을 입력해본다. -> URL 인코딩 -> -> URL 인코딩 -> +(%20) 대신 %00을 입력하니 스크립트가 실행되었다.
[Suninatas] Level 4
·
Wargame | CTF/Suninatas
Level 4 4번 문제는 Request Header 중 User-Agent(브라우저 정보)에 대한 문제이다.위처럼 문제 화면이 있다. User-Agent 정보가 출력되고 있고, Auth Key는 ?????로 출력된다.위의 Plus 버튼을 누르면 Point가 1씩 증가한다. Point가 1씩 증가하다가 25에서 "I like the SuNiNaTaS browser!"라는 알림창을 출력한다.브라우저 정보를 SuNiNaTaS로 변경해야할 것 같다. User-Agent 헤더 값이 포함된 Request 정보이다.저 부분을 프록시를 이용하여 수정할 수도 있다.하지만 여기에서는 크롬의 확장프로그램을 통해 손 쉽게 User-Agent 값을 변경해 본다. 크롬의 확장프로그램에서 해당 플러그인을 설치하였다. 다른 확장프..
[Suninatas] Level 3
·
Wargame | CTF/Suninatas
Level 3 3번 문제는 guessing이 필요한 문제이다.문제화면이다. 공지사항 게시판에 글을 작성하라고 한다.우선 NOTICE 게시판으로 이동해보자.처음에 주소가 뜨지 않을 것이다. 프레임안에서 작동하기 때문에 프레임 소스보기를 통해 주소를 알아낼 수 있다. Notice 게시판에서 글쓰기 버튼은 권한이 없기 때문에 활성화가 안되있을 것이다.그래서 우리는 추측을 통해 글쓰기 페이지를 알아내어야 한다.현재 주소가 글 리스트를 보여주고 있기 때문에 list.asp이다.아래와 같이 write.asp로 변경한다면 글을 작성할 수 있는 페이지를 찾을 수 잇다.임의의 값들을 입력 후 SUBMIT을 클릭하면 AuthKey가 출력된다.
[Suninatas] Level 2
·
Wargame | CTF/Suninatas
Level2 Javascript 관련 문제이다.우선 로그인 폼이 있다. 우선 페이지 소스보기를 통해 소스를 확인한다.힌트는 id와 pw를 같다는 것이다.하지만 Join 버튼을 클릭한 결과 'You can't Join! Try again' 이라는 메시지가 출력되었다.자바스크립트 부분을 보면 if( id == pw ) 이 부분으로 인해 같게 입력한다면 메시지가 출력되면서 id와pw를 초기화 시키고 있다.자바스크립트를 다시 정의하거나 강제로 submit한다면 문제를 해결할 수 있다.개발자 도구(F12)를 누른 후 Console을 클릭 후 해당 폼을 submit한다. id와 pw는 임의의 문자로 같기만 하면된다.document.web02.submit(); 명령어를 실행한다면 AuthKey를 얻을 수 있다. 빨간..
[Suninatas] Level1 (Web)
·
Wargame | CTF/Suninatas
Level1 목표 : 'str'이라는 파라미터를 전송하여 아래와 같은 로직을 거쳐서 admin이 된다면 인증키를 출력.ASP 소스입니다. 비교적 간단한 소스입니다. Request('파라미터') : get과 post에 구분없이 파라미터를 가져온다.Replace(변수, '문자열','변경할 문자열') : 변수나, 문자열을 받아와 해당 문자열을 변경한다.Mid(문자열, 시작할위치, 갯수) : 변수나 문자열을 해당위치에서부터 갯수만큼 문자열을 자르는 함수. 위의 함수만 알면 충분히 해결할 수 있는 문제입니다.123456789101112131415Colored by Color Scriptercs ami를 입력하면 aadmin이라는 문자열로 변경됩니다.여기서 aadmin에서 a[ad]min, ad를 잘라 result..