SEO基础

SEO基础

Products

当前位置:首页 > SEO基础 >

如何将WordPress网站项目适应不同国家的语言需求?

96SEO 2026-02-19 22:24 45


漏洞原理

CVE-2024-4577是CVE-2012-1823这个老漏洞的绕过php

如何将WordPress网站项目适应不同国家的语言需求?

简单来说就是使用cgi模式运行的PHP根据RFC3875的规定Apache会将请求的QUERY_STRING作为命令行参数交给php-cgi执行。

攻击者利用这个特性就可以-d选项修改PHP的配置项最后执行任意代码。

if((query_string

strdup(query_string);php_url_decode(decoded_query_string,

strlen(decoded_query_string));for

{/*

}修复方式就是在获取到QUERY_STRING后检查其开头是否是横线-如果是-则跳过后面对参数的解析。

而Orange

这次发现的CVE-2024-4577实际上就是横线检查的绕过来说下原理。

Page非Unicode编码在main()函数获取argv的时候会自动执行编码的转换其中就会涉及到所谓的Best-Fit。

cp936

gbk

Best-Fit是一种字符映射策略用以解决源代码页中的字符在目标代码页中没有直接等价物时的问题。

在将Unicode代码页中字符转换成非Unicode代码页字符时如果无法找到对应的字符就会按照Best-Fit预定义的一个转换表进行转换。

Mapping转换表是https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit936.txt

其中有一些有趣的字符转换比如0xaa在转换后会变成a0xb2在转换后会变成20xad在转换后会变成-。

所以这里我们就可以利用Best-Fit这个特性使用%ad来代替横线-。

PHP在执行上述检查的时候会认为命令行的第一个字符是0xAD实际上main()函数的argv的第一个字符已经被Windows按照best-fit

我们可以编写下面这个简单的Python代码来复现best-fit这个trick

os.system(php

但我们多测试几次就会发现并不是所有程序的所有参数都会进行Best-Bit的转换我们测试下面几个命令

php

阅读PHP代码就会发现有一部分选项是直接使用的main()函数的argv另一部分选项是从Windows

API

GetCommandLineW()函数获取。

由GetCommandLineW()获取的这部分参数仍然保持原样没有转换成横线最后无法正确执行。

Orange在文章中提到XAMPP默认配置就可以被利用。

最初读到这里的时候我会以为XAMPP是以php-cgi模式运行的PHP服务器但下载安装XAMPP后我发现PHP实际上是以Apache

2.0

这时候就非常有趣了为什么XAMPP仍然可以在不修改任何配置文件的情况下直接利用呢为什么很多人在实际测试中会遇到500错误呢

比如默认情况下我们需要将php解释器放在cgi-bin目录下这样用户通过访问/cgi-bin/php/dir/script.php即可执行/dir/script.php。

这个操作是很危险的所以PHP增加了如下配置cgi.force_redirect1开启了这个选项默认开启以后只有经过了重定向规则请求才能执行。

Apache在重定向rewrite的时候会增加一个名为REDIRECT_STATUS的环境变量cgi.force_redirect就是依赖这个环境变量来判断是否经历了重定向。

如果非Apache服务器我们就需要设置一下cgi.redirect_status_env来指定php判断请求是否经历重定向的条件。

我们下载XAMPP后查看PHPINFO可以发现其运行PHP的模式是“Apache

2.0

Handler”。

在这个模式下PHP会被编译成Apache的一个模块dll动态链接库并由Apache来调用执行。

我们在apache/conf/extra/httpd-xampp.conf中可以找到相关的配置

LoadFile

/program/xampp/xampp/php/php8ts.dllLoadFile

/program/xampp/xampp/php/libpq.dllLoadFile

/program/xampp/xampp/php/libsqlite3.dllLoadModule

php_module

/program/xampp/xampp/php/php8apache2_4.dllFilesMatch

\.php$SetHandler

application/x-httpd-php/FilesMatchFilesMatch

\.phps$SetHandler

application/x-httpd-php-source/FilesMatch可见这里所有的.php后缀文件会被交给php8apache2_4.dll来执行这和PHP

如何正常配置使用PHP

如果是部署基于脚本的CGI服务器我们需要将可执行文件放置在某个目录下比如/cgi-bin/hello.cgi。

这个hello.cgi脚本的第一行是“shebang”用以指定当前脚本的解释器比如

!/bin/bash

http://yourdomain.com/cgi-bin/hello.cgi。

事实上几乎没有PHP应用会这么编写代码相比于这种将脚本直接作为可执行文件的方法PHP另辟蹊径专门设计了一个SAPI就叫php-cgi。

调用php-cgi执行一个PHP文件时它会负责输出“Content-Type”头。

比如执行echo

?php

所以类似于hello.cgi我们也可以直接将php-cgi这个可执行文件映射到/cgi-bin/目录下然后再使用Apache的Action指令将PHP相关请求“重定向”到php-cgi上最后执行PHP代码。

此时配置文件如下

/program/xampp/xampp/php/Directory

/program/xampp/xampp/htdocsAddHandler

.phpAction

ScriptAlias指令的作用是将/php-cgi/路径指向/program/xampp/xampp/php/目录

Action指令的作用就是将所有对.php文件的请求都使用/php-cgi/php-cgi.exe也就是/program/xampp/xampp/php/php-cgi.exe来执行。

Apache在调用php-cgi的时候会设置环境变量REDIRECT_STATUS。

php-cgi为了确认这个请求确实是由Action指令执行的而不是用户直接请求的增加了一个开关“cgi.force_redirect”默认开启。

开启这个开关的情况下php-cgi会验证此次执行是否包含环境变量REDIRECT_STATUS。

了解了php-cgi正常的部署方式我们回来看下XAMPP。

虽然XAMPP执行PHP时使用的是Apache

2.0

CGI预留了一个口子就是使用ScriptAlias指令把php-cgi.exe映射到了Web目录下。

上述两个关键指令XAMPP中使用了ScriptAlias指令但是Action指令被注释了

这本身也没太大问题因为有cgi.force_redirect的限制在没有Action指令的情况下直接访问php-cgi.exeREDIRECT_STATUS环境变量不会被设置。

我们可以做个测试直接请求/php-cgi/php-cgi.exe会返回500错误查看日志会有Security

php-cgi.exe

因为我们前面说到对于REDIRECT_STATUS环境变量的限制是cgi.force_redirect这个开关来决定的。

那么我们直接利用CVE-2024-4577漏洞添加-d

cgi.force_redirect0关闭这个开关即可绕过限制了。

值得注意的是因为在高版本PHP中allow_url_include这个开关已经被废弃所以会抛出一个警告导致Content-Type头输出失败也会返回500。

网上很多人没有注意到这一点我们需要添加一个-d

PHP没有修复的另一种cgi.force_redirect绕过

前面我们使用-d

cgi.force_redirect0关闭PHP的检查实际上PHP中有另一个Bug也可以导致cgi.force_redirect的绕过而且最新版本仍然没有修复

我们查看PHP源码sapi/cgi/cgi_main.c中对于REDIRECT_STATUS环境变量的检查代码

​/*

!getenv(CGIG(redirect_status_env))))

{zend_try

{SG(sapi_headers).http_response_code

400;PUTS(bSecurity

php_message_handler_for_zend:839

because*

SG(request_info).path_translated

invalid

可见除了getenv(REDIRECT_STATUS)以外还有一个getenv(HTTP_REDIRECT_STATUS)这两个环境变量都可以用于cgi.force_redirect的检查。

而第二个环境变量HTTP_REDIRECT_STATUS是由HTTP_开头。

httpoxy漏洞就是因为很多HTTP客户端会使用HTTP_PROXY环境变量的值作为代理因为这个环境变量是HTTP_开头导致我们可以通过HTTP请求头控制造成漏洞

PHP这里也是一样的问题环境变量HTTP_REDIRECT_STATUS原本是为了兼容Netscape但它是由HTTP_开头所以用户可以直接控制。

PHP这里也是一样的问题环境变量HTTP_REDIRECT_STATUS原本是为了兼容Netscape但它是由HTTP_开头所以用户可以直接控制。

cgi.force_redirect0并添加一个HTTP头Redirect-Status:

虽然CVE-2024-4577漏洞在最新的PHP版本中已经修复了但这个环境变量HTTP_REDIRECT_STATUS仍然可以导致cgi.force_redirect的绕过。



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback