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. ...
随机推荐
- 离开页面关闭video标签
<video src="./play.mp4" id="maskmore_1" controls="controls" autopla ...
- 使用Lua做为MMOARPG游戏逻辑开发脚本的一点体会
项目背景 目前在一个大型MMOARPG游戏中使用Lua做为逻辑开发语言,Lua占整体代码量的80%. 我们这个MMO游戏开发近2年,客户端8人,项目组总体人数在100人(美术占70%),目前代码量很大 ...
- TienChin 渠道管理-渠道类型
在上一篇文章当中,表里面有一个渠道类型,我们这节主要是将这个渠道类型创建好,首先我们来看看字典表. sys_dict_type 表: 字段名 数据类型 注释 dict_id bigint 字典主键 d ...
- 基于知识图谱的《红楼梦》人物关系可视化及问答系统(含码源):命名实体识别、关系识别、LTP简单教学
基于知识图谱的<红楼梦>人物关系可视化及问答系统(含码源):命名实体识别.关系识别.LTP简单教学 文件树: app.py是整个系统的主入口 templates文件夹是HTML的页面 |- ...
- 【7】python_matplotlib 输出(保存)矢量图方法;画图时图例说明(legend)放到图像外侧;Python_matplotlib图例放在外侧保存时显示不完整问题解决
1.python_matplotlib 输出(保存)矢量图方法 用python的matplotlib画出的图,一般是需要保存到本地使用的.如果是用show()展出的图,再右键保存,这样的图是失帧而非矢 ...
- 【三】AI Studio 项目详解——单机多机训练分布式训练--PARL
相关文章 [一]-环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简介 [五]-Sarsa&Qlear ...
- Python 使用SQLAlchemy数据库模块
SQLAlchemy 是用Python编程语言开发的一个开源项目,它提供了SQL工具包和ORM对象关系映射工具,使用MIT许可证发行,SQLAlchemy 提供高效和高性能的数据库访问,实现了完整的企 ...
- 【译】命名变得简单:AI 支持的重命名建议
您是否曾经为命名一个变量.方法或类而挣扎过?找到表达性和简洁性之间的完美平衡了吗?您并不孤单.我们通过 GitHub Copilot Chat 扩展(需要订阅)在最新的 Visual Studio 预 ...
- requests模块的高级应用
requests抓取数据报错 - HttpConnectinPool: - 原因: - 1.短时间内发起了高频的请求导致ip被禁 - 2.http连接池中的连接资源被耗尽 - 解决: - 1.代理 - ...
- 2、数据库:SQL Server部署 - 系统部署系列文章
对于微软的SQL Server的安装,以前已经有写过了,到了2022版本,安装没多大的改变,很多只需要少配置,然后直接下一步即可.现在是2023年了,SQL Server已经出到了2022版本,这篇博 ...