본문 바로가기

Hacking

Tistory 취약점??? 보호되어 있는 글입니다.
[Webhacking.kr] Problem 02-2 앞의 내용에 이어서 계속 하도록 하겠다. 공격할 부분을 발견했으니 이 부분을 이용해서 Blind SQL Injection으로 비밀번호 정보를 가져오면 된다. 원래는 한 글자를 추출하는데 최적화된 방법으로 하더라도 7번의 비교를 해야지만 알아낼 수 있는데, 이 경우에는 약간 편법을 사용하면 1번의 시도로 1글자를 가져오는 것이 가능하다. 앞의 내용을 살펴 보면 공격할 부분이 from_unixtime이라는 함수를 사용하기 때문에 특정한 숫자에 문자의 ascii code를 추가적으로 더해준 값을 넣어주면, 이것을 다시 timestamp값으로 변경하고 특정한 숫자를 빼주게 되면 바로 그 문자의 ascii code를 얻을 수 있으므로, 1번의 시도로 1글자를 가져오는 것이 가능하다. Blind SQL Inject..
[Webhacking.kr] Problem 02-1 2번 문제는 500점에 해당하는 문제로 "홍길동 문제"라고 불리는 악명 높은 문제이다. 문제 링크 이 문제의 경우 소스코드의 취약점을 찾고 그것을 통해서 데이터를 빼내는 방법을 알아내어야 한다. 문제 이름이 "홍길동 문제"인 이유는 아래와 같이 문제 사이트에 들어가면 홍길동이 명상을 하고 있는 모습을 볼 수 있기 때문이다. 먼저 메인 페이지의 소스코드를 열고 내용을 뒤지다보면 admin/이라는 수상한 링크를 볼 수 있다. 그래서 이 링크가 관리자 페이지로 갈 수 있는 링크라고 생각을 하여 직접 링크에 접속을 하였더니 admin 페이지라고 하면서 password를 입력해야만 접근이 가능하도록 되어 있었다. 물론 이것을 BruteForce로 일일히 대입을 해서 공격을 할 수는 없기 때문에 패스워드에 대한 정..
[Webhacking.kr] Problem 01 200점에 해당하는 문제이다. PHP코드를 분석할 수 있는지 여부를 묻는 문제라고도 볼 수 있다. 문제 링크 1번 문제를 보면 아래와 같은 검정 화면을 볼 수 있다. 'index.phps'라는 문구가 쓰여 있기 때문에 거기에 힌트가 있을 것이라고 생각하고 index.phps로 들어갔다. 들어가는 방법은 페이지에 있는 "index.phps"를 누르거나 혹은 주소창에 직접 치고 들어가는 방법이 있다.[사진 1] index.phps 페이지를 보면 아래 사진처럼 php로 쓰여진 소스코드를 확인할 수 있다. 간단하게 소스코드에 대해서 설명하면, 먼저 user_lv라는 쿠키가 있는지 확인하고, 쿠키 정보가 없으면 user_lv에 1값을 넣고 새로고침을 하는 부분이 첫 번째 부분이다.두 번째 부분인 if(eregi(..
[Webhacking.kr] 0. webhacking.kr 소개 Webhacking.kr은 Oldzombie님이 직접 운영하는 웹해킹 사이트로 상당히 많은 웹해킹 문제를 가지고 있는 사이트이다. 그리고 도메인 이름이 'Webhacking'인 만큼 문제도 오직 웹해킹에 대한 문제만 올라와 있다. 일단 홈페이지를 접속해보면 아래와 같은 단순한 UI를 가진 화면을 볼 수 있다.접속하기 일단 아래에 글자의 인코딩이 깨지는 것은 신경쓰지 말자.... 아무래도 사이트가 만들어진지 오래되었기 때문에, 인코딩이 utf-8로 설정되어 있지 않아서 깨지는 것이고, 딱히 이것은 깨져도 별 상관이 없기 때문에 그냥 무시하도록 하자. 그런데 이 사이트를 보면 'Login'버튼만 있고, 'Join'버튼은 존재하지 않는다. 즉, 어디엔가에 회원가입을 할 수 있는 버튼이나 링크가 숨겨져 있다는 ..
[Wargame.kr] 6. DB is really GOOD 500점에 해당하는 웹 문제이다. 이 문제의 경우에는 힌트에서도 나와 있듯이 user name과 database 사이의 관계를 알아내어야 한다. 그리고 문제에서 What kind of this Database라고 했으므로 보통의 페이지에서 쉽게 알아볼 수 있는 Mysql의 데이터베이스가 아니라는 것을 추측할 수 있다. 문제 링크 문제 사이트에 접속하면 아래와 같은 내용을 볼 수 있다. 일단 User name을 입력할 수 있는 Inputbox가 존재한다. 혹시 해당하는 사이트의 소스코드가 존재하는지 알아보기 위해서 index.phps로 접속해 보았지만 안 되는 것으로 보아 추측을 통해서 문제를 해결해야 한다는 결론을 얻었다. 일단 가장 먼저 user name으로 의심스러운 것이 admin이었으므로 admi..
[Wargame.kr] 5. WTF_CODE 450점에 해당하는 문제이다.이 문제의 경우에는 약간 특별한 언어로 작성된 것으로 이 언어가 무엇인지 알아내는 부분과 이 언어를 컴파일해서 실행 결과를 얻어내는 부분으로 나눌 수 있다. 문제 링크 문제 사이트에 접속하면 아래와 같은 내용을 볼 수 있다. 일단 source_code.ws라는 다운로드 링크가 있으므로 이것을 이용해서 소스코드를 다운로드 받는다. 그래서 다운로드 받는 파일을 Sublime Text로 열어보니 아무 글자도 써저 있지 않고 그냥 스페이스바, 탭, 엔터로만 이루어진 파일이라는 것을 확인할 수 있었다. 그래서 이와 같은 언어는 특별하게 접한 적이 없어서 "Program language exists only whitespace"라는 검색어로 구글에 검색하니 이 언어가 Whitespace..
[Wargame.kr] 4. login filtering 450점에 해당하는 Web 문제이다. 이 문제의 경우에는 Mysql과 PHP 사이의 차이에 대해서 알고 있는지 여부를 묻는 문제와 같다. 문제 링크 문제 사이트에 접속하면 아래와 같은 로그인 창을 볼 수 있다. 즉 알맞은 ID와 PW를 입력해야지 로그인이 될 수 있다는 것을 알 수 있다. 로그인 버튼 아래에 get source 링크가 있으므로 그 링크로 들어가면 이 페이지를 만드는데 사용한 소스코드를 볼 수 있다. 소스코드를 보면 아래 사진과 같다. 소스 코드의 맨 마지막에서 볼 수 있듯이 blueh4g / blueh4g1234ps가 이 데이터베이스에 들어있는 데이터라는 것을 알 수 있다. 그러나 PHP부분 중 if($id=='guest' || $id=='blueh4g') 에서 이 계정을 필터링한다는 것..