PHP漏洞挖掘——进阶篇

 

从常见的PHP风险点告诉你如何进行PHP漏洞挖掘,以及PHP渗透测试中的黑盒与白盒。你与PHP大师只有这一篇文章的差距!

一、PHP漏洞挖掘特点

PHP有着移植性好,容易部署,开发简单的特点,多用于中小型web应用的开发。这就导致了PHP应用的价值多体现在整站框架/模板的开发上。

程序员在设计一个站点的时候,永远会把功能实现和开发成本放在***位,而这些恰恰是与安全相矛盾的。快速开发导致的后遗症就是,开发者在还未完全了解原站所有功能的情况下就将二次开发后的网站发布上线了。

很多开源模板被二次甚至三次开发,并冠以其它公司的名字。这类情况并不在少数。

二、PHP漏洞组成

PHP开发出来的系统存在很多特有漏洞,这些漏洞往往隐藏于服务端代码逻辑之中,而且极难通过黑盒的方式发现,传统的渗透性测试几乎无能为力。

于是我们需要转向更深处,看看盒子里面的构造。

[[204160]]

三、PHP白盒审计

一句话描述我们要做的工作

起点 终点

被引用过很多次的一张图

一些特别的代码结构

当然还有“坑爹”的PHP特性

见过很多次的一个界面

三、如何进行漏洞挖掘——常见的PHP风险点

1. 可操作的参数名

如果我们提交URL:

key.php?=1&bbb=2 那么就导致一个xss的漏洞,想象一下如果这个key提交给include()等函数或者sql查询呢。

2. 变量覆盖

a)这时我们提交URL: var.php?a=bye那么***的显示效果应该是什么呢?

b)需要注意的是那个%3d。这个问题也同样会作用于mb_parse_str()

c)在register_globals开启的时候,请求var.php?GLOBALS[a]=aaaa&b=111,效果会如何呢?

d) 在register_globals被禁止的时候,import_request_variables可以同样起到对全局变量赋值的作用。

3. magic_quotes_gpc

魔术引号magic_quotes_gpc其实某些意义上来讲并不算是一个风险点,相反它其实是一个PHP特有的安全设置。一般来讲,懒惰的程序猿们常常认为魔术引号是用来掩盖他们代码缺陷的万用过滤器。可惜那帮无聊的白帽子们总能想出绕过办法..

[[204163]]

4. 下面几种情况可能会导致GPC被绕过1.$_SERVER

  • getenv()得到的变量
  • $HTTP_RAW_POST_DATA与PHP输入、输出流

5. 数据库操作容易忘记使用单引号保护

6. 宽字节注入

因此,各类编码的一编一转,最终被绕进去的很可能是程序员。可能出现问题的编码如下:

举个栗子——比如这段奇葩代码…

  1. <?php 
  2.  
  3. $sql = “SELECT * FROM article WHERE articleid='”.urldecode($_GET[id]).”‘”; 
  4.  
  5. ?> 

7. GPC的高级“用法”

  1. //提交                        ’ 
  2. //魔术引号处理         \’ 
  3. //我们要的字符         \ 

8. eval/preg_replace命令执行

命令执行无疑是PHP漏洞中最耸人听闻的一类了。简简单单一个请求就能够一步拿shell,这是多少黑客们梦寐以求的事情了…然而对于程序员来讲,犯下这样的错误往往就在一念之间。

[[204164]]

9. ThinkPHP一键getshell

preg_replace的e修饰符会使进行替换时的replacement参数以PHP方式执行,又由于“作用导致分割后的第二个子串(参数值)被当做PHP函数执行。

http://www.11jia.net/index.php/module/action/param1/$%7B@phpinfo()%7D

10. 见命令执行函数

11. 其它PHP漏洞

session_destroy()任意删除文件漏洞(php4<4.3 php5<5.14):

当我们提交构造

  1. val.php?del=1cookie:PHPSESSID=/../1.php)时,由于session_destroy的作用会删除sess_/../1.php 

12. 特殊字符截断

著名的null字符截断————

提交“action=/etc/passwd%00”中的“%00”将截断后面的“.php”

13. 当然还有一些在梦游的程序员…

四、黑盒与白盒的统一

1. 黑盒与白盒

软件测试中的黑盒与白盒

PHP渗透测试中的黑盒与白盒

典型的两种思路

2. 平时的学习应该如何加强

对于PHP站点的web安全评估需要引入的几点:

五、学习资料

  • http://www.php100.com/
  • http://www.5idev.com/
  • http://www.cnseay.com/
  • http://www.w3school.com.cn/
  • http://bbs.phpchina.com/
  • http://www.php-security.org/
  • http://bugs.php.net/http://sebug.net/

原文链接:http://blog.nsfocus.net/php-vulnerability-mining/

【本文是专栏作者“绿盟科技博客”的原创稿件,转载请通过联系原作者获取授权】

戳这里,看该作者更多好文

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/144776.html<

(0)
运维的头像运维
上一篇2025-03-10 07:56
下一篇 2025-03-10 07:57

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注