PHP5.2下chunk_split()函数整数溢出漏洞 分析_php文摘
受影响系统:
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
文章来自: 绿盟科技

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So implementieren Sie Datenstatistiken und -analysen in uniapp 1. Hintergrundeinführung Datenstatistiken und -analysen sind ein sehr wichtiger Teil des Entwicklungsprozesses für mobile Anwendungen. Durch Statistiken und Analysen des Benutzerverhaltens können Entwickler ein tiefgreifendes Verständnis der Benutzerpräferenzen und -nutzung erlangen Gewohnheiten. Dadurch werden Produktdesign und Benutzererfahrung optimiert. In diesem Artikel wird die Implementierung von Datenstatistiken und Analysefunktionen in uniapp vorgestellt und einige spezifische Codebeispiele bereitgestellt. 2. Wählen Sie geeignete Datenstatistik- und Analysetools. Der erste Schritt zur Implementierung von Datenstatistiken und -analysen in uniapp besteht darin, die geeigneten Datenstatistik- und Analysetools auszuwählen.

Wie verwende ich die MySQL-Datenbank für Prognosen und prädiktive Analysen? Überblick: Prognosen und prädiktive Analysen spielen eine wichtige Rolle in der Datenanalyse. MySQL, ein weit verbreitetes relationales Datenbankverwaltungssystem, kann auch für Vorhersage- und prädiktive Analyseaufgaben verwendet werden. In diesem Artikel wird die Verwendung von MySQL für Vorhersagen und Vorhersageanalysen vorgestellt und relevante Codebeispiele bereitgestellt. Datenaufbereitung: Zunächst müssen wir relevante Daten aufbereiten. Angenommen, wir möchten Verkaufsprognosen erstellen, benötigen wir eine Tabelle mit Verkaufsdaten. In MySQL können wir verwenden

Protokollüberwachung und -analyse in Echtzeit unter Linux Bei der täglichen Systemverwaltung und Fehlerbehebung sind Protokolle eine sehr wichtige Datenquelle. Durch Echtzeitüberwachung und Analyse von Systemprotokollen können wir ungewöhnliche Situationen rechtzeitig erkennen und entsprechend damit umgehen. In diesem Artikel wird die Durchführung einer Protokollüberwachung und -analyse in Echtzeit unter Linux vorgestellt und entsprechende Codebeispiele bereitgestellt. 1. Protokollüberwachung in Echtzeit Unter Linux ist rsyslog das am häufigsten verwendete Protokollsystem. Durch die Konfiguration von rsyslog können wir die Protokolle verschiedener Anwendungen kombinieren

Mit dem Aufkommen des Big-Data-Zeitalters spielt die Datenvisualisierungsanalyse in allen Lebensbereichen eine entscheidende Rolle. Als schnelle, effiziente und sichere Programmiersprache hat die Go-Sprache nach und nach einen Platz im Bereich der Datenvisualisierungsanalyse eingenommen. In diesem Artikel wird untersucht, wie die Go-Sprache für die Datenvisualisierungsanalyse verwendet wird. 1. Plotly, eine häufig verwendete Datenvisualisierungsbibliothek in der Go-Sprache: Kann zum Erstellen interaktiver Grafiken im Browser verwendet werden und unterstützt eine Vielzahl von Grafiktypen, z. B. Liniendiagramme, Balkendiagramme, Streudiagramme, Wärmekarten usw. Gonum/plo

Statistische Analyse bezieht sich häufig auf den Prozess der Sortierung, Klassifizierung und Interpretation gesammelter relevanter Daten. Zu den grundlegenden Schritten der statistischen Analyse gehören: 1. Daten sammeln; 2. Daten organisieren; 3. Daten analysieren;

Titel: Analyse der Gründe und Lösungen, warum das sekundäre Verzeichnis von DreamWeaver CMS nicht geöffnet werden kann. Dreamweaver CMS (DedeCMS) ist ein leistungsstarkes Open-Source-Content-Management-System, das häufig bei der Erstellung verschiedener Websites verwendet wird. Allerdings kann es beim Erstellen einer Website manchmal vorkommen, dass das sekundäre Verzeichnis nicht geöffnet werden kann, was zu Problemen beim normalen Betrieb der Website führt. In diesem Artikel analysieren wir die möglichen Gründe, warum das sekundäre Verzeichnis nicht geöffnet werden kann, und stellen spezifische Codebeispiele zur Lösung dieses Problems bereit. 1. Mögliche Ursachenanalyse: Pseudostatisches Regelkonfigurationsproblem: während der Verwendung

Zusammenfassung der Python-Anwendungsfallanalyse in intelligenten Transportsystemen: Mit der rasanten Entwicklung intelligenter Transportsysteme wird Python als multifunktionale, einfach zu erlernende und zu verwendende Programmiersprache häufig bei der Entwicklung und Anwendung intelligenter Transportsysteme verwendet. Dieser Artikel demonstriert die Vorteile und das Anwendungspotenzial von Python im Bereich des intelligenten Transports, indem er Anwendungsfälle von Python in intelligenten Transportsystemen analysiert und relevante Codebeispiele angibt. Einleitung Ein intelligentes Transportsystem bezieht sich auf die Nutzung moderner Kommunikations-, Informations-, Sensor- und anderer technischer Kommunikationsmittel

Titel: Ist Tencents wichtigste Programmiersprache Go: Eine eingehende Analyse Als Chinas führendes Technologieunternehmen hat Tencent bei der Auswahl seiner Programmiersprachen schon immer große Aufmerksamkeit auf sich gezogen. In den letzten Jahren glauben einige Leute, dass Tencent hauptsächlich Go als Hauptprogrammiersprache übernommen hat. In diesem Artikel wird eine eingehende Analyse durchgeführt, ob die Hauptprogrammiersprache von Tencent Go ist, und es werden konkrete Codebeispiele angegeben, um diese Ansicht zu untermauern. 1. Anwendung der Go-Sprache in Tencent Go ist eine von Google entwickelte Open-Source-Programmiersprache. Viele Entwickler schätzen ihre Effizienz, Parallelität und Einfachheit.
