본문 바로가기

22

Webhacking.kr 37번 [차후 다시 도전] 37번 문제는 시간을 맞추는 것이 관건인 것 같다. 나는 해당 시간을 맞추지 못하여 문제를 풀지 못했다 1. 문제 확인 2. 소스 코드 확인 3. 문제 풀이 해당 시간에 맞는 timestamp의 파일을 생성하는 것을 볼 수 있다. 그리고 파일을 생성하자마자 입력한 파일을 생성해주는 것을 볼 수 있다. 생성된 timestamp 이름의 파일의 내용을 file_get_contents 함수를 통해 가져와서 파일을 읽어온다. 읽어온 값을 host에 넣고 GET 메소드로 요청을 보내는 것을 볼 수 있다. fsockopen()함수로 통신을 할 때 첫번째 인자에는 "127.0.0.1"이 아닌 서버에 접속한 pc의 ip주소(내 ip 주소)가 들어가야 하므로 tmp-$time의 내용을 “127.0.0.1" -> "내 외부.. 2020. 6. 9.
Webhacking.kr 8번 8번 문제를 풀어보기로 한다. 이 문제는 인터넷 익스플로러를 사용하는 것이 좋을 것 같다. 크롬에서 해봤는데 자꾸 에러가 난다. 1. 문제 확인 2. 소스 코드 확인 소스코드가 조금 긴 편이긴 한데, 여기서 중요한 코드만 뽑아보자면, $result = mysqli_query($db,"select id from chall8 where agent='".addslashes($_SERVER['HTTP_USER_AGENT'])."'"); $ck = mysqli_fetch_array($result); if($ck){ echo "hi ".htmlentities($ck[0]).""; if($ck[0]=="admin"){ mysqli_query($db,"delete from chall8"); solve(8); } 이 부.. 2020. 6. 9.
Webhacking.kr 12번 12번 문제를 풀어보도록 하자 이번 문제는 그래도 비교적 간단히 풀 수 있다. 1. 문제 확인 문제에 들어가면 그냥 검은색 바탕에 javascript challenge라고 적혀져 있는 것을 볼 수 있다. 2. 코드 확인 여기서 코드를 확인하면 이상한 문자로 난독화되어 있는 것을 확인할 수 있다. 이렇게 해서는 문제를 풀지 못하므로 난독화를 풀어보기로 한다. 이때 de4js라는 깃허브 툴을 사용할 것이다. 여기에 난독화되어있는 자바스크립트 코드를 넣어주고 라디오 버튼에서 AAencode를 선택하여 복호화를 해준다. 그러면 이렇게 코드가 복호화 되어 나오는 것을 확인할 수 있다. 이 코드를 해석하자면 ck는 document.URL.substr(document.URL.indexOf('=')); 인데, webh.. 2020. 6. 9.
Webhacking.kr 16번 1. 문제 확인 2. 소스 코드 확인 if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px"; if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px"; if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px"; if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px"; if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it! 이 코드가 중요한 것 같다. 여기서 숫자가 나와있다. 여기서 해당 숫자 값을.. 2020. 6. 9.