| |
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
|