0x02 Study :)/Webhacking

    webhacking.kr Level 54 문제풀이

    webhacking.kr Level 54 문제풀이

    Level 54 Password is 페이지를 열고 시간이 좀 지나니 아래 처럼 계속 문자열이 하나씩 출력 되었다. 크롬으로 살펴보니, 1초마다 m파라미터 값을 0부터 31까지 1씩 증가시키면서 출력하고 있다. function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=ru..

    webhacking.kr Level 52 문제풀이

    webhacking.kr Level 52 문제풀이

    Level 52 😭 죽어라 삽질했던 문제... 아직도 문제 출제의도 이해가 안간다. 삽질 이유를 말하자면, 문제에서 id=haks2198라는 쿠키를 생성하라고 하는데, 쿠키생성할 필요가 없다 ;; 그래도 풀이 과정을 적어보자💢 '헤더인젝션'이라는 단어를 처음 접하게 되어 구글링을 해보았다. 헤더인젝션은 공격자가 헤더에 개행문자를 삽입해 헤더를 추가하여 공격하는 수동적 공격방법이다.즉 개행문자('\r\n')를 필터링하지 않으면 생기는 문제이다.\r(%0d) : Carrige Return 커서를 맨 앞으로 이동시킨다.\n(%0a) : Line Feed 커서를 다음줄로 이동시킨다. 쿠키를 생성하는 방법은 'Set-cookie:'를 이용하면 된다. 먼저 '헤더생성'을 눌렀을 때 패킷을 살펴봤다. Request ..

    webhacking.kr Level 51 문제풀이

    webhacking.kr Level 51 문제풀이

    Level 51 id 와 pw 를 입력받는다.

    webhacking.kr Level 47 문제풀이

    webhacking.kr Level 47 문제풀이

    Level 47 email값이 POST방식 일 때 mail함수가 실행된다. mail함수는 ("받는사람 주소", "메일 제목", "메일 내용", "헤더내용(옵션)") 이런 형식으로 되어있다. 그리고 header값에는 우리가 입력할 수 있는 값이 들어가게 된다. 여기서 우리가 입력한 값으로 조작 할 수 있는 것은 header의 값이다. 구글링해보니 mail 함수에서 header값에 참조인을 넣을 수 있다. 즉 받는 사람 이외에 참조인도 메일을 받을 수 있게 되는 것이다. cc: [메일주소] 형식으로 넣어주면 된다. 따라서 우리는 헤더를 header = "From: abcd@naver.com\r\ncc:haks2198@naver.com\r\n" 으로 만들면 된다. \r : %0d\n : %0a abcd@nav..

    webhacking.kr Level 42 문제풀이

    webhacking.kr Level 42 문제풀이

    Level 42 test.txt파일과 test.zip 파일을 다운 받을 수 있게 되어 있다. test.txt 파일에는 "test~"라는 문구만 들어있고, test.zip 파일 다운로드를 누르면 Access Deny라는 알림창만 뜨고 다운이 되지 않는다. nosubjectfile 2testtest.txt [download] 1read metest.zip [download] 소스코드를 살펴보면 test.zip파일은 파일의 경로가 하이퍼링크 된것이 아니고 알림창이 뜨게되어 있다. 그리고 힌트로 test.zip파일의 비밀번호는 숫자로만 되어 있다고 나와있다. 소스에서 test.txt파일의 하이퍼링크 주소에 주목했다. "dGVzdC50eHQ=" 라는 경로로 되어 있고, 딱봐도 base64로 인코딩 되어 있어 디코..

    webhacking.kr Level 38 문제풀이

    webhacking.kr Level 38 문제풀이

    Level 38 "admin" 문자열을 넣고 'login'버튼을 누르면 "you are not admin "이라는 메시지가 출력된다. "Admin"버튼을 누르면 log파일 내용이 보여지는데, [자신의 IP] : 입력한 값 이 로그에 남게 된다. 그런데 admin이라고 입력한 값은 존재하지 않는다. log [내 아이피]:admin -- 소스를 살펴보니 힌트는 admin이라고 한다. 로그파일에 [IP] : admin 이라고 남기게 되면 문제가 풀릴것 같다는 생각을 했다. \n[자신 아이피]:admin 이렇게 입력하여 로그 파일이에 [자신 아이피]:admin 이렇게 입력 되도록 한 후, admin버튼을 누르니 문제가 풀렸다. 문제는 풀렸지만, 문제 출제 의도를 모르겠다...;;🧐 정답 : \n[자신 아이피]:..

    webhacking.kr Level 33 문제풀이

    webhacking.kr Level 33 문제풀이

    Level 33 Challenge 33-1 get이 "hehe"가 되면 Next라는 하이퍼링크가 생성된다. lv2 페이지로 넘어가면서 또다시 코드가 주어졌다. 이번엔 post방식으로 post1과 post2를 입력받는다. 따라서 개발자 모드를 이용하여 해당 페이지의 소스코드를 수정하였다. 그럼 위와 같이 post방식으로 값을 넘길 수 있게 된다. post에는 "hehe", post2에는 "hehe2"를 넘겨주자. lv3 이번엔 myip값이 REMOTE_ADDR과 같으면 된다. 즉 자신의 ip를 넣으면 된다. lv4 힌트로 위와 같은 숫자가주어졌다. password에 time()으로 받아온 값을 md5로 인코딩한 값이 들어면 될 듯하다. 힌트로 주어지는 값은 현재 시간을 가져오는 것 같다. 페이지를 새로고침..

    webhacking.kr Level 32 문제풀이

    webhacking.kr Level 32 문제풀이

    Level 32 1위부터 625위까지 존재하고 맨 아래부분에 "Join"이라는 버튼이 존재한다. 해당 버튼을 누르면 내 id가 추가 되고 0/100 으로 설정된다. 아이디를 누르게 되면 1이 증가하고 vote_check라는 쿠키값이 "ok"로 설정되어 더이상 투표가 불가능해진다. 따라서 fiddler에서 투표하는 패킷을 캡쳐하여 "Reissue Sequentially"를 100번 수행하여 100으로 만들었다.