1234 |
|
http://rubiya-kr.tumblr.com/ rubiya님의 옮긴 블로그에서 언젠가 나중에 유용하게 쓸것 같아서 가져왔다.
컬럼 갯수를 알아내는 방법인데
이런 식으로 컬럼 갯수를 알아낼 수 있다고 한다. mysql.user대신 알아내고 싶은 테이블명을 넣으면 된다.
그리고 형변환에 대한 것인데......(지인에게서 들은 정보) 난 여태까지 문자열은 정수 0과 같다고 생각하고있었다.
mysql> select 'abc'=0;
+---------+
| 'abc'=0 |
+---------+
| 1 |
+---------+
1 row in set, 1 warning (0.00 sec)
mysql> select 'abcsadfwe'=0;
+---------------+
| 'abcsadfwe'=0 |
+---------------+
| 1 |
+---------------+
1 row in set, 1 warning (0.00 sec)
mysql> select 'hi there'=0;
+--------------+
| 'hi there'=0 |
+--------------+
| 1 |
+--------------+
1 row in set, 1 warning (0.00 sec)
그런데 그게 또 아니었다. ''로 둘러쌓여진 문자열에서 내부의 문자 앞쪽에 숫자가 있으면 그 숫자로 정수변환된다. 무슨 소리인지 예시를 들어보자면.
mysql> select '123a'=123;
+------------+
| '123a'=123 |
+------------+
| 1 |
+------------+
1 row in set, 1 warning (0.00 sec)
mysql> select '45abcw'=45;
+-------------+
| '45abcw'=45 |
+-------------+
| 1 |
+-------------+
1 row in set, 1 warning (0.00 sec)
이렇게 문자가 나오기 전의 정수만 정수로 형변환이 된다. '123a456' 같은 문자열은 123과 456사이에 a라는 문자열이 하나 있으므로 왼쪽의 123만 정수로 형변환이 된다.
정말 php만큼 더러운 형변환이다........
'webhacking > sql, sql injection' 카테고리의 다른 글
Lord Of SQLinjection rubiya (0) | 2015.02.22 |
---|---|
sql Injection in Insert, Update and Delete clause(error based) (0) | 2015.02.21 |
새롭게 찾아낸 유용한 함수. (0) | 2015.02.08 |
Lord Of SQLinjection iron_golem~evil_wizard (0) | 2015.02.03 |
Lord Of SQLinjection zombie_assassin~dragon (0) | 2015.02.02 |