728x90
728x90
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-19, 쿠키와 Base64 활용이 필요한 문제이다. 2. 본론 이번 문제에 처음 접속하면 이러한 화면을 볼 수 있다. 따로 제공되는 소스코드도 없고 id 입력창과 제출버튼이 있다. 그리고 제출버튼을 눌러보면 GET 파라미터 "id"로 "admin"이라는 문자열이 전달되었고 페이지에는 "you are not admin"이라는 문자열이 출력된다. 아마 이번 문제는 admin으로 로그인하는 것이 해결 목표인듯하다. 그래서 이번엔 "admin"이라는 문자열 대신 다른 임의의 문자열을 보내..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-18, SQL injecion과 정규표현식 활용이 필요한 문제이다. 2. 본론 이번 문제에 처음 접속을 하면 처음부터 SQL injection을 시도하라고 친절하게 입력폼까지 제공해준다. 이번 문제의 해결조건을 파악하기 위해 소스코드를 확인해보겠다. 이게 이번 문제의 소스코드인데, 눈의 띄는 부분이 두 군데가 있다. 첫째론 정규식필터를 이용해 특정 문자열을 필터링하고 있는 것이고, 둘째론 쿼리를 요청하는 부분인데 거기에 주석으로 "admin의 no는 2"라고 써져있는 점이다. 이번..
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문을 통과한..