小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞

知识点:

1、基于 TP 框架入门安装搭建使用

2、基于 TP 框架内置安全写法评估

3、基于 TP 框架实例源码安全性评估


PHP框架:thinkPHP、yii

一、基本了解:安装&调试&入口&配置

Tp5做演示:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第1张图片

载入PHP目录(public下)

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第2张图片

发现此页面不是网页上显示的页面,通过寻找,得知application文件的index/controller/index.php文件进行显示,对其今下午修改

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第3张图片

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第4张图片

得知真正决定页面内容的其实是其他文件

通过手册查询得知:public文件下的index为入口文件

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第5张图片

以及application文件下的index是以url访问进行的

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第6张图片

二、url访问

http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作(方法)/[参数名/参

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第7张图片

在application文件的index.php文件进行修改,新增一个函数

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第8张图片

让其url访问进行访问到xiaodi这个函数:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第9张图片

   总:Url访问与文件的对映关系——》URL <=> 文件

URL访问-改控制器

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第10张图片

此时要访问Xiaodi.php就要更改url访问中的参数

第一种访问:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第11张图片

第二种访问:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第12张图片

第三种:根据不同的配置进行更改

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第13张图片

加参数$_GET

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第14张图片

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第15张图片

加input——输入变量

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第16张图片小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第17张图片

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第18张图片

例:对互联网中寻找符合url访问的网站

从中可以通过url地址内容进行判断对应的文件位置

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第19张图片

得知,模块为xuekes,控制器为index,后面为参数

从而可以进一步得知此网页是以TP框架进行开发的

举一反三:在application文件下创建一个新的文件作为新的模块,再新文件下创建新的controller并创建新的控制器,并进行url访问

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第20张图片

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第21张图片

三、安全-SQL 注入-不安全写法对比官方写法

不安全写法:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第22张图片

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第23张图片

进行SQL注入,并进行数据库监控

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第24张图片

注入成功

a.Get官方写法:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第25张图片

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第26张图片

对其进行sql注入

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第27张图片

由sql监控看出,它自动的将后缀进行忽略了

所以使用官方的方法会进行自动的绕过

b.查询官方写书:书写SQL语句

模板:Db::table('think_user')->where('id',1)->value('name');

开启调试模式:可以看到SQL语句等

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第28张图片

对配置文件进行修改

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第29张图片

对其进行官方书写:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第30张图片

官方写书:简短,且安全

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第31张图片

如果用户不遵守官方手册,则可以进行绕过处理;不然就是对TP框架进行漏洞处理

四、对TP框架找漏洞:

  1. 看写法
  2. 看历史漏洞

看历史漏洞:

查看TP版本

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第32张图片

从版本中查找历史漏洞:

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第33张图片

版本获取:

 黑盒:

        1.判断是不是tp,返回数据包

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第34张图片

       2.通过报错

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第35张图片

       3.经验,看url地址

 白盒:

     看源码配置文件

五、判断是否存在安全问题:

查看版本

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第36张图片

看写法

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第37张图片

看历史漏洞

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第38张图片

测试漏洞,触发漏洞:

对比,得知漏洞已修复

小迪安全17PHP 开发-个人博客项目&TP 框架&路由访问&安全写法&历史漏洞_第39张图片

你可能感兴趣的:(安全)