0x02 Study :)/Webhacking

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

    [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]Level3 goblin 문제풀이

    [LOS]Level3 goblin 문제풀이

    query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("goblin"); highlight_file(__FILE__); ?>6번째 줄에 preg_match를 보면 ', ", ` 를 사용하지 못하게 되어있습니다. (확인결과 %27도 필터링된다.)7번째 줄에 id값에 guest가 들어가있고, no의 값을 받습니다.10번째 줄에 id가 admin이면 문제가 풀립니다.따라서 싱글쿼터(')를 사용하지 않고 id값에 admin을 넘겨주어야 합니다.no값에 1을 넣어보니 Hello huest..

    [LOS]Level2 cobolt 문제풀이

    [LOS]Level2 cobolt 문제풀이

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

    [LOS]Level1 gremlin 문제풀이

    [LOS]Level1 gremlin 문제풀이

    [*] SQL Injection SQL Injection은 웹 어플리케이션에서 일어나는 취약점 중에 가장 강력한 취약점 중 하나입니다.PHP, JSP 등의 웹 프로그램에서 DB서버로 전달되는 쿼리를 특수문자(싱글쿼터, 백슬래쉬 등)를 이용하여공격하는 것입니다.