풀이
[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 문제풀이
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 문제풀이
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 문제풀이
[*] 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 문제풀이
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 문제풀이
[*] SQL Comment Attack SQL 쿼리를 가장 쉽게 정복할 수 있는 방법 중에 하나는 바로 주석을 이용하는 것이다.MySQL에서 많은 종류의 주석이 쓰이는데, 공격에 많이 쓰이는 주석을 소개하겠습니다.1. -- (MySQL기반)2. # (%23 : 오라클기반)3. /*4. //5. (주석은 아니지만 쿼리를 바로 끝낼 수 있는것) %00
[LOS]Level1 gremlin 문제풀이
[*] SQL Injection SQL Injection은 웹 어플리케이션에서 일어나는 취약점 중에 가장 강력한 취약점 중 하나입니다.PHP, JSP 등의 웹 프로그램에서 DB서버로 전달되는 쿼리를 특수문자(싱글쿼터, 백슬래쉬 등)를 이용하여공격하는 것입니다.