DEDECMS5.7后台getshell1

preview
需积分: 0 8 下载量 164 浏览量 更新于2022-08-03 收藏 76KB PDF 举报
DEDECMS 5.7后台Getshell漏洞分析 DEDECMS 5.7后台Getshell漏洞是近期爆出的一个漏洞,该漏洞允许攻击者在DEDECMS 5.7后台上传恶意文件,从而获取服务器的控制权。下面我们将对这个漏洞进行深入分析。 漏洞成因 该漏洞的成因是DEDECMS 5.7后台在上传文件时的安全检查不够严格。在uploadsafe.inc.php文件中,有一个函数用于检查上传文件的扩展名,但是该函数存在一些缺陷。该函数使用preg_match函数来检查文件扩展名,但是该函数没有正确地处理特殊字符的情况。例如,当文件名中包含特殊字符时,preg_match函数可能无法正确地匹配文件扩展名。该函数使用trim函数来删除文件名中的空格和其他特殊字符,但是该函数也没有正确地处理特殊字符的情况。 漏洞利用 攻击者可以通过上传一个特殊构造的文件来利用该漏洞。例如,攻击者可以上传一个名为"1.jpg?p*h%p"的文件,该文件名中包含特殊字符"?p*h%p"。在上传时,DEDECMS 5.7后台将该文件名中的特殊字符替换成空格,从而使文件名变为"1.jpg"。但是,攻击者可以通过在文件名前添加特殊字符来 bypass DEDECMS 5.7后台的安全检查。例如,攻击者可以上传一个名为"1.php.jpg?p*h%p"的文件,该文件名中包含特殊字符"?p*h%p",从而使DEDECMS 5.7后台认为该文件是一个图像文件。 getimagesize函数的缺陷 在select_images_post.php文件中,DEDECMS 5.7后台使用getimagesize函数来检查上传文件的类型。如果getimagesize函数返回false,则DEDECMS 5.7后台将直接die()。但是,该函数存在一个缺陷,即它只能检查文件的前三个字节来判断文件类型。因此,攻击者可以通过构造一个特殊的文件来 bypass getimagesize函数的检查。例如,攻击者可以上传一个名为"1.php.jpg"的文件,该文件的前三个字节符合jpg图片格式,从而使getimagesize函数认为该文件是一个图像文件。 漏洞修复 为了修复该漏洞,DEDECMS 5.7后台需要对上传文件的安全检查进行改进。需要使用更严格的正则表达式来检查上传文件的扩展名。需要对上传文件的文件名进行更严格的检查,防止攻击者使用特殊字符来 bypass 安全检查。需要对getimagesize函数的检查结果进行更严格的校验,以防止攻击者使用特殊文件来 bypass 安全检查。 总结 DEDECMS 5.7后台Getshell漏洞是一个非常危险的漏洞,它允许攻击者上传恶意文件到服务器,从而获取服务器的控制权。为了防止该漏洞的利用,开发者需要对上传文件的安全检查进行改进,并且需要对getimagesize函数的检查结果进行更严格的校验。同时,开发者也需要了解底层实现的细节,以便更好地防止类似的漏洞。