文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
00×0 前言最近也是边挖src边审计代码 , 总结下最近的php代码审计的一些思路 , 我一般按照顺序往下做 , 限于能力水平 , 可能会有不对或者欠缺的地方 , 希望各位师傅能够指导 。
00×1 前期工作需要的工具(我使用的)PHPStorm|是PHP编程语言开发的集成环境 。
Fotify|代码审计静态扫描工具 , 商业化静态代码扫描工具 , 误报率相对较低 。
seay|源代码审计工具
CodeQl | 高效的QL非商业的开源代码自动化审计工具 。
xcheck| Xcheck 是一款静态应用安全测试工具 , 旨在及时发现业务代码中的安全风险 , 尤其是由不受信输入所触发的安全漏洞 。 检测范围覆盖主流 Web 安全漏洞 , 具备速度快、误报低和准确率高等优点 。
chrome & HackerBar插件00×3 明确目标在审计之前 , 我们首先先确定自己此次审计的目地 , 我觉得会有三种情况
- 为了提升自己的审计经验
- 项目中为了审计出能进一步利用的漏洞 , 一般需要getshell、ssrf这种级别的 。
- 为了挖点洞 , 去换钱或者换cve&cnvd 。
为了提升审计经验 , 我会去重点关注历史漏洞 , 并去复现 。
如果是为了能审出漏洞 , 去用作渗透中的进一步利用 , 那么我觉得 , 可以重点使用xcheck、Fotify等自动化代码审计 , 然后关注下面的文件上传、包含、sql注入等等有严重危害的漏洞
如果是为了挖0day , 搞证书什么的 , 那么全方位按步骤过一遍 , 是不错的选择 。
00×4 判断是否是用了框架判断是否使用了框架 , 是蛮重要的 , 能帮助我们快速定位有用的函数集 , 筛选不需要去看的代码 。
【一>所有资源关注我 , 私信回复“资料”获取<一】
1、200份很多已经买不到的绝版电子书
2、30G安全大厂内部的视频资料
3、100份src文档
4、常见安全面试题
5、ctf大赛经典题目解析
6、全套工具包
7、应急响应笔记
8、网络安全学习路线
一般来说 , 我觉得使用了框架的更好审计一点 , 因为使用了框架的 , 他的函数集文件(各种方法function)会比较规整 , 在某些固定文件夹中 , 清晰可见 , 当然需要我们先对框架有所了解 。
目前比较主流的设计模式是MVC , 即多层模型(M)、视图(V)、控制器(C) , 在此不多赘述 , php的主流框架几乎都使用了MVC设计模式 。
PHP底下的开发框架目前见的比较多的有Laravel , ThinkPHP , yii等 。
4.1. ThinkPHP框架ThinkPHP这里需要区分TP3和TP5的差别 , 首先我们先来看看TP3的目录结构 。 (现在基于TP3的系统都很少了 。。。 了解一下就好
其中 , Application和Public目录下面都是空的 。
Application是存放项目中的重要的一些函数集 , Public是公共文件夹 , 供用户访问的 , 重要的函数集千万不能放在此文件夹下 。
Application目录默认是空的 , 但是第一次访问入口文件会自动生成 , 参考后面的入口文件部分 。 其中框架目录ThinkPHP的结构如下:
另外TP5和TP3实际上差距有点大 , 先看看TP5下载下来的默认文件结构 。 其中在public文件下有个route.php文件 , 它的作用是用于php自带webserver支持 , 可用于快速测试 , 启动命令:php -S localhost:8888 router.php 。 而它的相关网站功能目录也需要从根目录下的index.php入手 。
以下为TP5的目录结构 。
- |有人说浏览器内核有上千万行代码,那它真的有这么复杂吗?
- 程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?
- C++|编写现代C++代码:GSL 4.0.0 正式可用
- PHP|MD5绕过的技巧
- 程序员|程序员该怕吗,又一个人工智能会写代码了
- 阿里巴巴|爆测一周!22年必看最细致代码托管工具测评
- 事业单位|星原AI+RPA低代码平台1.0版本发布
- 数据隐私法|小米通过欧洲数据隐私法 GDPR 年度合规审计
- 易用性|简道云单兰杰:低代码市场竞争加剧,差异化愈发重要|探路2022
- 乔布斯|【2022/01/25】thinkphp源码无差别阅读(二十九)