PHP项目&TP框架&SQL&XSS&架构&路由&调试&写法
开发基础-TP框架-入口&调试&路由&写法等
参考手册-TP5开发手册-为了掌握了解框架
首页文件看APP_PATH定义-为了后期分析核心代码

全局搜索:THINK_VERSION,为了后期分析此版本是否存在漏洞。

参考手册-本地代码案例对比,为了后期分析定位代码块或测试漏洞。
配置文件开关(app_debug,app_trace,debug),为了后期出现问题分析问题。


本地代码案例URL访问,测试注入,为了后期挖掘漏洞第一时间判断问题。
点击查看代码
对框架开发的源码去分析漏洞
1.看写法,存在没有官方保护过滤
2.看版本漏洞,存在有官方保护过滤,但是有绕过漏洞
3.高手直接挖0day,直接审计框架的防护,写绕过
常规架构
没有看到过滤函数 没有过滤
url路径是文件路径对应
MVC架构
没有看到过滤函数 没有过滤
url路径是文件路径路由对应
框架架构
没有看到过滤函数 不代表没有过滤
1.非官方写法 没有过滤
2.半吊子写法 可能没过滤
3.完整官方写法 受到官方过滤(如果过滤考虑不周不全也会有漏洞)
url路径是文件路径路由对应
一个源码采用TP框架,但是写法没有按照官方写法,思路:常规架构挖掘
一个源码采用TP框架,但是写法按照官方写法,思路:看版本漏洞、挖框架漏洞
如果tp5爆漏洞,哪个会受到影响:
1.xiaodicms tp5开发的 写法没有按照官方写法(可能受到影响)
2.xiaosedicms tp5开发的 写法按照官方写法(会受到影响)
3.xiaoseccms tp5开发的 写法按照官方写法(会受到影响)
CNVD拿1day-TP框架-SQL注入&XSS-HSYCMS
SQL注入
CNVD官网搜索相关漏洞。

下载源码,将调试开关都开启。通过搜索THINK_VERSION,发现是tp框架。访问新闻页面,看下SQL执行语句。

触发了show.php页面,看下源代码,虽然是官方写法,但是从SQL执行语句中可以看到有注入点。


尝试注入,并监控SQL执行语句。


成功执行我们注入的SQL语句。
这里只需要将"$id=input('id');"改成"$id=input('id/d');"将传参的参数强转为整数就不会存在漏洞了。
XSS
先进行黑盒测试,XSS常见的地方有留言板之类的功能处。故在留言板处进行测试。

提交留言,看下触发的地址。

找到对应地址的文件。

但是显示功能不在这里,去后台找到留言触发的地方。

找到对应显示功能的代码。

没有存在任何过滤,故存在XSS漏洞。
某cms源码-TP框架-SQL注入-违规weipan源码
找到入口文件。

在application目录下。访问特定地址。

找到对应代码。

看下SQL执行语句。

根据SQL执行语句,找到对应的代码。

尝试注入,监听SQL语句。

发现需要通过引号闭合,但是tp框架中会自动对引号进行转义,所以这里只能对第二处进行SQL注入。另外还可以根据当前tp的版本号找版本漏洞。

参考:https://www.yii666.com/blog/357920.html
PHP项目&TP框架&SQL&XSS&架构&路由&调试&写法的更多相关文章
- tp框架版本的thinksnsnv4开启调试模式
首先说下开启调试模式完整操作. 1.\config\config.inc.php配置文件中增加两个键值对 'APP_DEBUG' => true, 'SHOW_PAGE_TRACE' => ...
- TP框架项目部署linux大小写问题
TP框架项目部署linux大小写问题
- Vue框架(三)——Vue项目搭建和项目目录介绍、组件、路由
Vue项目环境搭建 1) 安装node,在官网下载好,然后在本地安装 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm ins ...
- TP框架 基础1
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- TP框架---thinkphp基础知识
php框架 发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...
- Spring Framework(框架)整体架构 变迁
Spring Framework(框架)整体架构 2018年04月24日 11:16:41 阅读数:1444 标签: Spring框架架构 更多 个人分类: Spring框架 版权声明:本文为博主 ...
- tp框架总体学习总结(一)
一.TP框架的下载和安装 Tp框架下载网址:http://www.thinkphp.cn/ 在wamp的www目录下创建一个目录tpshop目录 1. 将下载好的包压缩后将文件包里的所有文件复制到创 ...
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- TP框架基础
什么是TP框架: 一堆代码的集合,里边有变量.函数.类.常量,设计模式MVC.AR数据库.单例等等.全称是Tinkphp框架; 为什么使用框架: 使用框架将全部精力集中在业务层次,节省50-60%的工 ...
- tp框架中的一些疑点知识-5
关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...
随机推荐
- 将input 中的小写字母转化为大写字母
小写转换为大写,使用toLocaleUpperCase() options.element.find(".CarNumber").textbox({ label: '车牌号:', ...
- yum 安装失败解决思路$releasever(curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error")
问题 公司使用刀片机的系统版本是CentOS 7.9.2009(Core),本人在重新安装虚拟机时,也使用对应的系统版本,在安装软件时,yum无法正常使用,一开始觉得,centos的release版本 ...
- 复原docker中容器的启动命令
复原 docker 容器的启动命令 前言 查看 docker 容器的启动命令 参考 复原 docker 容器的启动命令 前言 不规范的操作,在启动 docker 容器,没有留命令脚本,或者没有使用 d ...
- Spring声明式事务控制配置
xml配置(配置文件) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...
- P7907 [Ynoi2005] rmscne题解
题目链接:rmscne 神仙经典数据结构难题.看到求区间种类数有关的东西,需要下意识的反应到经典老题 HH的项链,这里可以学习我这篇 题解.具体学习下扫描线怎么做这类东西的. 看看本题,首先处理区间查 ...
- TStringList,的IndexOf,find,IndexOfName 例子
a=wokao b=in c=wori d=ri e=我靠 f=我插 procedure TForm1.Button1Click(Sender: TObject); var MyList: TStri ...
- OGG常用运维命令
1. 管理(MGR)进程命令 INFO MANAGER 返回有关管理器端口和进程id的信息. START MANAGER 开启管理进程 STATUS MANAGER ...
- SP9494 ZSUM - Just Add It 题解
题目传送门 前置知识 快速幂 解法 推式子: \(\begin{aligned} Z_n+Z_{n-1}-2Z_{n-2}&=(Z_n-Z_{n-2})+(Z_{n-1}-Z_{n-2}) \ ...
- 【CSS】如何复原被隐藏的滚动条?记一个看似简单的样式问题所引发的一系列思考
壹 ❀ 引 故事的起因是这样的,某一个同事在封装了一个TableList组件,用于做表格视图渲染,但出于研发经验考虑上,他可能觉得表格若出滚动条可能会引发某些不可预估的小问题(毕竟一个基础组件会被用于 ...
- JS 判断对象属性是否存在,判断是否包含某个属性,是否为自身属性
壹 ❀ 引 看过博主JS 疫情宅在家,学习不能停,七千字长文助你彻底弄懂原型与原型链这篇文章的同学应该知道,文中有专门介绍这个问题.那么为什么我要另起一篇再说一次呢?原因有两个,一是介绍原型与原型链的 ...