215, 1/11 회원가입  로그인  
   블루윙
   http://commaster.egloos.com
   sql injection 질문드립니다.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=107 [복사]


id : admin
pw : 'or1=1--

select * from member where id='admin' and pass = ''or 1=1--'                
암호에 'or 1=1-- 구문을 넣으면 위와 같은 sql구문이 나오는거 맞죠?
제 생각에는 아이디는 admin 이고, 패스워드는 값이 안들어가는
거 아닌가요? 그러면 이때 암호가 없다고 뜨는건지 아니면..
null값 자체도 인식해서 null 값을 받아 아이디와 패스워드 비교해서 거짓으로 나오고
그다음 1=1 과 비교해서 결국 참이 나와 조건을 돌려준다는 뜻인가요?
                        


p.s
select * from member where id='admin' and pass = '1313'or1=1--'

왜 이구문이 양식이 틀린건가요?

  Hit : 4566     Date : 2012/04/07 11:50



    
cd80 --뒤에 공백이 한칸이상 있어야 주석처리 되는걸로 알고있습니다
저도 듣기만한거라 왜 그런지는 모르겠네요
2012/04/07  
블루윙 글쎄요 -- 뒤에 공백 안넣어도 되던데.. 문제는 '' 이거하고 '1313' 둘다 어차피 FALSE 값 나올텐데 왜 '1313'이렇게 되면 안되는건지 모르겠다는거에요 ..~
2012/04/07  
supershop 띄어쓰기가 안 되서 그런게 아닐까요... 2012/04/08