33_对bluecms v1.6进行代码审计、用代码审计三种方法分别进行实施、bluecms v1.6下载与安装、定向功能分析法

news2024/11/28 4:36:43

部署bluecms v1.6

靶场下载地址:
https://wwtt.lanzn.com/b00uyckd9a
密码:2x71

访问  http://127.0.0.1/bluecms/install/

数据库名称建议跟网站名一样

进入mysql-front查看,出现bluecms数据库,并且库中有很多表

然后访问前台:http://127.0.0.1/bluecms/

访问后台页面:http://127.0.0.1/bluecms/admin/

以上报错需要修改php的版本为5.2.17,因为这个网站比较老了,得用旧的php版本兼容

之后访问正常。

对bluecms v1.6做代码审计

sql注入的代码审计

新建项目把bluecms拖进来

得先找谁给它赋值的,先分析一下这个语句的作用

// 简化版的if语句(三元运算符)
if(!empty($_GET['ad_id'])){
  trim($_GET['ad_id'])
}else{
  ''
}
!empty($_GET['ad_id']) ? trim($_GET['ad_id']) : ''

        !empty($_GET['ad_id']) ? trim($_GET['ad_id']) : ''   这句相当于if的简化版语句,为真执行trim,为假执行'',这么个意思。empty() 函数在PHP中用于检查一个变量是否为空,前面有个!号就是取反,表示有数值传进来那么将返回 true,

  trim() 函数在PHP中用于去除字符串首尾的空白字符或指定字符,说明有做过滤,去掉两端空格,但是没有做严格过滤连个转义都没做,

        那么通过分析,前端传过来的值trim($_GET['ad_id'])交给了它$ad_id,($ad_id = !empty($_GET['ad_id']) ? trim($_GET['ad_id']) : '';)的$ad_id,$ad_id,回过头来,交给了这里的SQL语句执行,很明显,存在SQL注入

如果找到它的网站对应的页面可以这样,先复制路径,粘贴前面的,127.0.0.1/bluecms/ad_js.php,浏览器访问,出现错误,那就得传参,因为要id=什么什么

 试一下看参数是什么才有页面显示,试了几个发现试不出来

那只能去找一下这个函数是怎么做的

SQL语句传进来,传进来后,query函数查询,获得一行,看着也没什么过滤,

先说到这吧,访问页面也没访问到,空白的,找不到传什么值也无所谓,可以丢进sqlmap跑一下,指定一下ad_id这个值,机器跑快些,手工测挺慢的,而且也不显示页面内容还得用盲注,比较麻烦,直接扔给sqlmap跑一下

 sqlmap -u "http://192.168.1.16/bluecms/ad_js.php?ad_id=1" -p "ad_id" --batch

通过分析,这里确实存在sql注入漏洞。

文件包含漏洞代码审计

  • 使用敏感函数参数回溯法

 那么无非就是那个包含的函数,依次查询

前面几个很多都是写死的,那么怎么快速找呢,找$,变量

        文件包含分两大类,猜一下这里有没有远程文件包含,首先这儿肯定没有,应为前面拼接了,传进来的也是http这样式的拼接前面的那就不对了,

        试着找一下对应的页面什么时候能触发这个代码,去测试,前面的可以用../../方式,后面的语句可以用//注释

访问user.php时,至少得传个act参数,并且它的值等于pay,这样他才会执行这个代码

说明是生效的

利用Windows的特点,假如你的...非常多,它会认为后面没东西了,相当于把include 'include/payment/'.$_POST['pay']."/index.php";的"/index.php"忽视掉

&pay=../../../../../../../../Windows/System32/drivers/etc/hosts.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

假如hackbar不太行那就用抓包的方式修改后重发,找到对应的功能点,pay基本在充值支付那里

&pay=../../../../../../../../Windows/System32/drivers/etc/hosts.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

那么这种方式也可以

定向功能分析法(xss)

先删除前端验证,在注册。。。   http://127.0.0.1/bluecms/user.php?act=reg

首先,这几个框可能哪个地方存在XSS的可能性最大

<h1>123</h1>   不一定用弹窗那个,可以直接标签试试够了

前端有限制找到对应的地方删掉就好了

用户名和邮箱都变大了,意味着可能有XSS;试一下<script>alert(1);</script>

发现账户那里虽然有但是后端里限制了16个字符以内的长度,我们写的脚本没发利用,那只能利用邮箱,这里是个存储型XSS

或者是不删除前端验证,先正常注册,然后抓包,修改邮箱为恶意代码...

这相当于挖漏洞的一个小思路了,找功能,找对应可能存在的漏洞点然后去测试,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DW_ahb_databook学习及部分AHB知识回顾

一、DW_ahb框图 Arbiter: 一次只允许一个master发起数据传输&#xff0c;同时可以选择slave Optional Internal Decoder: 通过解码系统地址总线为AHB上的从机生成外设选择。每个slave都可以指定一个起始和结束地址&#xff0c;该地址必须与1kb边界对齐。 Optional External D…

【云原生】高可用集群KEEPALIVED(理论篇)

一、高可用集群 1.1 集群类型 LB:Load Balance 负载均衡 LVS/HAProxy/nginx(http/upstream, stream/upstream)HA:High Availability 高可用集群数据库、RedisSPoF: Single Point of Failure&#xff0c;解决单点故障HPC: High Performance computing 高性能集群 1.2 系统可用…

第二十五天培训笔记

2 、在 python 中连接数据库并结合游标对数据库进行操作 前提&#xff1a;要有 python3 环境 pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple // 设置 pip3 的全 局配置&#xff0c;将默认的 Python 包索引源&#xff08; index-url &am…

Raspberry Pi Pico 2 上实现:实时机器学习(ML)音频噪音抑制功能

Arm 公司的首席软件工程师 Sandeep Mistry 为我们展示了一种全新的巧妙方法&#xff1a; 在 Raspberry Pi Pico 2 上如何将音频噪音抑制应用于麦克风输入。 机器学习&#xff08;ML&#xff09;技术彻底改变了许多软件应用程序的开发方式。应用程序开发人员现在可以为所需系统整…

【C++ 项目】负载均衡在线 OJ

文章目录 &#x1f308; 一、项目介绍&#x1f308; 二、项目源码&#x1f308; 三、项目演示⭐ 1. 前端界面展示⭐ 2. 后端界面展示 &#x1f308; 四、项目准备⭐ 1. 项目所用技术⭐ 2. 项目开发环境⭐ 3. 项目宏观结构 &#x1f308; 五、comm 公共模块⭐ 1. util.hpp 工具⭐…

【机器学习第9章——聚类】

机器学习第9章——聚类 9.聚类9.1 聚类任务9.2 性能度量9.3 距离计算9.4 原型聚类9.4.1 k均值算法9.4.2 学习向量量化(LVQ)9.4.3 高斯混合聚类 9.5 密度聚类DBSCAN算法 9.6 层次聚类9.7 kmeans手动算法实现9.8 kmeans算法运用 9.聚类 9.1 聚类任务 在“无监督学习”任务中研究…

MIT6.s081 2021 Lab Copy on-write

Implement copy-on write 背景 xv6 使用 fork() 系统调用创建子进程时&#xff0c;需要将父进程的地址空间进行 深拷贝 &#xff0c;即将页表和实际物理空间同时进行拷贝&#xff0c;以实现父进程和子进程地址空间的独立性。但很多时候&#xff0c;如 shell 程序&#xff0c;…

时间线编辑特效SDK解决方案,高效的接入服务

在数字时代的浪潮中&#xff0c;短视频以其独特的魅力迅速成为连接世界的新语言&#xff0c;而创意与技术的深度融合&#xff0c;则是这场视觉盛宴背后的核心驱动力。美摄科技&#xff0c;作为短视频技术领域的佼佼者&#xff0c;近期隆重推出了其革命性的时间线编辑特效SDK解决…

踩坑【已解决】:Redis配置主从复制踩到的坑,主机不显示从机的连接信息,但是从机显示主机信息

关于Redis配置主从复制踩到的坑&#xff01;&#xff01;&#xff01; 设置单机集群的时候&#xff0c;两台从机都显示连接到主机&#xff0c;但是主机显示连接到的从机数量为0: 原因&#xff1a; 在master的配置文件中我们配置了密码的信息&#xff0c;但是我们在从配置文件…

gitee 使用安装教程

一、下载方式 1.官网下载https://git-scm.com/downloads 2.淘宝镜像下载https://registry.npmmirror.com/binary.html?pathgit-for-windows/ 2.1安装 1.点击刚刚下载的安装包&#xff0c;然后点击next 2.根据自己的情况选择&#xff0c;一般默认就可以了 3. 点击next 4.点…

PS DRAM接口的函数式编程模型(一)

针对PS DRAM接口的操作启动&#xff0c;确实需要遵循一系列精心设计的步骤来确保DRAM控制器&#xff08;DDRC&#xff09;和DRAM模块能够正确初始化和配置。以下步骤详细说明了这些操作&#xff0c;并指出了Vivado Design Suite通常如何提供这些编程支持。 DDR时钟初始化&…

1DCNN-2DResNet并行故障诊断模型

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 Python轴承故障诊断入门教学-CSDN博客 Python轴承故障诊断 (13)基于故障信号特征提取的超强机器学习识别模型-CSDN博客 Python轴承故障诊断 (14)高创新故障识别模型-CSDN…

机器学习入门(六):分类模型评估方法

目录 1. 数据集划分 1.1 为什么要划分数据集? 1.2 数据集划分的方法 1.3 留出法(简单交叉验证) 1.4 交叉验证法 1.5 留一法 1.6 自助法 2. 分类算法的评估标准 2.1 分类算法的评估 2.2 SKlearn中模型评估API介绍 3. 小结 前言 掌握分类模型评估方法对于数据科学家…

测试流程规范--准入准出规则

简介&#xff1a; 为了加强测试部软件测试的质量控制及与测试相关部门、人员更好理解测试各阶段的准入/准出条件而建立的准入/准出规范。 一&#xff0c;目的 为了加强测试部软件测试的质量控制及与测试相关部门、人员更好理解测试各阶段的准入/准出条件而建立的准入/准出规范…

【python】在Python中操作MongoDB的详细用法教程与实战案例分享

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

《黑神话:悟空 性能测试工具》Steam已免费开放下载

《黑神话&#xff1a;悟空》将于8月20日上午10点正式解锁&#xff0c;届时大家就能体验到这款期待三年的国产3A之光了。为了方便大家游玩&#xff0c;官方提前上线了性能测试工具&#xff0c;目前《黑神话&#xff1a;悟空 性能测试工具》已在Steam商店开放免费下载。 据Steam评…

Qt | QSQLite内存数据库增删改查

点击上方"蓝字"关注我们 01、演示 参数随便设置 查询 修改 右键菜单是重点 手动提交,点击Submit All

2024下半年软考报考攻略:从报名到拿证全流程,看这一篇就够了!

下半年软考本月就要开启报名了&#xff0c;有一些同学可能是第一次参加&#xff0c;还不清楚具体流程。今天小编就来为大家总结软考从报名到拿证的全过程指南&#xff0c;有需要的可以收藏这篇攻略哦&#xff01; 一、报名流程 1、登录网站 登录中国计算机技术职业资格网&…

C++结构体指针强制转换以处理电力系统IEC103报文

前言 最近依旧是开发规约解析工具的103篇&#xff0c;已经完成了通用分类服务部分的解析&#xff0c;现在着手开始搞扰动数据传输&#xff0c;也就是故障录波的传输。 在103故障录波&#xff08;扰动数据&#xff09;的报文中&#xff0c;数据是一个数据集一个数据集地存放&a…

如何有效优化无线双模蓝牙模块的通讯距离?

许多客户在使用无线双模蓝牙模块时发现传输距离达不到预期要求。影响无线蓝牙模块通讯距离的因素有很多&#xff0c;以下是美迅物联网MesoonRF归纳总结的一些可能的原因以及如何改善&#xff1a; 1.优化天线设计 天线是影响无线双模蓝牙模块通讯距离的关键因素之一&#xff0c;…