知识点:
1、基于 TP 框架入门安装搭建使用
2、基于 TP 框架内置安全写法评估
3、基于 TP 框架实例源码安全性评估
PHP框架:thinkPHP、yii
一、基本了解:安装&调试&入口&配置
Tp5做演示:
载入PHP目录(public下)
发现此页面不是网页上显示的页面,通过寻找,得知application文件的index/controller/index.php文件进行显示,对其今下午修改
得知真正决定页面内容的其实是其他文件
通过手册查询得知:public文件下的index为入口文件
以及application文件下的index是以url访问进行的
二、url访问
http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作(方法)/[参数名/参
在application文件的index.php文件进行修改,新增一个函数
让其url访问进行访问到xiaodi这个函数:
?? 总:Url访问与文件的对映关系——》URL <=> 文件
URL访问-改控制器
此时要访问Xiaodi.php就要更改url访问中的参数
第一种访问:
第二种访问:
第三种:根据不同的配置进行更改
加参数$_GET
加input——输入变量
例:对互联网中寻找符合url访问的网站
从中可以通过url地址内容进行判断对应的文件位置
得知,模块为xuekes,控制器为index,后面为参数
从而可以进一步得知此网页是以TP框架进行开发的
举一反三:在application文件下创建一个新的文件作为新的模块,再新文件下创建新的controller并创建新的控制器,并进行url访问
三、安全-SQL 注入-不安全写法对比官方写法
不安全写法:
进行SQL注入,并进行数据库监控
注入成功
a.Get官方写法:
对其进行sql注入
由sql监控看出,它自动的将后缀进行忽略了
所以使用官方的方法会进行自动的绕过
b.查询官方写书:书写SQL语句
模板:Db::table('think_user')->where('id',1)->value('name');
开启调试模式:可以看到SQL语句等
对配置文件进行修改
对其进行官方书写:
官方写书:简短,且安全
如果用户不遵守官方手册,则可以进行绕过处理;不然就是对TP框架进行漏洞处理
四、对TP框架找漏洞:
看历史漏洞:
查看TP版本
从版本中查找历史漏洞:
版本获取:
?黑盒:
??????? 1.判断是不是tp,返回数据包
?????? 2.通过报错
?????? 3.经验,看url地址
?白盒:
?????看源码配置文件
五、判断是否存在安全问题:
查看版本
看写法
看历史漏洞
测试漏洞,触发漏洞:
对比,得知漏洞已修复