본문 바로가기

webhacking.kr [문제 15번] 15번 문제를 풀어보겠다. 해당 문제의 배점은 50point이다. 클릭해보자. 해당 메세지박스가 출력되며 바로 튕긴다. 그리고 바로 어떤 페이지가 보였다가 다시 돌아온다. 너무 빨라서 확인할 수 없다. 하지만 찰나의 순간에서 단축키를 이용하면 확인할 수 있다. 페이지 소스 보기의 해당 단축키를 확인하면, Ctrl+U이다. 해당 메세지 박스가 떳을 때 빠르게 단축키를 눌러보자. 다음과 같은 소스코드 페이지를 확인할 수 있다. 그렇다면 해당 문서에 출력되는 문자열 "password is off_script"를 확인할 수 있다. 너무 간단하지만 Auth들어가서 off_script를 입력해보자. 더보기
webhacking.kr [문제 14번] 문제 14번을 풀어보겠다. 해당 문제의 점수는 100point이다. 문제를 클릭하게 되면, 다음과 같은 입력창 하나가 보인다. 정보가 부족하니 먼저 소스코드를 확인해보자. 앞서봤던 입력 폼에 onclick메소드로 ck()라는 함수가 등록되어 있는 것으로 확인되었다. function ck() { var ul=document.URL; ul=ul.indexOf(".kr"); ul=ul*30; if(ul==pw.input_pwd.value) { alert("Password is "+ul*pw.input_pwd.value); } else { alert("Wrong"); } } 해당 소스코드를 분석해보자. ul에 해당 문서의 URL을 담는다. ul에 담긴 문자열(해당 문서의 URL)에서 ".kr"의 인덱스 값을 구.. 더보기
webhacking.kr [문제 12번] 웹해킹 12번 문제를 풀어보겠다. 포스팅하기전 테스트할 겸 혼자서 한번 풀어보았는데 미리 풀려버려서, 해당 문제가 풀려진 상태지만 정보도 정리할겸 다시 한번 풀어보겠다. 점수는 250point이다. javascript challenge라고 작성되어 있으며, 문자열을 확인해보면 해당 문제는 자바스크립트를 이용하여 푸는 문제인 것 같다. 이렇게해서는 정보가 부족하니 소스코드를 확인해보자. 해당 소스코드를 확인해보니, 여러가지 숫자가 나열된 것을 확인할 수 있다. 이것이 아마 비밀정보(?)로 예상된다. 소스코드를 한번 구체적으로 해석해보자. String.fromCharCode(인자1,인자2, ...) eval(인자1) 해당 정보를 토대로 해석해보면, 정수값의 나열로이뤄진 부분이 특정 문자열을 반환할 것이고, .. 더보기
webhacking.kr [문제 11번] 웹해킹 11번 문제를 풀어보겠다. 해당 문제의 배점은 300point이다. 해당 문제를 클릭하면 다음과 같은 정보가 주어진다. 해당 힌트를 분석해보자. $pat="/[1-3][a-f]{5}_.*CLIENT_IP.*\tp\ta\ts\ts/"; if(preg_match($pat,$_GET[va])) { echo("Password is ????");} 간단하게 해석해보면 $pat란 변수에 정규표현식을 담고 GET방식으로 전해진 val이라는 변수에 해당 정규표현식에 맞는 문자열이 전해지면, Password를 출력하는 것으로 확인된다. 정규표현식을 하나하나 살펴보자. 1. [1-3] [1-3] : 1~3사이의 문자 중 하나를 찾음 예시) 1, 2, 3 2. [a-f]{5} [a-f]{5} : a~f사이의 문자 중.. 더보기
webhacking.kr [문제 10번] 9번 문제가 어려웠던 관계로 10번 문제는 쉽길 바라며, 해당 문제를 풀어보겠다. 10번 문제는 250point이다. 해당 문제를 클릭하자. 이상한 형태를 띄고있다. 바로 소스를 확인해보자. 다른 부분은 확인할 필요는 없고 id가 hackme인 부분의 메소드들만 확인해보겠다. onmouseover : 마우스를 올렸을 경우, 해당 텍스트를 yOu로 수정한다. onmouseout : 마우스를 내렸을 경우, 해당 텍스트를 O로 수정한다. onclick : 해당 요소를 왼쪽으로 한칸씩 이동시키며, 만약 해당요소가 800이 되었을 경우, 특정 페이지로 이동한다. 실제로 마우스를 올리거나 내렸을 경우, 다음과 같이 정상적으로 동작함을 확인할 수 있고, 한번 클릭시에 해당 요소가 이동하는 것을 확인할 수 있다. 여러.. 더보기
webhacking.kr [문제 9번] 중간에 알바면접이 있어서 포스팅을 못했다. 미루고 미루던 웹해킹 9번 문제를 풀어보겠다. 9번문제 무려 900point로 전체 문제 중 두번째로 점수 배점이 높다. 해당 문제를 풀면 대략적인 다른 문제들의 난이도를 예상할 수 있을 것으로 예상된다. 문제 클릭시 다음과 같은 페이지를 보여준다. 소스코드를 확인해보자. 별다른 정보는 없지만 각 페이지가 no=1, no=2, no=3로 하이퍼링크 되어 있는 것을 확인할 수 있다. 실제 각각의 페이지를 확인해보자. 1번 페이지 2번 페이지 3번 페이지ㅓ 다음과 같은 페이지를 분석해보니. 데이터베이스에서 no일때의 각각의 id값을 가져와 화면에 뿌려주는 것으로 확인된다. 또한 no=3일때의 id값의 길이는 11로 힌트가 주어졌다. 과연 해당 가설이 맞는지 no=4.. 더보기
컴퓨터 프로그래밍 설계 과제#5_HW03 #include #include int FSM_[5][6] = { /* sign digit alfa period special EOS */ /* 상태 0 */{ 2, 1, -19, 3, -10, -12 }, /* 상태 1 */{ -13, 1, -19, 3, -14 , -1 }, /* 상태 2 */{ -15, 1, -19, 3, -14 , -11 }, /* 상태 3 */{ -13, 4, -19, -16, -14 , -11 }, /* 상태 4 */{ -13, 4, -19, -16, -14 , -1 } }; int check_state(int state_num, char input){ int state = 0; int char_state; int input_num = (int)input; if( (input_.. 더보기
컴퓨터 프로그래밍 설계 과제#5_HW02 #include #include #include void p_large_unit(int num); void p_small_unit(int num); void p_han(int num, int num2); int main(void) { char input_num[21]={0,}; int num_data[20]={0,}; int num_data_d2[5][4]={0,}; int num_length=0; scanf("%s", input_num); num_length = strlen(input_num); //printf("숫자의 길이 : %d\n", num_length); //printf("%s\n", input_num); for(int i=0; i 더보기