hacking

    [LOS]Level6 darkelf 문제풀이

    [LOS]Level6 darkelf 문제풀이

    query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("darkelf"); highlight_file(__FILE__);?>6번째 줄을 보면 or, and 가 필터링되어 있다.id 값은 guest로 되어있고, id 값이 admin이여야 문제가 풀린다.따라서 or, and를 우회하면 끝날 것 같다.[*] or, and 대체1. or : ||2. and : &&우회하는 법만 알면 풀이는 매우 간단하다

    [LOS]Level5 wolfman 문제풀이

    [LOS]Level5 wolfman 문제풀이

    query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("wolfman"); highlight_file(__FILE__); ?>6번째 줄을 보면 공백이 필터링되어 있다.쿼리문을보면 id값에 guest가 들어있고, 문제를 풀기 위해선 id에 admin을 넣고 공백(%20)필터링을 우회해야 한다.[*] 공백(%20) 대체1. () : 괄호2. %09 : 탭3. /**/ : 주석4. %0a : 개행문자5. %0b : 캐리지 리턴여기서 괄호는 필터링 되고 있기 때문에 그외에 것들을 사용..

    [LOS]Level4 orc 문제풀이

    [LOS]Level4 orc 문제풀이

    [*] Blind SQL Injeciton 일반적인 SQL Injection은 웹 시스템이 쿼리를 이용하여 데이터베이스를 조회하는 과정을 우회하는 방법이다. Blind SQL Injection은 다음과 같은 특정한 상황에서 사용 가능하다. 1. 쿼리문으로 참과 거짓일 때의 서버의 반응을 알 수 있어야 함. 2. 원하는 결과를 얻을 데이터베이스의 이름을 알 수 있어야 함. 이러한 상황일 때, 쿼리 문의 ascii, limit, substr 등의 구문을 이용한다. (참조 : http://kcats.tistory.com/121) Blind SQL Injection을 정리하자면 스무고개와 비슷하다. Q : 문자열 0번 인덱스가 a야? A : No Q : 문자열 0번 인덱스가 b야? A : Yes Q : 문자열 ..

    [LOS]Level2 cobolt 문제풀이

    [LOS]Level2 cobolt 문제풀이

    [*] SQL Comment Attack SQL 쿼리를 가장 쉽게 정복할 수 있는 방법 중에 하나는 바로 주석을 이용하는 것이다.MySQL에서 많은 종류의 주석이 쓰이는데, 공격에 많이 쓰이는 주석을 소개하겠습니다.1. -- (MySQL기반)2. # (%23 : 오라클기반)3. /*4. //5. (주석은 아니지만 쿼리를 바로 끝낼 수 있는것) %00

    [LOB] 원정대란?

    [LOB] 원정대란?

    [LOB-Lord of Bufferoverflow][BOF-BufferOverflow- 원정대란?]비교적 쉬운 BOF 공략 환경인 Redhat 6.2에서부터 궁극의 Fedora 14까지 수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 War-Game입니다. [접속 방법]BOF 원정대는 도메인이나 IP가 아닌, vmware 이미지 형태로 제공합니다.따라서 각자의 PC에 워게임 서버를 가동하신 후 접속해 풀어나가는 방식입니다. [다운로드]1. 다음 Vmware 이미지를 다운받아 부팅한다.링크(http://hackerschool.org/TheLordofBOF/TheLordOfTheBOF_redhat_bootable.zip)2. gate/gate로 로그인한다.3. netconfig 명령으로 네트워크 설..

    [해커스쿨] FTZ level11 풀이과정

    [해커스쿨] FTZ level11 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level10 풀이과정 힌트!!! 보자고~ attackme 라는 파일이 보이고, 힌트에는 어떤 소스코드가 들어있다. attackme 를 실행시켜 보니. 역시 소스코드데로 실행된다. 즉, 힌트가 attackme의 소스코드 인것이다. 그러면 이 문제는 어떻게 풀어야 될까... 소스 코드를 보니 단순히 256byte의 str배열을 선언하고 setreuid를 실행하고 argv[1]의 인자값을 str에 복사하고 str를 출력하는게 끝이다. 그런데.. strcpy를 사용하는 것을 보니 이또한 버퍼 오버플로우에 취약하다. level9 풀이(http://eunice513.tistory.com/54)를 보면 Buffer Overflow에 대한 설명..

    [해커스쿨] FTZ level10 풀이과정

    [해커스쿨] FTZ level10 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level9 풀이과정 힌트를 보자...(맨날 똑같은 시작문구 ㅋㅋㅋ) 공유메모리... key_t의 값이 7530... 뭔지 모르겠지만, 일단 공유 메모리에 대해서 검색해보자. 공유 메모리에 대하여 : http://www.joinc.co.kr/w/Site/system_programing/IPC/SharedMemory 위의 그림과 링크를 참조해보면, 2가지 이상의 프로세스들이 공유하는 메모리공간을 말한다. 그리고 공유메모리에 접근을 하기 위해서는 고유의 공유메모리 key 를 통해서 접근가능해지며, 이 key값을 통해서 다른 여러개의 공유메모리들과 구분되어 질수 있다.또, ipcs 명령어로 공유메모리 정보를 알 수 있으며, int shm..

    [해커스쿨] FTZ level9 풀이과정

    [해커스쿨] FTZ level9 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level8 풀이과정 힌트를 봐야 겠지? 힌트를 보니 Buffer Overflow 문제인 것같다. 버퍼 오버플로우는 어떻게 발생하는가? 버퍼 오버플로우를 이해하기 위해서는 먼저 프로그램이 데이터를 어떻게 저장하고 어떻게 함수가 호출되는지 알아야 한다. 하나의 프로그램은 수 많은 함수로 구성되어 있는데 이 함수가 호출될 때, 지역 변수와 복귀 주소(Return Address)가 스택(Stack)이라 하는 논리 데이터 구조에 저장된다. 복귀 주소가 저장되는 이유는 함수가 종료될 때 운영체제가 함수를 호출한 프로그램에 제어권을 넘겨야 하는데, 이 복귀주소가 없으면 함수가 종료된 후 어떤 명령어를 수행해야 할 지 모르기 때문이다. 버퍼 오..