728x90
728x90
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-11, 정규표현식 활용이 필요한 문제이다. 2. 본론 이번 문제에 접속을 하면 다짜고짜 너는 틀렸다고 한다. 기분이 나쁘다 읍읍 보여지는 모습만으로는 딱히 뭔가를 알 수 없으니 소스코드를 보도록 하자. 이건 이번 문제의 소스코드이다. 이번 문제는 정규표현식만 해석할 줄 안다면 쉽게 해결할 수 있다. $_SERVER[REMOTE_ADDR]은 접속자의 IP주소이므로 현재 자신의 공인 IP를 확인해서 넣어주면된다. "\t"의 경우는 "tab 문자"를 의미하는데 URL에서는 직접적으로 ..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-9, Blind SQL injection 활용이 필요한 문제이다. 2. 본론 이번 문제를 처음 접속하면 이런 화면이 뜬다. "1, 2, 3"이라는 앵커가 보이고, Password라는 항목으로 Form이 있다. 비밀번호를 입력하는 걸로 봐선 여기에 무언가를 입력해서 submit하면 문제를 해결 할 수 있는 듯 하다. 앵커들을 클릭하면 각각의 화면을 볼 수 있다. GET 파라미터 "no"의 값이 클릭한 앵커의 숫자로 변하면서 각가의 화면이 보이는데, 특별하게도 "no"가 3일때는 "..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-8, SQL injection 활용이 필요한 문제이다. 2. 본론 이번 문제에 처음 접속하면 이러한 화면을 볼 수 있다. "done! (0/70)"이라는 문구를 확인할 수 있는데, 아직까지는 이것의 의미는 알 수가 없다. 근데 조금 이상한 점은 새로고침을 했더니 이러한 페이지로 바뀌었다는 것이다. 다시 여러번 새로고침을 해봐도 이 페이지가 나타나는걸로 봐선 아마 내 접속 정보를 따로 저장해두고 있는듯하다. 이건 이번 문제의 소스코드이다. DB에 접속하고 쿼리를 요청하는 부분이 있..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-7, SQL injection 활용이 필요한 문제이다. 2. 본론 이번 문제를 접속해보면 위와 같은 화면이 나타난다. 처음 접속시에 GET 파라미터 쪽에 "val"라는 항목에 1이 전달되어있다. 이건 이번 문제의 소스코드이다. 우선 코드 상단을 보면, 우리가 처음에 봤던 GET 파라미터 "val"를 $go에 대입하는 걸 확인할 수 있다. 그리고 이 값을 정규식 필터를 통해 특정 문자가 포함될 경우 바로 종료가 되도록 되어있다. 금지 문자는 다음과 같다. 그리고 위 if문을 통과한..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-6, 코드 분석만 한다면 쉽게 풀 수 있는 문제다. 2. 본론 이번 문제에 접속하면 이런 화면을 볼 수 있을 것이다. ID와 PW를 보여주는 걸로 봐선 저 ID와 PW를 어떠한 값으로 변경해야하는 문제일 듯하다. 이건 이번 문제의 소스코드이다. 우선 코드 상단부부터 보자면, "user"라는 쿠키가 있는지 확인한 후에 없다면 하위 작업을 수행하도록 되어있다. $val_id와 $val_pw라는 문자열 변수가 있는데 이 변수들의 값을 base64로 20번 인코딩한 뒤에 특정한 특수문자들..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-4, 레인보우테이블에 대한 이해와 활용이 필요한 문제이다. 2. 본론 이번 문제를 접속해보면 위와 같은 화면이 나타난다. 뭔가 알 수 없는 방식으로 인코딩 된 듯한 초록색 문자열과 패스워드를 입력하고 제출하라는 Form이 눈에 띈다. 이건 이번 문제의 소스코드이다. 여기서 요점을 보자면 우선 "sleep(1)"을 통해 브루트포스를 방지하는 모습을 볼 수 있다. 이부분에서 알 수 있는 점은 이번 문제에선 반복작업이 매우 많이 필요할 수 있다는 점이다. 그 아랫 부분을 보면 세션변수 ..