【代码审计-PHP】基于Thinkphp框架开发的
前言:
介绍:
博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。
殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。
擅长:对于技术、工具、漏洞原理、黑产打击的研究。
C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。
导读:
面向读者:对于网络安全方面的学者。
本文知识点(读者自测):
(1)Thinkphp基本结构(√)
(2)基本函数(√)
(3)危险函数(√)
(4)已有漏洞(√)
(5)漏洞检测工具(√)
让读者如虎添翼
审计博文 类型 状态 【代码审计-PHP】phpStudy(新版) + PhpStorm + XDebug动态调试 PHP 已发布 【代码审计-PHP】审计方法、敏感函数、功能点 PHP 已发布 【代码审计-PHP】基于Thinkphp框架开发的 PHP 已发布 【代码审计-.NET】基于.NET框架开发的基本特征 .NET
已发布 【代码审计-.NET】基于.NET框架开发的代码审计 .NET 已发布 【代码审计-JAVA】基于javaweb框架开发的 JAVA 已发布 【代码审计-JAVA】javaweb代码审计思路 JAVA 已发布 2023将更新更多,敬请期待 —— ——
目录
一、Thinkphp基本结构
1、框架目录
2、判断框架、版本
3、入口文件
4、资源文件
5、调试开关
6、URL路由
二、基本函数
1、请求
2、交互:
3、响应:
三、危险函数
四、已有漏洞
五、漏洞检测工具
六、工具
一、Thinkphp基本结构
1、框架目录
www WEB部署目录(或者子目录) ├─application 应用目录 │ ├─common 公共模块目录(可以更改) │ ├─module_name 模块目录 │ │ ├─common.php 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录 │ │ └─ ... 更多类库目录 │ │ │ ├─command.php 命令行定义文件 │ ├─common.php 公共函数文件 │ └─tags.php 应用行为扩展定义文件 │ ├─config 应用配置目录 │ ├─module_name 模块配置目录 │ │ ├─database.php 数据库配置 │ │ ├─cache 缓存配置 │ │ └─ ... │ │ │ ├─app.php 应用配置 │ ├─cache.php 缓存配置 │ ├─cookie.php Cookie配置 │ ├─database.php 数据库配置 │ ├─log.php 日志配置 │ ├─session.php Session配置 │ ├─template.php 模板引擎配置 │ └─trace.php Trace配置 │ ├─route 路由定义目录 │ ├─route.php 路由定义 │ └─... 更多 │ ├─public WEB目录(对外访问目录) │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─thinkphp 框架系统目录 │ ├─lang 语言文件目录 │ ├─library 框架类库目录 │ │ ├─think Think类库包目录 │ │ └─traits 系统Trait目录 │ │ │ ├─tpl 系统模板目录 │ ├─base.php 基础定义文件 │ ├─convention.php 框架惯例配置文件 │ ├─helper.php 助手函数文件 │ └─logo.png 框架LOGO文件 │ ├─extend 扩展类库目录 ├─runtime 应用的运行时目录(可写,可定制) ├─vendor 第三方类库目录(Composer依赖库) ├─build.php 自动生成定义文件(参考) ├─composer.json composer 定义文件 ├─LICENSE.txt 授权说明文件 ├─README.md README 文件 ├─think 命令行入口文件
2、判断框架、版本
在源码中搜Thinkphp,如果有就是Thinkphp框架
搜THINK_VERSION可以看到相应的版本信息
3、入口文件
关键词APP_PATH
定义应用目录、框架入口文件
按住Ctrl再点击这个目录,就会在左边目录栏跳转到这个目录位置
4、资源文件
均放在public的目录下,找不到的话会爆路径错误情况
public ├─index.php 应用入口文件 ├─static 静态资源目录 │ ├─css 样式目录 │ ├─js 脚本目录 │ └─img 图像目录 │─router.php 快速测试文件 └─.htaccess 用于apache的重写
5、调试开关
审计的时候,需要将false改为true
如果直接搜debug的话,可能会搜到convention.php上的debug
默认情况下:// 应用调试模式'app_debug' => false,// 应用Trace'app_trace' => false,
6、URL路由
①方法/变量值进行传参 http://domainName/index.php/模块/控制器/操作/方法/变量值eg:访问www.xxx.com/index.php/index/index/index 为application目录下的index模块下的从contraller目录下的index文件下的index函数②变量传参 http://tp5.com/index.php?s=/index/Index/index
二、基本函数
1、请求
Request对象进行调用
获取请求变量
利用:寻找用户可控的变量(且传入给有一定功能的函数)
1、param()
获取所有请求变量
param('指定的函数对象','未获取到时的默认值','对于获取到的值的处理函数')
$request->param():用于获取所有的变量(优先级:路由变量 > 当前请求变量($_POST) > $_GET变量
2、get()
获取$_GET变量
$request->get('指定的函数对象')
echo input('get.函数对象')
3、
post()获取$_POSTfile()获取$_FILE
ip()获取请求IP
method()获取请求方法
pathInfo()获取控制器和方法名的路径
rootInfo()获取路由
2、交互:
配置:
1、代码过滤
2、过滤器过滤
3、模块过滤
4、预编译,使用占位符
……
利用:
1、判断代码绕过条件
2、过滤器漏洞
3、寻找未使用过滤模块的地方
4、不安全的过滤
……
3、响应:
1、配置自动输出
配置:在config.ph中设置default_return_type更改默认返回类型
利用:寻找模板存在的漏洞、寻找未引用模板的目录
2、函数输出
配置:
return 格式类型json($data,201,['set_cookie'=>'xxxx'])
利用:寻找用户可控值
3、重定向
eg:
if($userid>=0){$this->success("提示语","user跳转页面")}
else{ $this->error("错误提示语")}利用:看是否能利用重定向漏洞,跳转到其他不安全地方
三、危险函数
类型 危险函数 SQL select、insert、update、POST、$REQUEST、mysql_query、mysqli 文件上传 $_FILES、move_uploaded_file、!file_exists、type="file" 文件读写 file_get_contents()、file_put_contents()、move_uploaded_file()、highlight_file()、fopen()、readfile()、fread()、fgetss()、fgets()、parse_ini_file()、show_source()、file()、rename() 文件删除 unlink & delete()、rmdir() 文件包含 include、include_once、require、require_once 命令执行 system()、exec()、shell_exec()、passthru()、pcntl_exec()、popen()、proc_open() 代码执行 eval()、assert()、preg_replace()、call_user_func()、call_user_func_array()、array_map() xss print、print_r、echo、printf、sprintf、die、var_dump、var_export 变量覆盖关 $$、parse_str()、extract()、importrequestvariables() 反序列化 serialize()、unserialize()、__construct__ …… ……
四、已有漏洞
针对未公开的漏洞
根据描述寻找到未公开的漏洞点
五、漏洞检测工具
针对已公开的漏洞
大佬集成了一个工具箱,可以关注公众号以后免费下载
六、工具
Seay
RIPS
CheckMarx
Fortify
VCG
Kunlun-M
网络安全三年之约
First year
掌握各种原理、不断打新的靶场
目标:edusrc、cnvd
主页 | 教育漏洞报告平台 (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/
second year
不断学习、提升技术运用技巧,研究各种新平台
开始建立自己的渗透体系
目标:众测平台、企业src应急响应中心
众测平台 URL 漏洞盒子 漏洞盒子 | 互联网安全测试众测平台 火线安全平台 火线安全平台 漏洞银行 BUGBANK 官方网站 | 领先的网络安全漏洞发现品牌 | 开放安全的提出者与倡导者 | 创新的漏洞发现平台 360漏洞众包响应平台 360漏洞云漏洞众包响应平台 补天平台(奇安信) 补天 - 企业和白帽子共赢的漏洞响应平台,帮助企业建立SRC 春秋云测 首页 雷神众测(可信众测,安恒) 雷神众测 - BountyTeam 云众可信(启明星辰) 云众可信 - 互联网安全服务引领者 ALLSEC ALLSEC 360众测 360众测平台 看雪众测(物联网) https://ce.kanxue.com/ CNVD众测平台 网络安全众测平台 工控互联网安全测试平台 CNCERT工业互联网安全测试平台 慢雾(区块链) Submit Bug Bounty - SlowMist Zone - Blockchain Ecosystem Security Zone 平安汇聚 http://isrc.pingan.com/homePage/index
互联网大厂 URL 阿里 https://asrc.alibaba.com/#/ 腾讯 https://security.tencent.com/ 百度 https://bsrc.baidu.com/v2/#/home 美团 https://security.meituan.com/#/home 360 https://security.360.cn/ 网易 https://aq.163.com/ 字节跳动 https://security.bytedance.com/ 京东 https://security.jd.com/#/ 新浪 http://sec.sina.com.cn/ 微博 https://wsrc.weibo.com/ 搜狗 http://sec.sogou.com/ 金山办公 https://security.wps.cn/ 有赞 https://src.youzan.com/
Third Year
学习最新的知识,建全自己的渗透体系
目标:参与护网(每一个男孩子心中的梦想)
时间:一般5月面试,6/7月开始(持续2-3周)
分类:国家级护网、省级护网、市级护网、重大节日护网(如:建党、冬奥等)
【代码审计-PHP】基于Thinkphp框架开发的相关推荐
- php源码 拼车网顺风车_基于ThinkPHP框架开发的在线微信拼车系统完整PHP源码+支付微信支付...
源码介绍 基于ThinkPHP框架开发的在线微信拼车系统主要是基于微信的在线拼车系统,也是一款不错的微信号管理系统,该微信拼车系统主要是基于ThinkPHP3.2.3框架开发,主要功能有发布租车信息. ...
- 微信会员php源码,基于ThinkPHP框架开发的在线微信拼车系统完整PHP源码-深蓝源码会员专享...
源码介绍 基于ThinkPHP框架开发的在线微信拼车系统主要是/基于微信的在线拼车系统,也是/一款不错的微信号管理系统,该微信拼车系统主要是/基于ThinkPHP3.2.3框架开发,主要功能有发布租车 ...
- 基于ThinkPHP框架开发的漂亮的家装修公司网站PHP源码
源码介绍 基于ThinkPHP框架开发的仿生活家装修公司网站是一款采用ThinkPHP3.2.3内核开发的一款装饰公司网站PHP源码,整个界面主要仿照生活家装饰公司的风格,网站界面大气,直接安装使用即 ...
- php学生注册管理系统源码,基于ThinkPHP框架开发的响应式学生信息后台管理系统PHP源码...
基于 ThinkPHP 框架开发的响应式学生信息后台管理系统 PHP 源码 此款源码用来学习练手还是可以的,需要的沃友们下载看看吧. 注:图片来自资源邦 基于 ThinkPHP 框架开发的响应式学生信 ...
- ThinkPHP php 仿千图网源码_PHP微信表白墙源码 基于ThinkPHP框架开发
PHP微信表白墙源码是基于ThinkPHP框架编写的,全站使用ajax无刷新请求和提交数据,使用非常流畅,用户体验很高. 本程序实现的功能是: 头像:头像使用了QQ头像取消了之前的随机显示头像,新增了 ...
- php表白墙源码 怎么用,基于ThinkPHP框架开发的微信表白墙PHP源码
源码介绍 微信表白墙PHP源码是基于ThinkPHP框架编写的,全站使用ajax无刷新请求和提交数据,使用非常流畅,用户体验很高. 本程序实现的功能是: 头像:头像使用了QQ头像取消了之前的随机显示头 ...
- php学生考勤在线请假系统,学生请假管理系统: 使用PHP开发的学生请假管理系统,基于thinkphp框架开发...
请假管理系统 最近有一个公众号公布了我的项目,大家都在问SQL文件在哪里,所以我在这里解释一下,我还在上学,这个项目是给学院写的一个请假管理系统,他们正在使用,所以不太方便把这个SQL发布出去,您如果 ...
- 本地门户 PHP,基于ThinkPHP框架开发的本地智慧生活门户O2O系统V3.9.9全新界面商业版+PC和WAP端多个功能+商家+物业+社区+街道办独立后台...
源码介绍 NIUCMS智慧O2O生活门户是一个多元化的生活服务平台,包含城市新闻.城市自媒体.城市招聘.城市租房.城市商家.城市智慧小区.城市美食.城市贴吧以及城市智慧城市等,源码基于ThinkPHP ...
- php仿糗事百科,基于thinkphp框架开发仿糗事百科笑话系统
安装环境: 需要PHP版本5.3以上+MYSQL+ZEND+伪静态 基本功能介绍 1.会员中心(发帖.审贴.动态.我的投稿.站内消息.我的礼品(积分记录.兑换记录).个人资料(资料修改.头像修改.密码 ...
最新文章
- 分布式文件系统Hadoop
- [html] 你有使用过ins标签吗?说说它的用途
- tcp四次挥手,为什么是四次?
- Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)
- jvm学习笔记(1)——java虚拟机内存区域
- async 与 await 的用法详解
- 火狐浏览器linux最新版本下载,Firefox9 for Linux下载
- outlook域用户名怎么填_家谱制作软件怎么做成电子版
- Oracle的卸载过程步骤
- 数组操作--微信小程序学习教程 1
- 记小程序uniapp 语音播放
- [lua]紫猫lua教程-命令宝典-L1-01-02. 变量
- 最大子矩阵问题----悬线法
- FPGA信号处理系列文章——定点数据截位处理
- 多重if-else的精简方式
- redis expire方式设置缓存时间的坑
- SCI论文思维导图:写作技巧(2)
- 忍者必须死代码 免费
- C语言 setitimer函数
- 百度UEdit富文本编辑器的使用
热门文章
- Forexclub:欧美价格刷新三个月高位,维持在1.0200以上
- 智慧社区管理系统改造方案
- Win10连接上蓝牙耳机后断开没声音的问题
- android 软键盘工具类,Android开发之弹出软键盘工具类简单示例
- c语言程序设计读书心得,《C语言程序设计》读书心得{zx}.docx
- 七夕送女朋友什么礼物?七夕好用、实用好物推荐
- Datawhale打卡活动 Kaggle Spaceship Titanic Day4
- 全球与中国钓鱼和狩猎设备市场运营态势及未来发展前景预测报告2021年版
- 【unity学习】利用winmm.dll读取JoyStick的摇杆情况与按键情况,并可以自定义绑定函数
- 操作系统--进程同步