본문 바로가기

Wargame Write-Up/Webhacking.kr18

[Webhacking.kr] (Web) 32번 풀이 (old-32) 랭킹이 있다. 마우스를 올려보면 색이 변하는데, 한번 눌러보자 34점이 35점으로 변했다. 내아이디도 있나 한번 찾아봤다. 최하위권에있다. 나한테도 한표를 줘봐야겠다. 이미 투표했다고 안된다. 쿠키값을 보면, vote_check 라는 쿠키가있는데, ok 를 지우고 확인을 누르고, 다시 투표해보면, 투표가 되는걸 확인할수있다. 잠금버튼을 눌러서 100번클릭할수도있지만, 스마트하게 스크립트를 짜서 100을 만들어보자. 소스에, 클릭했을때 get으로 hit=(아이디) 가 들어간다. hit 에 내 아이디를 넣어 100번요청하면 되겠다. 1 2 3 4 5 6 7 8 import requests url= 'https://webhacking.kr/challenge/code-5/?hit=ksks' cookies={'P.. 2020. 4. 6.
[Webhacking.kr] (Web) 26번 풀이 (old-26) 소스를보자. view-source get으로 id를 가져와 admin 이면 no! 를 출력하고 종료한다. admin 이 아니면 id 를 urldecode하고 admin 이면 문제가 풀린다. 우리가 get 으로 요청을할때, 데이터는 웹브라우저가 자동으로 url 인코딩을한다. 그리고 받는쪽에서는 url 디코딩되어 받게된다. 그렇다면, url인코딩을 한번 더 하면 되겠다. 특수문자는 자동으로 url인코딩이 된다. 하지만 admin 은 특수문자가 아니기때문에, 수동으로 url인코딩해줘야한다. %61%64%6d%69%6e==admin 으로 전달이 돼서 no! 라고 뜬다. %61%64%6d%69%6e 를 한번더 인코딩하면 %2561%2564%256d%2569%256e 이 된다. 이 값을 전달하면 되겠다. 데이터가전.. 2020. 4. 5.
[Webhacking.kr] (Web) 24번 풀이 (old-24) 나의 아이피를 보여주고, 잘못된 아이피라 나온다. view-source $REMOTE_ADDR, $HTTP_USER_AGENT 헤더를 가져와, useragent 는 그냥 출력해주고, ip주소는 .. -> . 12 -> "" 7. -> "" 0. -> "" 이렇게 필터링 해서 출력해준다. 이때 필터링된값이 127.0.0.1 이 되면 문제가 풀리는것이다. 필터링했을때 127.0.0.1 이 나오게 문자열을 우회해보자. 112277....00....00....1 이렇게 입력할면 필터링했을때 >>> a="112277....00....00....1" >>> a=a.replace("..",".") >>> a=a.replace("12","") >>> a=a.replace("7.","") >>> a=a.replace(".. 2020. 4. 4.
[Webhacking.kr] (Web) 23번 풀이 (old-23) xss 공격을 하라고 한다. 그대로 입력해보자. no hack이다. 필터링하는문자가 있을것같다. 확인해보면, 하나씩 입력해보면 태그는 필터링하지않는것같다. 왼쪽은 hello 을 입력했을때다. 어떤문자를 필터링하나 하나하나 입력해봤다. h -> 통과 he -> no hack 이렇게 뜨는걸 봐서는 문자열이 두글자이상일때 필터링하는것같다. 문자열은 NULL문자 로 우회할수있다. 이런식으로 문자사이사이에 %00 (NULL문자 URL인코딩) 을 넣어주면, 문자가 붙어서 출력되는걸 볼 수 있다. >>> a="alert(1); 2020. 4. 3.