sql injection 방지법
작성자 관리자 작성시간 2005-04-26 00:54:04
 

target=_blank>http://blog.naver.com/wooltary7/80009184543


오늘 SQL 주입 공격을 사전에 차단하는 방법 이라는 제목의 MS 문서를 읽었습니다.

이런 취약점이 익히 존재한다는 것은 알고 있었지만...스스로도 웹사이트를 만들때 주의하면서 코딩을 하지만....인터넷엔 아직도 많은 사이트들이 이 취약점을 가지고 있는 것 같아요...

특히 사용자 인증 처리하는 부분에서 .......

아이디와 패스워드에

' Or 1=1 --

를 넣으면 그냥 로그인 처리가 되어버리는 사이트가 참 많습니다.

예를 들어 대부분 아이디와 패스워드 비교를 다음과 같은 쿼리로 처리할 테니까요..

SELECT Count(*) FROM Users WHERE UserName='Paul' AND Password='password'

뭐 이런식으로요...

이건 정상적인 것이지만

Paul 부분을 ' or 1=1 -- 로 바꿔보면...

SELECT Count(*) FROM Users WHERE UserName='' Or 1=1 --' AND Password='password'

이렇게 되고 -- 다음은 주석처리 되니까....

SELECT Count(*) FROM Users WHERE UserName='' Or 1=1 만 남고...

뭐 그냥 로그인 되는거죠.....

이건 하나의 예이지만...

언젠가 ASP,SQL로 만들어진 많은 사이트들을 돌아다니며 이짓만 했었는데....

하하 좀 쑥쓰러운 얘기지만.... 상당수의 성인사이트들도 이 방법이 통한답니다...물론 유료사이트이지요...

쩝.....응용만 잘 한다면 정말 여러가지 해킹을 시도할 수도 있겠더라구요..

심지어 sysobjects에 대한 select, DROP TABLE 까지...

암튼 조심해야 할 취약점 인 것 같습니다.....



아 참 ! 여기가시면 자세한 문서내용을 보실 수 있어요...

http://www.microsoft.com/Korea/MSDN/MSDNMAG/ISSUES/2004/SQLInjection/d
efault.aspx


목록 | 입력 | 수정 | 답변 | 삭제