新聞中心
dedecms 5.7版本利用guestbook.php來對sql注射漏洞-漏洞預(yù)警
作者 / 無憂主機 時間 2014-10-08 00:29:39
dedecms程序漏洞問題困擾了很多的站長,在今天有個用戶因流量超出找過來,經(jīng)過對無憂主機php空間網(wǎng)站日志的分析,發(fā)現(xiàn)一個漏洞引發(fā)的可怕問題,在日志中體現(xiàn)到,如下圖: 從這個日志來看,這個文件是很不正常的,但是很多站長不知道這個是漏洞在注射漏洞,這個影響的5.7版本的,該如何解決呢,找了很多資料發(fā)現(xiàn)還是有解決辦法的。 漏洞文件edit.inc.php具體代碼:
<?php /** * @version $Id: edit.inc.php 1 10:06 2010-11-10 tianya $ * @package DedeCMS.Site * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ if(!defined('DEDEINC')) exit('Request Error!'); if(!empty($_COOKIE['GUEST_BOOK_POS'])) $GUEST_BOOK_POS = $_COOKIE['GUEST_BOOK_POS']; else $GUEST_BOOK_POS = "guestbook.php"; $id = intval($id); if(empty($job)) $job='view'; if($job=='del' && $g_isadmin) { $dsql->ExecuteNoneQuery(" DELETE FROM `#@__guestbook` WHERE id='$id' "); ShowMsg("成功刪除一條留言!", $GUEST_BOOK_POS); exit(); } else if($job=='check' && $g_isadmin) { $dsql->ExecuteNoneQuery(" UPDATE `#@__guestbook` SET ischeck=1 WHERE id='$id' "); ShowMsg("成功審核一條留言!", $GUEST_BOOK_POS); exit(); } else if($job=='editok') { $remsg = trim($remsg); if($remsg!='') { //管理員回復(fù)不過濾HTML if($g_isadmin) { $msg = "<div class=\\'rebox\\'>".$msg."</div>\n".$remsg; //$remsg <br><font color=red>管理員回復(fù):</font> } else { $row = $dsql->GetOne("SELECT msg From `#@__guestbook` WHERE id='$id' "); $oldmsg = "<div class=\\'rebox\\'>".addslashes($row['msg'])."</div>\n"; $remsg = trimMsg(cn_substrR($remsg, 1024), 1); $msg = $oldmsg.$remsg; } } $dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' "); ShowMsg("成功更改或回復(fù)一條留言!", $GUEST_BOOK_POS); exit(); } if($g_isadmin) { $row = $dsql->GetOne("SELECT * FROM `#@__guestbook` WHERE id='$id'"); require_once(DEDETEMPLATE.'/plus/guestbook-admin.htm'); } else { $row = $dsql->GetOne("SELECT id,title FROM `#@__guestbook` WHERE id='$id'"); require_once(DEDETEMPLATE.'/plus/guestbook-user.htm'); }注射漏洞成功需要條件如下: 1、php magic_quotes_gpc=off 2、漏洞文件:plus/guestbook.php 在數(shù)據(jù)庫中:dede_guestbook也需要存在 該如何判斷是否存在漏洞呢,請看下面測試, 首先打開:域名/plus/guestbook.php把鼠標放在 [回復(fù)/編輯] 上可以看到訪問者留言的ID。則記下ID,訪問:域名/plus/guestbook.php?action=admin&job=editok&msg=errs.cc’&id=存在的留言ID提交后,如果是dede5.7版本的話,會出現(xiàn) “成功更改或回復(fù)一條留言” 那就證明修改成功了。 再返回到:域名/plus/guestbook.php 看下您所改的那條留言ID是否變?yōu)榱?errs.cc’ 如果是的話,那就證明此漏洞無法再利用應(yīng)為他開啟:php magic_quotes_gpc=off 如果沒有修改成功,那留言ID的內(nèi)容還是以前的,那就證明漏洞可以利用。 那么再次訪問:域名/plus/guestbook.php?action=admin&job=editok&id=存在的留言ID&msg=’,msg=user(),email=’然后返回,那條留言ID的內(nèi)容就直接修改成了mysql 的user(). 無憂主機相關(guān)文章推薦閱讀: DEDECMS 常見錯誤總結(jié) DEDECMS如何去掉文章RUL中的日期 分享一個DEDECMS刪除所有待審核稿件SQL的語句 DEDECMS標題、關(guān)鍵詞、描述變量名被修改導(dǎo)致網(wǎng)站無收錄的解決方法
本文地址:http://www.gle-technology.com/dedecms/16942.html