본문 바로가기

보안공부/Webhacking.kr 풀이

(31)
webhacking.kr 54번 문제 풀이 - 한국인의 참을성 WEBHACKING.KR 54번 문제 풀이[ 비교대신 대입! ]그럼 오늘은 webhacking.kr 54번 문제를 풀어보도록 하자. 비밀번호는.... 일단 기다려봅시다...기다리면 일단 하나씩 나옵니다. 하지만 현대 문명의 한국인들은 이런 느리고 깐죽대는 행위를 가장 싫어하죠.따라서 우리는 우리의 비밀번호를 알기 위해 코드를 작성해봅시다. 코드를 재작성하기 위해서는 원래코드를 알아야겠죠?원래 코드는 다음과 같습니다. function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } ca..
webhacking.kr 20번 문제 풀이 - 비교대신 대입! WEBHACKING.KR 20번 문제 풀이[ 비교대신 대입! ]그럼 오늘은 webhacking.kr 20번 문제를 풀어보도록 하자. 아무거나 치고 code 섹션에 캡챠까지 치고 submit을 눌렀더니 다음과 같이 뜹니다. 그래서 사이트를 잘 둘러보니 상단에 다음과 같은 문구가 있었다. 사이트가 로드된 시점을 기준으로 2초안에 보내야 하나보다. 사람 손과 인터넷으로는 불가능한 속도니까 스크립트의 힘을 빌려보자.원래 저 페이지의 코드에 있던 스크립트는 다음과 같다. function ck() { if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; } if(lv5frm..
webhacking.kr 58번 문제 풀이 - 3분카레... 아니 플래시 WEBHACKING.KR 58번 문제 풀이[ 3분카레... 아니 플래시 ]그럼 오늘은 webhacking.kr 58번 문제를 풀어보도록 하자. 여기 뭔가 아무거나 치고 싶어지니 한번 쳐봅시다. 그런데 얘가 싫다네요. 그러면 어쩔수 없죠, 이 플래시 파일(swf)을 다운받아버립시다.다운받는법은 다들 아시죠? 암튼 다운로드 하세요. https://www.free-decompiler.com/flash/ 설치과정쯤이야 다들 엔터만 쳐서 설치할것이 뻔하니까 패스하고 바로 로드해 봅시다. 누가봐도 scripts를 보고 싶잖아요 그쵸? 누르니까 하나밖에 없네요 이제 이 버튼에 연결된 scripts를 확인해봅시다. ??????????????????????????????????????????????????????????..
webhacking.kr 12번 문제 풀이 - 아すき WEBHACKING.KR 12번 문제 풀이[ 아すき ]그동안 부제목이 너무 딱딱(?) 하다 느껴서 일본어도 좀 섞어봤습니다.すき가 발음이 스키니까 제목은 아스키입니다. (암튼 그렇다구요) 그럼 오늘은 webhacking.kr 12번 문제를 풀어봅시다. javascript challenge?감 오시죠? 소스에 js코드가 있다는 겁니다.그런데 띠용? WorkTimeFun=String.fromCharCode(118,97,114,32,101,110,99,111,61,39,39,59,13,10,118,97,114,32,101,110,99,111,50,61,49,50,54,59,13,10,118,97,114,32,101,110,99,111,51,61,51,51,59,13,10,118,97,114,32,99,107,..
webhacking.kr 26번 문제 풀이 - 두번인코딩 WEBHACKING.KR 26번 문제 풀이[ 두번인코딩 ]오늘은 webhacking.kr의 26번 문제를 풀어보자.들어가면 이 페이지의 백엔드 코드를 담은 index.phps로 가는 하이퍼링크 하나만 있습니다. 저 링크를 통해 들어가면 이 페이지의 프론트와 백엔드를 모두 확인할 수 있는데, 언제나 그랬듯 백엔드 부분만 살펴볼것이다. if(eregi("admin",$_GET[id])) { echo("no!"); exit(); } GET을 통해 넘어온 id값이 admin이라면 no!를 띄우고 종료한다. $_GET[id]=urldecode($_GET[id]); 사이트를 로드할때 처음 하는 인코딩과 별개로 한번 더 인코딩하여 id값으로 설정해준다. if($_GET[id]=="admin") { @solve(26,..
webhacking.kr 25번 문제 풀이 - NULL TO FLAG WEBHACKING.KR 25번 문제 풀이[ NULL TO FLAG ]오늘은 webhacking.kr의 25번 문제를 풀어보자. 이 페이지의 파라미터값을 확인해보니 GET 메소드를 통해 file값을 전달하고 있었다. 첫값이 ?file=hello 인것으로 보아 이 사이트의 코드를 다음과 같이 예상했다. file값이 없으면 메타태그를 이용해 기본값이 hello인 file 파라미터를 생성해주고 확장자를 제거한 이름을 입력하면 그 파일을 열어주는것으로 예상했다. 하지만 예상대로 진행되지는 않았다.file 파라미터를 통해 password 를 넘겨줬는데 결과값은 hello.txt 값이었다. 이 과정을 통해 새로운 사실을 찾게 되었다.넘겨진 file 파라미터는 어떠한 코드에 의해 변조된다는 사실을 말이다. 따라서 이..
webhacking.kr 24번 문제 풀이 - FILTERED LOCALHOST WEBHACKING.KR 24번 문제 풀이[ FILTERED LOCALHOST ]오늘은 webhacking.kr의 24번 문제를 풀어보자. 이 페이지의 프론트엔드 코드를 확인해보니index.phps 파일에 소스가 있다고 한다. 그럼 이제 그 코드를 분석해보자. extract($_SERVER); extract($_COOKIE); $_SERVER와 $_COOKIE를 접두사(배열명) 없이 사용할 수 있게 해준다. if(!$REMOTE_ADDR) $REMOTE_ADDR=$_SERVER[REMOTE_ADDR]; $REMOTE_ADDR이 존재하지 않으면 현재 접속된 IP를 값으로 지정한다. $ip=$REMOTE_ADDR; $agent=$HTTP_USER_AGENT; $ip값을 $REMOTE_ADDR로 설정해주고, ..
webhacking.kr 18번 문제 풀이 - SQL주사기 WEBHACKING.KR 18번 문제 풀이[ SQL주사기 ]오늘은 webhacking.kr의 18번 문제를 풀어보자. index.phps를 누르면 사이트의 코드가 나오는데, PHP 부분만 떼어서 확인해보자.