해커

    [FC3] Level 4. hell_fire → evil_wizard

    [FC3] Level 4. hell_fire → evil_wizard

    evil_wizard keyword : POP POP RET /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard - Local BOF on Fedora Core 3 - hint : GOT overwriting */ // magic potion for you void pop_pop_ret(void) { asm("pop %eax"); asm("pop %eax"); asm("ret"); } int main(int argc, char *argv[]) { char buffer[256]; char saved_sfp[4]; int length; if(argc < 2){ printf("argv error\n"); exit(0); } // for distu..

    [SuniNaTaS] 3번 문제, 게시판 글쓰기 우회

    [SuniNaTaS] 3번 문제, 게시판 글쓰기 우회

    2017/08/17 - [Study :)/WarGame] - [SuNiNaTaS] 2번 문제, 파로스 및 웹브라우저 이용 JavaScript 우회 3번 문제 3번 문제를 보면 "Write articles in Notice board!"라는 문구만 표시되고, 소스코드를 살펴봐도 아무런 단서가 없다. 이는 단순히 Notice게시판에 글을 쓰라는 것 같다. 그런데 Notice게시판에 가보니 글쓰는 버튼이없다. 다른 게시판들을 살펴보니 글쓰기 버튼이 활성화 되어 있다. 그래서 글쓰기 기능을 우회하여 Notice게시판에 글을 쓰라는것 같아 조금 분석해보게 되었다. Q&A게시판에 글을 써보기도하고 여러번의 삽질끝에 단서를 찾았다. 무심코 WRITE 버튼의 경로를 살펴 보던중, divi값이 "Free"라고 되어 있었..

    [SuNiNaTaS] 2번 문제, 파로스 및 웹브라우저 이용 JavaScript 우회

    [SuNiNaTaS] 2번 문제, 파로스 및 웹브라우저 이용 JavaScript 우회

    2017/08/16 - [Study :)/WarGame] - [SuNiNaTaS] 1번문제, replace함수, mid함수 2번 문제 2번 문제를 보면 단순히 아이디와 패스워드를 치고 로그인(?)하라는 창만 나타나게된다. 아래 부분에 보면 Authkey라고 해서 표시가 된다. 왠지 ID와 PW를 찾으면 인증키가 표시되는것 같다는 느낌이 있다. 일단 해당 페이지의 소스코드를 뜯어보자. 소스 스크립트 부분에 chk_form()함수가 있으며, id값과 pw값을 불러와 비교를 한다. id와 pw가 같으면 "You can't join! ..."이라는 메시지가 출력되면서 id값과 pw값이 초기화 된다. id와 pw값이 다르면 submit()함수가 실행되어 어떠한 행위를 하는 것 같다. 그런데 스크립트 아래쪽 주석을..

    [Anti-DOS]SYN Cookie

    [Anti-DOS]SYN Cookie

    SYN Cookie Syn cookie란 ? TCP 3-way-handShake TCP로 세션이 생성 되려면 아래와 같은 기본적인 3-way-handshake를 거친다. SYN Flooding 공격SYN Flooding 공격은 3-way-handshake의 취약점을 이용한 공격으로 공격대상 시스템의 TCP연결 자원(backlog queue)을 소진시켜 외부로부터 TCP 연결 요청을 받을 수 없는 상태로 만드는 서비스 거부 공격기법 이다. 경우는 아래와 같다.공격자가 SYN 패킷을 보내면 서버는 SYN/ACK 패킷을 보내고 SYN패킷에 대한 세션을 생성하고 응답을 기다린다. 따라서 공격자가 수많은 SYN패킷으를 보내면 수만은 세션을 생성하고 기다리게되고, 정상적인 사용자가 서버와 세션을 맺으려고 하면 이미..

    [LOS]Level10 skeleton 문제풀이

    [LOS]Level10 skeleton 문제풀이

    쿼리문에 id값은 'guest'값이 들어가있고, 'and 1=0' 값이 붙어있다. 9번째줄을 보면 id값이 'admin'이여야 풀린다. 'and 1=0'값은 무조건 거짓이다. id값에 'admin'을 넣고 pw값 뒷부분을 주석처리한다. (pw=%27%20||%20id=%27admin%27%23)

    [LOS]Level8 troll 문제풀이

    [LOS]Level8 troll 문제풀이

    6번째줄에 admin을 필터링하고 있다. 10번째줄에 id값이 admin이여야 문제가 풀린다. 'admin'이라는 값을 넣지않고, id값에 admin을 넣어야 한다. 처음에는 hex값으로도 넣어보고해봤으나 풀리지 않았다. 그러던중 6번째 줄에 ereg()함수가 보였다. php에서 ereg()함수는 대소문자를 구별하여 'admin'을 검사한다. (즉, admin은 필터링되어도 Admin, aDmin 등은 필터링되지 않는다.) -> preg_match()함수를 사용해야한다. 하지만 db로 들어가면 대소문자를 구별하지 않는다.

    [LOS]Level7 orge 문제풀이

    [LOS]Level7 orge 문제풀이

    6번째줄을 보면 or와 and가 필터링된다. (or : ||, and : && 로 대체) 15번째줄을 보면 정확한 pw를 입력해야 된다.(orc문제처럼 풀면된다. id값은 뭐든 상관없음) orc와 똑같은 Blind SQL Injection문제이다. (id값만 admin으로 넣어주면 됨) [*] Blind SQL Injeciton 일반적인 SQL Injection은 웹 시스템이 쿼리를 이용하여 데이터베이스를 조회하는 과정을 우회하는 방법이다. Blind SQL Injection은 다음과 같은 특정한 상황에서 사용 가능하다. 1. 쿼리문으로 참과 거짓일 때의 서버의 반응을 알 수 있어야 함. 2. 원하는 결과를 얻을 데이터베이스의 이름을 알 수 있어야 함. 이러한 상황일 때, 쿼리 문의 ascii, limi..

    [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 : &&우회하는 법만 알면 풀이는 매우 간단하다