开发基础-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&架构&路由&调试&写法的更多相关文章

  1. tp框架版本的thinksnsnv4开启调试模式

    首先说下开启调试模式完整操作. 1.\config\config.inc.php配置文件中增加两个键值对 'APP_DEBUG' => true, 'SHOW_PAGE_TRACE' => ...

  2. TP框架项目部署linux大小写问题

    TP框架项目部署linux大小写问题

  3. Vue框架(三)——Vue项目搭建和项目目录介绍、组件、路由

    Vue项目环境搭建 1) 安装node,在官网下载好,然后在本地安装 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 换源安装cnpm >: npm ins ...

  4. TP框架 基础1

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  5. TP框架---thinkphp基础知识

    php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...

  6. Spring Framework(框架)整体架构 变迁

    Spring Framework(框架)整体架构 2018年04月24日 11:16:41 阅读数:1444 标签: Spring框架架构 更多 个人分类: Spring框架   版权声明:本文为博主 ...

  7. tp框架总体学习总结(一)

    一.TP框架的下载和安装 Tp框架下载网址:http://www.thinkphp.cn/ 在wamp的www目录下创建一个目录tpshop目录 1.  将下载好的包压缩后将文件包里的所有文件复制到创 ...

  8. 基于TP框架的ThinkCMF,控制器display方法源码分析

    昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...

  9. TP框架基础

    什么是TP框架: 一堆代码的集合,里边有变量.函数.类.常量,设计模式MVC.AR数据库.单例等等.全称是Tinkphp框架; 为什么使用框架: 使用框架将全部精力集中在业务层次,节省50-60%的工 ...

  10. tp框架中的一些疑点知识-5

    关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...

随机推荐

  1. Spring 应用合并之路(一):摸石头过河 | 京东云技术团队

    公司在推进降本增效,在尝多种手段之后,发现应用太多,每个应用都做跨机房容灾部署,则最少需要 4 台机器(称为容器更合适).那么,将相近应用做一个合并,减少维护项目,提高机器利用率就是一个可选方案. 经 ...

  2. typeScript类型别名

    类型别名 类型别名:是可以给一个类型起一个新的名字 采用关键字 type 例如 type Name=string|number type strType=string|number|boolean; ...

  3. golang: 学会几个语法上的新写法

    看了VictoriaMetrics,学会了几个新写法,记录下来: 1. 数组拷贝 以前: arr := make([]byte, 0, len(oldArr) arr = append(arr, ol ...

  4. NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践

    NLP文本匹配任务Text Matching [无监督训练]:SimCSE.ESimCSE.DiffCSE 项目实践 文本匹配多用于计算两个文本之间的相似度,该示例会基于 ESimCSE 实现一个无监 ...

  5. 【深度学习项目五】:利用LSTM网络进行情感分析(NLP)

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别](https://blog.csdn.net/sinat_39620217/article/details/116749255?sp ...

  6. 零基础入门Vue之皇帝的新衣——样式绑定

    回顾 大致掌握了上一节的 插值语法 我已经可以把想要的数据显示到页面上,并且仅需要修改变量,页面就会跟着实时改变 但如果对于已经熟悉前端的人来说,单单有数据还是不太行,还需要css对数据进行样式的修饰 ...

  7. OSW Analyzer分析oswbb日志发生异常

    具体OSW Analyzer详细介绍可以参考MOS文档: OSWatcher Analyzer User Guide (Doc ID 461053.1) 我们常用的就是拿到一份osw数据到自己电脑,使 ...

  8. Mac上SnailSvn checkout报错

  9. IntelliJ IDEA 查看一个接口的实现类。

  10. Delphi判断一个字符串在另一个字符串中出现的次数 7个方法的效率对比。

    unit Unit14; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...