PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP在处理HTML实体时存在漏洞,远程攻击者可能利用此漏洞在PHP服务器上执行任意指令。 PHP的HTML实体编码器在每次到达当前缓冲区末尾的时候都会增加其输出缓冲区的大小,但这种检查假设HTML实体的最大长度为8个字符。尽管这种假设在大多数情况下都是正确的,但希腊字符集就可能包含有大于8个字符的实体,因此攻击者就可以通过在输入字符串中包含希腊theta UTF-8字符来触发缓冲区溢出。 目前所支持的最长HTML实体为10字节,因此攻击者可以通过2字节的\";\"和\"\0\"来覆盖缓冲区。如果利用堆溢出的话,攻击者仅仅通过单个\"\0\"字符就可以覆盖所附带的内存管理结构,控制之后内存块的内容执行任意代码。
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP在处理HTML实体时存在漏洞,远程攻击者可能利用此漏洞在PHP服务器上执行任意指令。 PHP的HTML实体编码器在每次到达当前缓冲区末尾的时候都会增加其输出缓冲区的大小,但这种检查假设HTML实体的最大长度为8个字符。尽管这种假设在大多数情况下都是正确的,但希腊字符集就可能包含有大于8个字符的实体,因此攻击者就可以通过在输入字符串中包含希腊theta UTF-8字符来触发缓冲区溢出。 目前所支持的最长HTML实体为10字节,因此攻击者可以通过2字节的\";\"和\"\0\"来覆盖缓冲区。如果利用堆溢出的话,攻击者仅仅通过单个\"\0\"字符就可以覆盖所附带的内存管理结构,控制之后内存块的内容执行任意代码。