Wargame
-
<Root-me> HTML - IP restriction bypassWargame/Root-me = Web - Server 2021. 12. 29. 16:01
HTML - IP restriction bypass IP 주소가 LAN 영역에 속하지 않아, 인트라넷에 로그인하라고 한다. 문제 설명을 보면 IP 주소가 LAN 영역에 속하면, 로그인할 필요가 없다고 한다. 즉, 클라이언트의 IP를 인트라넷 IP와 같게 인식하도록 만들면 될 것 같다. HTTP Header 중, XFF(X-Forwarded-For)는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 IP 주소를 식별하는 표준 헤더이다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드 밸런서를 거치면, 서버 접근 로그에는 프록시나 로드 밸런서의 IP 주소만을 담고 있다. 클라이언트의 원 IP 주소를 보기 위해서는 X-Forwarded-For 요청 헤더를 사용해야 한다. X-Forwar..
-
<Webhacking.kr> old-54Wargame/Webhacking.kr 2021. 12. 27. 18:17
old-54 FLAG 값으로 보이는 문자들을 한 글자씩 빠르게 보여준다. 페이지 소스 코드를 살펴보면 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=run(); function answer(i){ x.open('GET','?m='+i,false); x.send(..
-
<Webhacking.kr> old-39Wargame/Webhacking.kr 2021. 12. 27. 15:54
old-39 view-source를 통해 페이지 소스 코드를 살펴보면
-
<Root-me> CSRF - 0 protectionWargame/Root-me = Web - Client 2021. 12. 24. 13:24
CSRF - 0 protection 인트라넷에 접속하기 위해 계정을 활성화시키라고 한다. 먼저 Register를 통해 woong으로 가입을 하고 로그인을 한다. Profile을 살펴보면 Status 체크박스가 비활성화되어있다. Private를 살펴보면 기다리라고 한다. Contact를 살펴보면 이메일과 코멘트를 입력할 수 있다. 문제 제목이 CSRF인 만큼, Contact를 통해 계정을 활성화시켜야 할 것 같다. Profile 페이지의 소스 코드를 살펴보면 우리에게 필요한 부분은 form 태그로 감싸진 부분이다. 필요한 부분만 추리면 그리고 action을 Profile의 full URL로 변경하고, status가 체크되어야 하므로 disabled를 checked로 바꾼다. 여기까지만 입력하면 form이 ..
-
<Root-me> CSP Bypass - Inline codeWargame/Root-me = Web - Client 2021. 12. 22. 22:11
이름을 입력하라고 한다. 문제 제목이 CSP(Content Security Policy)니 응답 헤더에서 CSP를 먼저 확인해보면 "script-src 'unsafe-inline'"이므로 Inline Javascript(태그 내에 직접 자바스크립트 명령어를 작성하는 방법)을 수행할 수 있다. 다시 문제로 돌아와 아무 이름을 입력한다. CSP(Content Security Policy)를 설정했기 때문에 XSS에 대해 패치하지 않았다고 한다. 그리고 봇만 볼 수 있는 FLAG를 빼내라고 한다. URL을 보면 page?user=woong 부분을 보아 방금 입력한 이름이 GET 방식으로 전달되는 것을 알 수 있다. "XSS에 대해 패치하지 않았다"라고 하니 먼저, user=alert(1)을 입력해보면 요청이 ..