[Webhacking.kr] Challenge 27
·
Wargame | CTF/Webhacking.kr
Challenge 27 27번 문제 : SQL Injection 문제이다.기본적인 입력하는 폼하나만 있다.소스를 살펴보자입력할 수 있는 no 파라미터에 quot가 없어 비교적 난이도가 낮은듯 하다. 1을 입력하니 guest가 출력되었다.2를 입력하니 query error가 출력되었다. 다른 숫자도 query error가 출력되지만 admin는 2로 추측된다. 이제 쿼리의 결과 값이 admin이 되도록 쿼리문을 만들어본다.쿼리문 : select id from challenge27_table where id='guest' and no=($_GET[no])데이터베이스를 만들고 직접 쿼리문들을 작성해보면서 실험하였다.쿼리문 : select id from challenge27_table where id='gues..
[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을 입력하니 스크립트가 실행되었다.
[Webhacking.kr] Challenge 22
·
Wargame | CTF/Webhacking.kr
Challenge 22 22번 문제입니다.힌트를 보겠습니다.로그인에 성공하면 해당 아이디와 패스워드를 출력해줍니다.만약에 admin의 아이디로 로그인에 성공하였다면 Flag를 얻을 수 있습니다.Login버튼과 Join버튼이 있습니다.우선 로그인을 위해 Join을 해야할 것 같습니다.Join버튼을 누루고 username, password를 입력합니다.username : a password : a 확인을 위해 a/a로 join하였습니다.메인화면으로 돌아와 a/a로 로그인합니다. 아이디와 패스워드가 출력되는데 패스워드는 md5로 암호화되어 출력되고 있습니다. 인터넷에서 md5 복호화 사이트를 검색하여 패스워드를 복호화합니다.884b12461277f5c29baa1ab2479dacd8 MD5 : azombieaz..
[Webhacking.kr] Challenge 21
·
Wargame | CTF/Webhacking.kr
Challenge 21 21번 문제는 Blind SQL Injection 입니다.문제화면 입니다. Blind SQL Injection은 결과 값이 참과 거짓일 경우 글자를 하나씩 조회해서 그 값이 참이냐 거짓이냐를 판별하여 데이터를 조회하는 방법입니다.2을 입력 후 제출 버튼을 클릭하면 Get으로 no=2이 전송됩니다. Result=True로 no=2에 해당하는 데이터가 존재하는 것을 알 수 있습니다.1과 2는 존재하기 때문에 True를 반환하지만, 3을 입력하면 데이터가 없기 때문에 False를 반환합니다.no가 1일때 id와 pw길이가 5인걸로 보아 guest/guest로 추측됩니다.no가 2일때는 id의 길이는 5였지만 pw의 길이는 19입니다.no=2의 id값은 admin으로 추측 후 pw의 값을..
[Webhacking.kr] Challenge 20
·
Wargame | CTF/Webhacking.kr
Challenge 20 20번 문제는 this is javascript challenge 라고 하네요자바스크립트 문제인거 같습니다.우선 입력할 수 있는 곳이 3군대 보입니다. 각각 칸을 채워서 Submit을 해봅니다.Submit 버튼 아래 'Wrong'이란 글자가 출력되고 사라지네요위의 time limit : 2로 보아 2초? 안에 모든 작업을 해야할 것 같습니다.페이지 소스를 보도록 하죠. Submit 버튼을 클릭하면 ch() 함수가 호출되네요lv5frm라는 폼안에 id, cmt, hack의 값이 없다면 함수를 종료시키고 있습니다.그리고 hack의 값과 attackme의 값이 다르다면 이 역시 함수를 종료 시키고 있습니다.즉, 1. nickname, commnent, code의 값이 빈칸이면 안된다. ..