解决discuz论坛无法显示短消息及Access denied for agent changed
discuz论坛无法显示Access denied for agent changed了,登录的时候也提示了这个错误。到disucz上查看帮助,原来是通讯密钥的关系。我重新安装的时候,通信密钥改掉了,恢复后,数据库中的密钥和配置文件中的密钥不同。此时,将应用中的密钥和配置文件中的密钥同步一下就可以了。再查看短消息,OK了!
Access denied for agent changed解决方法:
1.检查DZ目录下config.inc.php文件中define(’UC_KEY’,’通讯密码’)的通讯密码。这里的通讯密码要和UC中的密码一致。
2.检查config.inc.php里define(’UC_APPID’, ‘1′)里的ID。这个ID表明在uc里指定应用程序的应用id为1,uc使用应用来整合各个产品.把这个ID值和UC中的ID值保持一致。
修改了这两处后,Access denied for agent changed提示就消失了。
discuz被黑详解
[该漏洞由ring04h发现并且投递,thx]
由于Discuz!的1_modcp_editpost.tpl.php里$orig['message']未过滤,导致一个xss漏洞.
一 分析
在文件1_modcp_editpost.tpl.php里代码:
<? } elseif($action == ‘editmessage’) { ?>
<textarea type=”text” id=”message_<?=$pid?>” name=”message_<?=$pid?>” style=”width: 80%; height: 200px; overflow: visible” ondblclick=”doane(event)”><?=$orig['message']?></textarea>
<p style=”margin: 5px; text-align: center;”>
<button type=”button” value=”true” class=”submit” onclick=”submitmessage(’<?=$pid?>’);this.disabled=true”>提交</button>
<button type=”button” class=”submit” onclick=”ajaxget(’modcp.php?action=editmessage&pid=<?=$pid?>&tid=<?=$tid?>&editmessagesubmit=yes&inajax=1&do=notupdate’, ‘postmessage_<?=$pid?>’)”>取消</button>
</p>
<script type=”text/javascript”>
<?=$orig['message']?>没有过滤导致xss.
进入以上的代码的有2处:
1. 1_viewthread.tpl.php里:
<td class=”postcontent” <? if($forum['ismoderator'] && ($thread['digest'] >= 0 || !$post['first'])) { ?> ondblclick=”ajaxget(’modcp.php?action=editmessage&pid=<?=$post['pid']?>&tid=<?=$post['tid']?>’, ‘postmessage_<?=$post['pid']?>’)”<? } ?>>
<div class=”postinfo”>
通过ondblclick事件触发ajaxget去访问.
2. \Beijing2008\forumdisplay.htm
</td>
<th class=”$thread[folder]” {if $forum['ismoderator']} ondblclick=”ajaxget(’modcp.php?action=editsubject&tid=$thread[tid]‘, ‘thread_$thread[tid]‘, ’specialposts’);doane(event);”{/if}>
<label>
同上下面的利用是用的1_viewthread.tpl.php里的方法.
如何利用:
1.发表新贴 [...]

