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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Комментирование части запроса (SQL-inj) (https://forum.antichat.xyz/showthread.php?t=130926)

Disasm 22.07.2009 22:35

Комментирование части запроса (SQL-inj)
 
Всем доброго дня.

Уважаемые господа, столкнулся с такой проблемой:

Для внедрения SQL инъекции необходимо закомментировать хвост запроса.

Сам запрос в исходнике:
Код:

$sql = "UPDATE table SET time='{$now}', what='{$what}', do= '{$do}', task= '{$task}', link= '{$link}', func= '{$func}'"
. "\n WHERE userid={$my->id} AND userip='{$myip}'";

В SQL-inj комментирую так:
Код:

http://site.com/index.php?func=bla'/*
на что получаю ошибку синтаксиса, не понятно почему...

может это из-за того, что WHERE в запросе идет с новой строки...

Подскажите пожалуйста как корректно закомментировать всё WHERE.

Pashkela 22.07.2009 22:38

Дело не только в коментарии, ошибку, для проведения sql-inj надо не только уметь вызвать, но и нигилировать её последующим корректным запросом, а уж потом комментировать, чтобы анигилировать sql-конструкции, идущие следом

Disasm 22.07.2009 22:46

Цитата:

Сообщение от Pashkela
Дело не только в коментарии, ошибку, для проведения sql-inj надо не только уметь вызвать, но и нигилировать её последующим корректным запросом, а уж потом комментировать, чтобы анигилировать sql-конструкции, идущие следом

Если я не ошибаюсь, конечная структура запроса у меня получается синтаксически верная.
Это конечно при условии, что MySQL не требует строго обособления многострочного комментария с обеих сторон.

Т.е. я расчитывал на то, что открывающего указателя многострочного комментария /* будет достаточно для построения синтаксически верного запроса, но что-то чувствую, что MySQL ругается именно на отсутствие закрытия комментария */

xa-xa89 22.07.2009 22:56

вопрос: вы пытаетесь внедрить SQL-код обьединив запросы UPDATE & SELECT или через подзапрос?
покажите как вы делаете тогда станет ясней...

Disasm 22.07.2009 23:03

Цитата:

вопрос: вы пытаетесь внедрить SQL-код обьединив запросы UPDATE & SELECT или через подзапрос?
покажите как вы делаете тогда станет ясней...
для начала просто заккоментировать, а делее через UNION еще раз UPDATE

Цитата:

Приведи сообщение об ошибке
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*' WHERE userid=0 AND userip='255.255.255.255'' at line 2 SQL=UPDATE table SET time='1248287457', what='main', do= '', task= '', link= '/index.php?func=bla%27/*', func= 'bla'/*' WHERE userid=0 AND userip='255.255.255.255'

xa-xa89 22.07.2009 23:24

Цитата:

Символы одинарной и двойной кавычек, даже внутри комментария, считаются началом заключенной в кавычки строки. Если внутри комментария не встречается вторая такая же кавычка, синтаксический анализатор не считает комментарий законченным. При работе с mysql в интерактивном режиме эта ошибка проявится в том, что окно запроса изменит свое состояние с mysql> на '> или ">.
http://phpclub.ru/mysql/doc/comments.html

Пища для мозгов)

Код:

http://site.com/index.php?func=bla'/*'
может вот так сработает!

Disasm 22.07.2009 23:29

xa-xa89 спасибо! Теперь ясно почему ругается.
Подскажите, как же мне тогда верно отрезать WHERE?

Disasm 22.07.2009 23:31

Цитата:

Код:

http://site.com/index.php?func=bla'/*'
может вот так сработает!
не работает =(

xa-xa89 22.07.2009 23:33

Приводи сразу что пишет!я ж не телепат!

Disasm 22.07.2009 23:36

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/*'' WHERE userid=0 AND userip='255.255.255.255'' at line 2 SQL=UPDATE table SET time='1248287457', what='main', do= '', task= '', link= '/index.php?func=%27/*%27', func= 'bla'/*'' WHERE userid=0 AND userip='255.255.255.255'


Время: 04:29