PDA

View Full Version : PHPNuke SQL Иньекция -> удаленные команды


Soniks
26.10.2005, 04:39
Продукт: Php-Nuke

Версия: 7.9 (и ниже)

Затронуты файлы:
- modules/Your_Account/index.php
- modules/Downloads/index.php
- modules/Web_Links/index.php

Описание:
Те кто выполнили эти меры предосторожности (http://forum.mynuke.ru/showthread.php?t=574), то в принципе могут спать спокойно:smile:
Описывать здесь нечего, очерездая невнимательность автора php-nuke, нет должной проверки переменных.

Устраняем уязвимость:
Открываем modules/Your_Account/index.php
Находим:

function login($username, $user_password, $redirect, $mode, $f, $t, $random_num, $gfx_check) {
global $setinfo, $user_prefix, $db, $module_name, $pm_login, $prefix;


Ниже добавляем:
$username = htmlspecialchars($username);
Открываем modules/Downloads/index.php
Находим:

$num_new = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_downloads_newdownload WHERE title='$title' OR url='$url' OR description='$description'"));

Заменяем на:
$num_new = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_downloads_newdownload WHERE title='".addslashes($title)."' OR url='".addslashes($url)."' OR description='".addslashes($description)."'"));

Открываем modules/Web_Links/index.php
Находим:
$num_new = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_links_newlink WHERE title='$title' OR url='$url' OR description='$description'"));

Заменяем на:
$num_new = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_links_newlink WHERE title='".addslashes($title)."' OR url='".addslashes($url)."' OR description='".addslashes($description)."'"));

У кого не стоит дополнительная защита, типа NukeSentinel (http://mynuke.ru/modules.php?name=Downloads&op=getit&lid=135) фиксим по быстрому, т.к. имеется експлойд, который быстренько открывает шелл, ну и на этом собственно все:lol: .