Сообщение от
winstrool
то на сколько я понимаю у тебя уязвимость в переменной $albumID так как она никак не фильтруется, следовательно можно выполнить SQL-инекцию
Хе-хе, ты ошибаешься.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$albumID[/COLOR][COLOR="#007700"]= (int)[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'act_album'[/COLOR][COLOR="#007700"]];
[/COLOR][/COLOR]
В переменную albumID не попадет ничего кроме чисел.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$newalbum[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]attribute_escape[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'newalbum'[/COLOR][COLOR="#007700"]]);[/COLOR][/COLOR]
Если я правильно нагуглил эту ф-цию из WP, то и тут тоже скули нету.
Сообщение от
ne0k
И можно ли в наше время обойти intval()
intval() можно обойти только если он присутствует в условии, к примеру такой код:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]
[/COLOR][/COLOR]
Exp: .php?id=123'
Return: 123'
Если наш параметр начинает с числа, то intval() пропустит и в самом запросе переменная уже не фильтруется => SQL-inject возможен при таком условии.
С
is_numeric такое не прокатит.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if ([/COLOR][COLOR="#0000BB"]is_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$gid[/COLOR][COLOR="#007700"])){
[/COLOR][COLOR="#0000BB"]$serial_sort[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]serialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$gid[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$wpdb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"UPDATE[/COLOR][COLOR="#0000BB"]$wpdb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]nggalbum[/COLOR][COLOR="#DD0000"]SET sortorder = '[/COLOR][COLOR="#0000BB"]$serial_sort[/COLOR][COLOR="#DD0000"]' WHERE id =[/COLOR][COLOR="#0000BB"]$albumID[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]);
[/COLOR][/COLOR]
А вот здесь вот провести SQL-inject вполне возможно...
При условии что $gid можно манипулировать или переопределить через register_globals.
Вот проверил на локалке с таким кодом:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]
[/COLOR][/COLOR]
Exp: test.php?id[]=asd";}'+WHERE+id=1--+
Return: UPDATE SET sortorder = 'a:1:{i:0;s:21:"asd";}' WHERE id=1-- ";}' WHERE id = 1
Need:magic_quotes=off
Комментом мы обрезали оставшийся кусок и в принципе должно работать...