前言
大部分的MVC框架,访问的控制器大部分是由外部参数来决定的,那么本篇文章所通读的MVC框架与之前的一系列MVC框架不太一样,它的路由是由程序本身的路由表来决定的。
源码下载 https://www.jb51.net/codes/673736.html
环境安装
访问http://127.0.0.1/install/setup.PHP
配置好/config.PHP
完成安装
MVC的了解
访问流程
之前总是说web应用程序,并没有特别理解为什么它叫应用程序?程序的逻辑不是从头运行到尾嘛,但这里这么多文件。后面才发现,其实web应用程序也是这样,只是经过了路由的作用,将程序走向指向了某个文件,然后继续执行,直到返回响应,代表程序结束。
直接到Index.PHP
配置了全局的路径参数,再对应用的主程序进行了包含。
查看被包含的文件
然后对程序进行慢慢分析
分析路由部分
Router驱动中,先指定路由所在的目录,然后通过遍历目录,对所有的分路由进行包含
此处需要自己去尝试分析
服务器接受到的是http协议中的所有信息,所以/path或param解析全靠后端进行处理,这也就解释了为什么tp框架那种别扭的写法index.PHP/asd/aasd, 这和普通的文件服务器路由处理是不一样的而已
看懂了路由,现在开始进行漏洞分析
cms重装漏洞
再次访问安装界面,直接正常执行。。。这个漏洞的危害不用多说,直接让你gg。它是由于cms安装好之后,没有把install相关的文件删除。或者说再次重装的时候,没有过滤,导致程序可以正常执行,从而完成重装操作。现在的cms避免管理人员忘记删除的后果,一般都加了部分的标志,程序再运行前,先要检查对应的标志,判断是否继续执行。
无限sql注入
定位到login处理逻辑
跟进login函数
看下post处理了啥
真的只过滤了xss,对sql没有任何的过滤,这不就随便注入
存储型XSS
可以看到,虽然进行了过滤,但前提是字符串是<123123>形式的才会进行过滤,如果注入点本身就在一个属性中,那就根本不会进入过滤范围。
所以找个注入点在属性中的即可
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。