php源码审计_代码审计入门cms

php源码审计_代码审计入门cms目录一:代码审计的定义二:为什么选择PHP学习代码审计三:入门准备四:PHP常见的套路4.1 代码结构4.2 目录结构4.3参考项目五:如何调试代码六:代码审计的本质一:代码审计的定义通过阅读一些程序的源码去发现潜在的漏洞,比如代码不规范,算法性能不够,代码重用性不强以及其他的缺陷等等从安全人员的角度来看是:查找代码中是否存在安全问题,推断用户在操…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目录

一:代码审计的定义

二:为什么选择PHP学习代码审计

三:入门准备

四:PHP常见的套路

4.1 代码结构

4.2 目录结构

4.3 参考项目

五:如何调试代码

六:代码审计的本质


一:代码审计的定义

通过阅读一些程序的源码去发现潜在的漏洞,比如代码不规范,算法性能不够,代码重用性不强以及其他的缺陷等等

从安全人员的角度来看是:查找代码中是否存在安全问题,推断用户在操作这个代码对应功能的时候,能否跳出开发人员设想的场景

和逻辑,去给网站数据或者服务器造成危害。例如在购物结算的时候,正常用户想着付款结束购买,而我们要想着这个功能是不是存

在0元购买等逻辑漏洞。

其次代码审计可以发现一些扫描器难以发现的细节,比如某一个特定的功能场景,只有当你传入特定的参数值的时候,才会触发这个

漏洞,这种情况是扫描器很难发现到的。

二:为什么选择PHP学习代码审计

PHP是天生用来开发web程序的,正如之前的梗”PHP是世界上最好的语言”,最主要的原因是PHP编写的各种程序,如cms 商城 论

坛 博客等占据了市场上的绝大份额,在今后的漏洞挖掘中经常遇得到。其次,PHP官方的中文资料文档非常丰富,适合我们每个阶段

的人去学习

链接:http://php.net/manual/zh/index.php

三:入门准备

1.PHP的编程基础

2.环境搭建能力(由于我们的环境是为了让代码跑起来,并不是真正上线,所以为了方便推荐使用集成工具面板,例如PHP study

和宝塔)

四:PHP常见的套路

这些所谓的套路在其他编程语言中也存在,只是一个通用与适用的问题,我们要学会举一反三

4.1 代码结构

常见的代码结构有两种:

1.HTML与PHP代码混编,特征就是一个url对应一个PHP页面,例如WordPress的登陆页面http://wordpress.com.test/wp-login.php

2.MVC模式

          把代码拆分为Model View Controller三部分结构,

         模型一般是数据库操作的相关的代码,例如jsp中的javabean用来设计数据的属性和行为,提供获取属性和设置属性的get/set方法

         视图通常是HTML代码和其他编程语言的混编结果,可以把一些控制器传递过来的结果,进行一定的拼接

         控制器的代码一般是接受数据,做一些数据的校验,权限的判定,调用一些模型的数据库操作代码,把获得到的数据,传递给

视图,然后视图把装好的HTML代码发送到客户端

MVC的常见表现形式是通常有一个入口文件,这个入口一般是index.php

4.2 目录结构

  • 放引用的库或者插件,文件夹名字一般叫librarie/lib/plugin,
  • 现代的PHP项目还有一个vendor文件夹,是PHP的包管理器安装依赖代码存放的路径
  • 视图代码文件夹名称一般叫layout,theme,template,view
  • 控制器文件夹一般叫controller
  • 公用的一些代码文件夹一般叫common
  • 一些工具函数可能放helper/util/tool文件夹里
  • 配置文件放在config文件夹里
  • components或modules:这里有mvc的代码,把功能互相独立出来
  • route.php:对不同的url调用不同的代码

4.3 参考项目

https://github.com/fecshop/yii2_fecshop

https://github.com/PrestaShop

https://github.com/opencart/opencart

https://github.com/joomla/joomla-cms

五:如何调试代码

1.直接修改源代码,利用var_dump()打印变量,然后在不同分支里面用echo字符串的形式去标记,然后用die函数终止代码

2.使用xdebug扩展

3.网络相关的调试,可以通过wiresharek,看网络通讯

六:代码审计的本质

代码审计是一种经验的对抗和压制:如果我知道的东西比你多,经验就能压制你,如果你的功能没有考虑到这一点,那么就会存在

漏洞。例如对于富文本xss过滤方案,业内最优解已经产生,而你编程的时候没有使用最优解,而是从网上超了一段代码来使用,那

么在审计的时候就产生了绝对压制。

如果你的水平和开发的水平不。相上下,那么就只能根据对方的代码或者算法去设想和构造不同的场景+参数,甚至是通过fuzz来验

证是否存在漏洞。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186924.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 请简要描述在定点DSP处理器上实现浮点运算的基本步骤_74ls161分频器

    请简要描述在定点DSP处理器上实现浮点运算的基本步骤_74ls161分频器 http://bbs.elecfans.com/jishu_486119_1_1.html   7.1  定点数和浮点数概念   如果小数点的位置事先已有约定,不再改变,此类数称为“定点数”。相比之下,如果小数点的位置可变,则称为“浮点数”(定点数的本质是小数,整数只是其表现形式)。 7.1.1  定点数 …

    2025年9月29日
    3
  • oracle级plsql安装教程,PLSQL 数据下载库安装使用教程,步骤解析

    oracle级plsql安装教程,PLSQL 数据下载库安装使用教程,步骤解析安装Oracle数据库一、首先安装Oracle数据库*64。二、下载并安装安装PLSQLDeveloper根据计算机的系统位数,从下载的安装包中选择合适的程序,双击“运行”以打开下一个PLSQL软件安装向导。四、根据协议,选中“我接受…”选项,然后单击以下内容。五、选择默认情况下安装在C盘目录中的安装位置,单击“更改”按钮自定义软件安装路径,确认后单击“下一步”。选择安装方式,标准(程序设置…

    2022年6月22日
    31
  • c构造函数详解_构造函数有什么用

    c构造函数详解_构造函数有什么用c++构造函数详解。(构造函数的分类、拷贝构造函数)

    2025年10月7日
    2
  • 大数据的简要介绍[通俗易懂]

    大数据的简要介绍[通俗易懂]大数据【介绍】1)大数据是什么2)大数据特点3)大数据能做什么(海量数据背景下)4)大数据项目流程1)大数据是什么指数据集的大小超过了现有典型数据库软件和工具的处理能力的数据2)大数据特点①海量化(Volume):数据量从TB到PB②多样化(Variety):数据类型复杂,超过80%的数据是非结构化的③快速化(Velocity):数据量在持续增加(两位数的年增长率)数据的处理速度要求高④高价值(Value):在海量多样数据的快速分析下能够发挥出更高的数据价值3)大数据能做什么(海量

    2022年5月24日
    117
  • macos dock栏_苹果mac使用技巧

    macos dock栏_苹果mac使用技巧Dock栏就是Mac电脑屏幕下方的那一排快捷键,我们可以把自己常用的程序放到Dock上面,这样可以帮助我们快速的打开自己想要打开的文件和程序,默认情况下,OSX的Dock置于屏幕的底部。当你第一次进入MacOSX的桌面,Dock中内置了许多应用程序,怎么用好它?其实,我们不仅可以自定义Dock中显示的内容,而且你还可以调整Dock的大小、位置等等,下面给大家介绍几个关于Dock栏使用技巧,让大家使用Mac电脑更加得心应手。一、添加应用程序,文件夹和文件到Dock1.打开你的

    2025年8月27日
    6
  • VMware虚拟机安装xp系统

    VMware虚拟机安装xp系统安装vmware安装xpxp使用微软原版,vm版本15.5安装后,可以连接网络。资源提取码:链接:https://pan.baidu.com/s/1Vxrds1rjRMGcRjlGaDVy0Q提取码:0101–来自百度网盘超级会员V2的分享要实现文件共享,需要关机,然后设置,允许共享,然后开机,就可以了。…

    2022年8月16日
    5

发表回复

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

关注全栈程序员社区公众号