[Webhacking.kr] Challenge 10
·
Wargame | CTF/Webhacking.kr
Challenge 10 10번 문제는 HTML에 대한 문제입니다.※이번 문제는 크롬에서 작동이 잘 되지 않아 IE에서 문제를 풀었습니다.이번 문제는 HTML소스를 어느정도 알고 있다면 쉽게 해결할 수 있습니다.O에 마우스가 올라가면 you로 글씨가 변경됩니다. 클릭하게 되면 posLeft값이 1상승하면 옆으로 움직이게 됩니다.1234567891011121314151617181920Challenge 10 O ||||buy lotto Colored by Color Scriptercs해당 페이지 소스입니다.Onclick 시 posLeft값이 1씩 증가합니다. 그래서 posLeft값이 800이 되면 Get으로 go=800을 넘겨주게 됩니다. 목표는 posLeft를 800을 만드는 것으로, 800번 클릭해도 됩니..
[Webhacking.kr] Challenge 9
·
Wargame | CTF/Webhacking.kr
Challenge 9 9번 문제입니다.예전에 한번 풀어보았는데 이번에는 문제가 조금 바뀌어있네요??기존엔 아파치 인증을 우회해야 문제가 보였는데 지금은 바로 문제를 풀 수 있게 되어 있네요? 위에 그림처럼 1,2,3의 링크와 password를 입력하는 부분이 있습니다. 이 문제는 소스가 제공이 되지 않습니다.1,2,3을 클릭 해 봅시다.1번을 누르면 Get으로 no=1 파라미터를 넘겨 주면서 Apple이 출력됩니다.2번을 누르면 Get으로 no=2 파라미터를 넘겨 주면서 Banana이 출력됩니다.3번을 누르면 Secret이 출력되면서 아래 힌트가 출력됩니다. 보통 이렇게 출력 값이 다르게 if문이나 case문을 이용한 블라인드 SQL Injection이 가능합니다.우선 필터링되는 문자가 있는지 입력해보고..
[Webhacking.kr] Challenge 8
·
Wargame | CTF/Webhacking.kr
Challenge 8 Http Header 중 User-Agent에 대한 문제입니다.User-Agent란 현재 요청을 전송하는 브라우저를 말합니다.문제 화면입니다. 새로고침할 때마다 카운트가 1씩 증가합니다.소스를 보기위해 index.phps로 접속합니다.8번 문제의 소스입니다.User-Agent 헤더 값을 받아오는데 현재 이 소스에서는 2개로 나눠져 있다고 보시면 됩니다.$agent에 저장된 값과 $_SERVER[HTTP_USER_AGENT]의 값으로 나눠져 있기 때문에 이를 잘 보시고 문제를 푸셔야 합니다.agent값으로 데이터베이스를 조회하여 id값 'admin'을 불러와야합니다.아래 Insert문을 보면 agent값과 현재IP주소와 'guest'를 Insert하고 있습니다. 이 부분에 SQL In..
[Webhacking.kr] Challenge 7
·
Wargame | CTF/Webhacking.kr
Challenge 7 7번 문제입니다. Union을 이용한 SQL Injection 문제입니다.auth 버튼을 눌러보면 그림과 같이 Access_Denied!라는 알림창이 하나 뜹니다.페이지 소스보기를 하니 index.phps가 있네요처음 힌트입니다. DB에는 val=2라는 값이 존재하지 않으니 Union을 이용하여 문제를 해결해야 합니다.문제의 PHP소스 입니다. 문제를 해결할 수 있는 조건을 생각해야합니다.소스를 천천히 보니 사용할수 없는 문구를이 있습니다.rand 부분은 패스하겠습니다. 이 부분은 괄호 갯수만 맞추어 주면 됩니다.If문이 보이네요. 쿼리 결과 값으로 1도 아니고 2도 아니면 중지됩니다.마지막으로 쿼리 결과 값이 2라면 문제가 해결되는 방식입니다.해결 조건 : 1. DB에 2라는 값은..
[Webhacking.kr] Challege 6
·
Wargame | CTF/Webhacking.kr
Challege 6 6번 문제입니다. Hint는 base64 입니다.소스를 확인해 볼까요소스를 확인해 보니 user쿠키가 없을 경우 'guest', '123qwe'를 해당 소스와 같이 base64인코딩을 20번 한다음 숫자를 치환하는 과정을 거칩니다.우리가 로그인해야하는 'admin'으로 직접 base64인코딩을 20번하고 해당 숫자부분을 치환해도 되지만 해당 소스가 공개되어 있으니 디코딩부분을 참고하여 똑같이 소스를 작성하여 돌려보는게 좋을 것 같습니다.직접 php소스를 돌려보겠습니다. 이렇게 admin에 대해 인코딩값이 나옵니다.이 인코딩된 값을 쿠키에 적용시켜 봅시다.새로고침을 누르면문제를 쉽게 해결할 수 있습니다.
Webhacking.kr Challenge 5
·
Wargame | CTF/Webhacking.kr
Challenge 55번 문제는 JavaScript와 SQL의 Insert문을 이용하는 문제입니다. 문제화면 입니다. Login버튼과 join버튼이 있습니다. join버튼을 누르니 Access_Denied 창이 뜹니다.login을 해보니 admin이 아니라고 뜹니다. 고로 저희는 admin아이디로 로그인을 해야할 것 같네요.우선 Join페이지를 들어가야합니다. 로그인 경로를 보면 '/mem/login.php' 입니다.여기서 Guessing의 필요성이 느껴집니다. '/mem/join.php'로 접속을 해봅시다.접속하니 검은화면만 있어서 페이지 소스를 봤습니다. 자바스크립트가 난독화되어 있군요. 비교적 쉬운 난독화에 속하니 개발자도구를 이용하여 난독화는 풀어봅시다. 이렇게 개발자도구의 콘솔을 이용하여 난독화..
Webhacking.kr Challenge 4
·
Wargame | CTF/Webhacking.kr
Challenge 4 4번 문제는 의외로 간단했습니다. Base64과 Sha-1에 대한 문제입니다.문제 화면을 보면 알수없는 문자열이 있습니다. Base64로 인코딩된 형식입니다.==를 보면 바로 알 수 있죠Base64 는 암호가 아니기에 인,디코딩을 할 수 있습니다.Base64 디코딩을 하면 위와 같은 문자열이 나오는데 Sha-1으로 암호화된 것 같습니다. Sha-1 복호화 사이트를 찾아서 복호화를 해봅시다.두번의 복호화 과정을 거치면 아래와 같이 답이 출력됩니다.test를 입력하면 문제를 클리어할 수 있습니다.
Webhacking.kr Challenge 3
·
Wargame | CTF/Webhacking.kr
Challenge 3어디서 많이 봤던 퍼즐입니다. 로직???이란 어플로 해본 것 같네요.퍼즐에 나와 있는 숫자들은 각 라인에 표시되는 숫자로 보입니다.이런 형식으로 모양을 만들고 버튼을 클릭합니다.버튼을 누르면 name을 입력하는 페이지가 나옵니다.'TEST'라는 값을 넣어보고 프록시를 이용하여 Intercept해서 어떤식으로 요청을 날리는지 확인해 봤습니다.제가 입력한 퍼즐과 'TEST'를 POST방식으로 전송하고 있습니다.결과를 보면 name, answer, ip 가 출력됩니다.Insert문을 날리고 Select문으로 다시 출력해주는 것 같습니다.Select문을 날릴 때 조건절을 참으로 만들어 전체를 출력하기 위해 위와 같은 구문을 전송하였습니다.no hack이 출력 되었습니다. 아마 특정 문자열을 ..