0x00Preface
大多半空隙都是由[可控变量]+[特定成效]形成的(关于用户可传入的变量缺乏过滤或过滤不严)。譬喻SQL注入,咱们经过紧闭、诠释等方法插入payload以获得敏锐数据。譬喻文献上传,咱们写入一句话木马以得到web权力。如此的例子恒河沙数,同时也给咱们供给了一个思绪,在咱们实行代码审计时,也许按照特定成效,观察是不是存在可控变量,可控变量是不是存在过滤,过滤是不是存在绕过,进而磨炼是不是存在空隙。
浸透测试分为黑盒测试和白盒测试,黑盒测试仅给外出户网站,白盒测试不只会给出网站,还会给出项目源码。黑盒测试时,咱们只可平常的拜会该网站,时常只可从网站的生意逻辑起程,对网站上存在的成效点逐一抓包,而后考证其是不是存在空隙。自然,也也许决断网站是不是采取了cms,搜罗cms爆发过的平安空隙,观察是不是也许操纵。白盒测试时,咱们不只可够平常拜会该网站,还也许对网站实行代码审计。是以,咱们既也许模仿黑盒测试,按照成效点,抓包搜罗到对应的代码实行剖析(黑盒测试只可抓包测试,没法剖析代码),也也许直接在项目源码中搜罗select、$_FILE、eval等关键字,对相近代码实行剖析。
总的来讲,黑盒测试更为靠近于黑客打击时的景象,而白盒测试则更易发掘平安题目。
0x01MVC框架
MVC模样(Model-View-Controller)是软件工程中的一种软件架构模样,它把软件系统分为三个根底部份:模子(Model)、视图(View)和节制器(Controller)。PHP中MVC模样也称WebMVC,是从上世纪70年头退化而来。
MVC的宗旨是实行一种动态的程序打算,便于后续对程序的批改和伸展简化,况且使程序某一部份的反复操纵成为也许。除此除外,此模样经过对繁杂度的简化,使程序机关更为直觉。
MVC各部份的职能:
模子Model–治理大部份的生意逻辑和通盘的数据库逻辑,模子供给了贯通和职掌数据库的笼统层。
节制器Controller-负责响运用户哀求、预备数据,以及决议何如展现数据。
视图View–负责衬着数据,经过HTML方法展现给用户。
一个典范的WebMVC过程:
Controller截获用户发出的哀求
Controller挪用Model实行状况的读写职掌
Controller把数据转达给View
View衬着最后完毕并呈献给用户
MVC框架的长处有:
1、答应变动视图层代码而不必从新编译模子和节制器代码;2、答应应用百般不一名目的视图来拜会统一个效劳器端的代码;3、使下降开辟和维持用户接口的技能含量成为也许;4、使开辟光阴得到相当大的削减等。
本来也许把MVC明白为一个准则,这么多网站,纷繁繁杂,假如众人都遵照这个准则,那末网站将变得更为简朴治理和维持。别的,也也许把它明白为一个模板,巩固了复用性,也许大批削减开辟的办事量。同时,它将繁杂的底层细节封装了起来(类与目标),使得网站的各个模块相对更为自力,不只使得维持用户接口更为便利,况且使开辟光阴得到了相当大的削减(开辟人员集结精神于生意逻辑,界面程序员集结精神于展现模样)。
咱们要探究的是代码审计,与MVC框架又有甚么关联呢?MVC框架有其特有的目录结媾和路由准则,它与未应用该框架的网站不同,URL路途并错误应其代码文献地点地方。以是在白盒测试中,相识MVC框架有助于咱们更为神速、正确地定位到网页成效点所对应的代码段,反面会有关联演示。
0x02ThinkPHP框架
Thinkphp框架即是MVC框架的一种,假如说MVC框架是类的话,Thinkphp框架即是本来例化后的目标。
ThinkPHP是一个免费开源的,神速、简朴的面向目标的轻量级PHP开辟框架,是为了敏锐WEB运用开辟和简化企业运用开辟而降生的。ThinkPHP从降生以来连续承袭简明适用的打算法则,在维持优秀的机能和至简的代码的同时,也着重易用性。遵照Apache2开源允许协定公布,象征着你可免得费应用ThinkPHP,乃至答应把你基于ThinkPHP开辟的运用开源或贸易产物公布/出售。
Thinkphp教程资本: