- 1
- 2
//Insert record into database
$result = mysql_query("INSERT INTO people(Name, Age, RecordDate) VALUES('" . $_POST["Name"] . "', " . $_POST["Age"] . ",now());");
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
//Insert record into database
$result = mysql_query("INSERT INTO people(Name, Age, RecordDate) VALUES('" . $_POST["Name"] . "', " . $_POST["Age"] . ",now());");
Из документации к jTable http://www.jtable.org/GettingStarted
Lure Of Chaos 17.06.2014 10:44 # 0
bormand 17.06.2014 12:17 # 0
Был тут на ГК один персонаж, который мне доказывал, что так и надо делать, а все эти ваши подготовленные запросы и даже экранировки перед самим запросом - бесполезное фуфло.
Lure Of Chaos 17.06.2014 12:29 # 0
bormand 17.06.2014 12:49 # 0
Lure Of Chaos 17.06.2014 12:54 # +2
Другой смолчал и стал пред ним ходить.
Сильнее бы не мог он возразить.
интересно, скоро ли он в них разочаровался...
dunmaksim 18.06.2014 13:12 # 0
eth0 18.06.2014 19:35 # 0
Если где-то есть echo mysql_error, то можно ещё попробовать угадывать таблицы-поля.
Ну и, разумеется, самое жирное - если результат из таблицы выводится куда-то без обработки прямо в html.
bormand 18.06.2014 19:37 # 0
Но вполне возможно сделать какую-то выборку и записать ее в поле этой записи (в данном случае в name). А потом зайти в свой профиль и подсмотреть.
eth0 18.06.2014 19:47 # +1
Можно ещё добавить нового админа в систему, зайти с чёрного хода и потырить всё оттуда.
bormand 18.06.2014 20:16 # +2
Просто ' || (select че-нибудь) || ' в качестве своего name подсунуть, да и все. Но в мускуле палки не работают, надо concat, поэтому так не проканает :(
> больше одной записи надо как-то поклеить
А почти во всех базах есть агрегирующие функции, которые позволяют поклеить пачку записей через разделитель.
> Можно ещё добавить нового админа в систему, зайти с чёрного хода и потырить всё оттуда.
Тоже вариант. Кстати, если есть одна возможность для иньекции, значит рядом всяко лежит еще 100500 других. И шансы найти подходящую велики :)
defecate-plusplus 18.06.2014 20:43 # +2
hardened security
тут вам не дырявый ынтерпрайз
eth0 17.06.2014 19:03 # +1