米乐m6官网登录入口 php框架代码审计思绪
你的位置:米乐m6官网登录手机(中国)家具有限公司 > 关于我们 > 米乐m6官网登录入口 php框架代码审计思绪

米乐m6官网登录入口 php框架代码审计思绪

时间:2022-09-22 21:08 点击:190 次

米乐m6官网登录入口 php框架代码审计思绪

门径员写在著述前:

本周技巧共享,门径员小星想以“php框架代码审计”为题,与宇宙共享一下小星对代码的审计思绪。但由于本色较多,这次小星先从兼容模式和path_info模式、定名空间、tp5的曩昔调用经由等七大部分与宇宙进行商讨。

(一)本色

1. MVC基本的架构

2. 破绽挖掘

thinkphp、Yii、larevel

M 模块

V 界面

C 适度器

MVC筹画模式的优点?

1)解耦合 2) 多接口、缩短缔造老本 3) 高复用

(二)使用格式

application 运用目次(放我方的代码)

---- admin 放后台文献

________controller

---- index 放前台文献

________controller

public 进口文献

---- index.php 网站的进口文献

thinkphp 中枢文献

(三)拜访格式

thinkphp所有的都是用URL来达成。

thinkphp的拜访模式:

1)http://localhost/index.php/模块称呼/适度器的名/门径名/参数/vaulue

2)http://localhost/index.php/模块称呼/适度器的名/门径名?参数=value

模块称呼:在application下,举例index文献夹是模块名。

适度器的名:在index下有一controller,这个controller下有index.php,那他的适度器的名便是index。

门径名:门径便是index.php下的一些门径称呼。

构造URL:

http://localhost/index.php/index/Index/hello/name/11111

(四)兼容模式和path_info模式

1)tp使用兼容模式的写法:

http://localhost/index.php?s=index/Index/hello&name=1111

2)pathinfo拜访的模式:

http://localhost/index.php/index/Index/hello/name/11111

3)不错得到:

http://localhost/index.php?s=模块/适度器/门径&参数=value

(五)对于定名空间

tp5驯服一个psr-4自动加载法度,他不错去自动加载类,需要合理的、正确的定名空间。

一组的健康的、及格的tp5代码需要一个合理的定名空间。

创建一个中枢包下的文献kk.php。

得到一个对于定名空间的论断:

1)要是你写在application下,那你定名空间的一个根旅途是app;

2)要是thinkphp下的think,那你定名空间的一个根旅途就think;

3)要是thinkphp下的traits,那你定名空间的一个根旅途便是traits。

(六)问题根源

TP处分URL的一个特色,他使用全局变量。

http://localhost/index.php/index/\Index/hello/name/11111

http://localhost/index.php/index//Index/hello/name/11111

(七)tp5的曩昔调用经由

01 URL路由认知动态调试分析

1)先看他这个进口文献的调用也便是public/index.php,证实他的进口文献去找相应的代码。

2)泄露插足路由检测的一个门径。

3)他会从下图中进一个path门径。

由于新冠的原因,ShowMaker先前是以远程线上赛的形式参加比赛,他表示自己在远程比赛的情况下,未能发挥最好的表现。这周终于回到线下参赛,但他依然没有恢复到最佳状态。比赛结束后,ShowMaker接受了采访,以下是具体的内容。

4)他会从下图中进一个pathinfo门径。

5)要从这里插足一个server。

6)ltrim()门径不错把/index/Index/hello//name/11111这一段字符串的最左边的'/'index/Index/hello//name/11111,关于我们以上便是旅途认知的一个过程。

02 路由认知动态调试

1) 接下来会调用check门径。

2) 连接跟进check门径。

3)后续他会用str_replace()门径来把斜杠修改成|,调用"use think\route\dispatch\Url as UrlDispatch; " 这个Url.php。

4)跟进至paresUrl中。

5)array_shift()取出第一个模块名,然后用一样的手法给适度器取出来而且赋值给$controller,再用一样的手法给$action赋值,临了他会把照旧拆分的东西打包存放到这个route当中。

6)后续把这一个route的本色复返到init中的$result中去。

7)接下来他会去new一个module类,可是这个module中没构造门径,是以他会调用一次父类的无参构造,然后再调用module下的开动化门径init。

8)在插足这个开动化门径后他会用parent::init();再调用一次父类的开动化门径。

03 开启debug后

1)要是开启了debug,他就会对路由的信息进行纪录。

2)这边会把苦求的参数和URL地址进行参数吞并,这边他会调用一次认知过滤器,可是这个过滤器他什么都没写, 是以相配于莫得任何过滤。

3)刚刚的一部分已先获得了一个字符串

/admin/index/hello

然后把上头的字符串处分红了以下的面孔

admin/index/hello

临了他会把去掉'/'的字符串也便是旅途会拆分赋值,如下:

$module = admin -->模块

$controller = index -->适度器

$action = hello -->门径

下期米乐m6官网登录入口,咱们拼集“路由动态测试”、“思绪回来”两大部分与宇宙连接沟通,并附上小星在意想过程中的不测发现,请宇宙连接撑持!

发布于:广东省声明:该文观点仅代表作家自己,搜狐号系信息发布平台,搜狐仅提供信息存储空间办事。

Powered by 米乐m6官网登录手机(中国)家具有限公司 RSS地图 HTML地图


米乐m6官网登录手机(中国)家具有限公司-米乐m6官网登录入口 php框架代码审计思绪