代码审计-php框架开发,实战tp项目,打击微交易,源码获取,扩大战果

实战,不安全写法引发的注入

这个bc靶场源码没有,看老师演示

打开很明显的tp框架源码

拿到tp框架之后第一步,搜索版本信息5.0.5

两个思路

1.代码的不安全写法

2.版本自身存在的漏洞

全局搜索where看看也没有不安全的

哎?!

然后记录一下文件路径名字,方法名字,参数

然后直接按照tp框架的访问路径,构造一下url

这里先前台注册一个账号登陆进去

哎?访问路径报错哈

但是看调试是正常执行了

不回显那就直接盲注好了

成功

全局搜索到了第二个存在不安全写法的文件

.号,一个连接符号,相当于直接拼接上了

危险方法是chicjisopen,然后就看谁调用了他,右键查找用法

看到在

goods里面有一个调用

看到传递的值pid,那看看这个pid这个值从那获取

从goods方法获取,那就可以直接构造url了

就把上一个方法改成goods方法进行,因为别的文件和参数都一样

版本漏洞引发的安全问题.

sql注入漏洞

测试一下下面提供的源码,写在代码里面测试版本漏洞是否真实存在

根据复现poc,即使是安全写法,依然存在漏洞问题

这个漏洞的入口点是因为exp,如果不存在这个exp就没有办法

而这个源码,没有写exp这个函数在sql语句里面,就没有入口点,无法利用这个漏洞

文件包含漏洞

有这两句代码就能触发tp的文件包含漏洞

写一个测试点

然后根据文档的poc

成功文件包含

但这个利用条件很苛刻,因为get是接受get传输的任意值,那就是发送的get变量要完全可控

assign(可控变量)

有很多但是assign内容不可控

也是没找到入口点

缓存漏洞

这个接受tp的一个应用功能,有设置缓存就可以访问目标地址的时候url带着后门信息,tp就会把后门信息缓存到一个固定的php文件里面,造成后门写入

写一个测试点

可控变量是username

访问

就自动多了一个php文件

利用条件也是用了那个函数加上可控变量

命令执行漏洞(存在)

5.0.5版本的命令执行

试一试,这个倒是存在

这个语法第一个fileput是写文件函数,2.php是文件名字,后面是木马代码

我们这里就复现一下只需要执行命令,把函数缓存system,文件名换成要执行的命令就行

存在

反序列化漏洞无

xss挖掘

存储型xss才有这个扩大危害的可能,而tp框架挖掘xss要困难一些,因为retuen在tp框架可能是返回结果也可能是输出

反射性xss一般要发链接给管理员钓鱼,利用难度高

然后存储型xss得让管理员主动去看,才有最大的价值,这里就要想管理员喜欢看什么东西,然后不知不觉触发xss。

这就登陆到后台看看,管理员喜欢看什么,流水和自己的用户

而这些显示内容的信息都可以测试也没有存储xss

黑盒思路就是盲猜那些信息会在后台显示,管理员也经常看

而这里,用户名这里就会造成存储xss

注册的时候写一个存储xss直接拖cookie。

从代码中看,根据路径找代码,admin下的user的list函数,就是数据区查询东西,然后this返回,没有看到什么过滤

再去看前端文件,userlits.html

就获取用户名然后显示在前端,没有任何过滤,直接造成存储xss漏洞

逻辑漏洞(脆弱的权限验证)

不登陆访问后台界面,提示请先登录

直接在源码中搜索请先登录在哪出现

首先验证userid是否存在,存在在进行下一个token验证,而token验证的值就是固定死md5加密值,这就可以伪造登录

正常的验证逻辑是token是随机值来判断,输入正确的密码生成随机token值

这里就很抽象了抓一下他正确登陆之后的cookie

字段是denglu,值是下面那些

直接在cookie写入这个字段和值

在访问admin

直接进后台

还有后台可以上传任意文件,没有任何检测

如何扩大战果(同种资产)

思路

特定图标

特定文件

特定url链接

特定的盲注

这里就可以打组合拳,最容易搜索到

像这种特有的js文件

url那个就是搜特定链接语法,script就是搜特定js链接

而这个是有一个特殊的图标,

这个可以直接保存下来,然后在queke上传

jian

kang

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

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

相关文章

大模型的实践应用43-基于Qwen3(32B)+LangChain框架+MCP+RAG+传统算法的旅游行程规划系统

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用43-基于Qwen3(32B)+LangChain框架+MCP+RAG+传统算法的旅游行程规划系统。本报告将阐述基于大模型Qwen3(32B)、LangChain框架、MCP协议、RAG技术以及传统算法构建的智能旅游行程规划系统。该系统通过整合多种技术优势,实…

Jsoup库和Apache HttpClient库有什么区别?

Jsoup 和 Apache HttpClient 是两个功能不同的库,它们在 Java 开发中被广泛使用,但用途和功能有明显的区别: Jsoup 用途:Jsoup 是一个用于解析 HTML 文档的库。它提供了非常方便的方法来抓取和解析网页内容,提取和操作…

腾讯云存储原理

我们来详细展开你提到的两个核心结构概念: 一、“基于分布式文件系统 对象存储技术” 是什么? 1. 分布式文件系统(DFS)基础 分布式文件系统是一种支持将数据分布在多个存储节点上、并对上层用户透明的文件系统。腾讯云COS虽然是…

python fastapi + react, 写一个图片 app

1. 起因, 目的: 上厕所的时候,想用手机查看电脑上的图片,但是又不想点击下载。此app 应运而生。 2. 先看效果 单击图片,能放大图片 3. 过程: 过程很枯燥。有时候, 有一堆新的想法。 但是做起来太麻烦,…

Kubernetes控制平面组件:Kubelet详解(五):切换docker运行时为containerd

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…

QT6 源(111):阅读与注释菜单栏 QMenuBar,进行属性与成员函数测试,信号与槽函数测试,并给出源码

(1) (2) (3) (4) (5) (6) (7)以下源代码来自于头文件 qmenubar . h : #ifndef QMENUBAR_H #defi…

Leetcode 3552. Grid Teleportation Traversal

Leetcode 3552. Grid Teleportation Traversal 1. 解题思路2. 代码实现 题目链接:3552. Grid Teleportation Traversal 1. 解题思路 这一题的话核心就是一个广度优先遍历,我们只需要从原点开始,一点点考察其所能到达的位置,直至…

2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK

Dashboard - 2023 CCPC Henan Provincial Collegiate Programming Contest - Codeforces 过题难度:A H F G B K E 铜奖: 2 339 银奖: 3 318 金奖: 5 523 A: 直接模拟 // Code Start Here int t;cin >> t;while(t-…

如何用Python批量解压ZIP文件?快速解决方案

如何用Python批量解压ZIP文件?快速解决方案 文章目录 **如何用Python批量解压ZIP文件?快速解决方案**代码结果详细解释 话不多说,先上干货!!! 代码 import os import zipfiledef unzip_file(dir_path: str…

Spring Boot 的高级特性与经典的设计模式应用

目录 1. 设计模式在 Spring Boot 中的应用 1.1 单例模式:Bean 管理与全局实例 1.1.1 Spring 中的单例 Bean 1.1.2 自定义单例实现 1.1.3 单例模式的优势 1.2 工厂模式:动态创建 Bean 1.2.1 Spring 的工厂方法 1.2.2 自定义工厂类 1.2.3 工厂模式…

在Excel中使用函数公式时,常见错误对应不同的典型问题

在Excel中使用函数公式时,常见错误对应不同的典型问题 1. #DIV/0!(除以零错误)2. #N/A(值不可用)3. #NAME?(名称错误)4. #NULL!(空交集错误)5. #NUM!(数值错…

【cursor疑惑】cursor续杯后使用agent对话时,提示“需要pro或商业订阅的用户才能使用“

背景 cursor的pro会员体验过期了,想再次体验deepseek、Claude等agent对话提示:“免费版本不可以使用agent对话功能(英文忘记截图了,大意是这样)”。 处理方法 Step-1:再次续杯cursor的pro会员14天体验 详情,见:【c…

解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

可以参考:解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed-CSDN博客 讲的是程序执行目录下可能缺少了: libssl-1_1-x64.dll 和 libcrypto-1_1-x64.dll 库文件,将其复制到可执行文件exe的同级目录下即可…

白杨SEO:不到7天,白杨SEO博客网站百度搜索显示和排名恢复正常!顺带说说上海线下GEO聚会分享和播客红利

大家好,我是白杨SEO,专注SEO十年以上,全网SEO流量实战派,AI搜索优化研究者。 5月开始,明显就忙起来了,不管是个人陪跑还是企业顾问,不管是需要传统SEO还是新媒体流量,还是当下这个A…

FART 自动化脱壳框架简介与脱壳点的选择

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ FART简介 ART 环境下基于主动调用的自动化脱壳方案,可以解决函数抽取壳。 关于函数抽取壳的实现原理可以参考:基于 art 下的类加载机…

卷积神经网络进阶:转置卷积与棋盘效应详解

【内容摘要】 本文深入解析卷积神经网络中的转置卷积(反卷积)技术,重点阐述标准卷积与转置卷积的计算过程、转置卷积的上采样作用,以及其常见问题——棋盘效应的产生原因与解决方法,为图像分割、超分辨率等任务提供理论…

Redis进阶知识

Redis 1.事务2. 主从复制2.1 如何启动多个Redis服务器2.2 监控主从节点的状态2.3 断开主从复制关系2.4 额外注意2.5拓扑结构2.6 复制过程2.6.1 数据同步 3.哨兵选举原理注意事项 4.集群4.1 数据分片算法4.2 故障检测 5. 缓存5.1 缓存问题 6. 分布式锁 1.事务 Redis的事务只能保…

SDC命令详解:使用get_libs命令进行查询

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 get_libs命令用于创建一个库对象集合,关于设计对象和集合的更详细介绍,可以参考下面的博客。需要注意的是,在有些工具中还存在…

idea2024 不知道安装了什么插件,界面都是中文的了,不习惯,怎么修改各个选项改回英文

如果你的 IntelliJ IDEA 2024 突然变成中文界面,很可能是安装了中文语言包插件(如 “Chinese (Simplified) Language Pack”)。以下是 彻底恢复英文界面 的方法: 方法 1:直接卸载中文插件(推荐)…

物流项目第二期(用户端登录与双token三验证)

第一期内容: 物流项目第一期(登录业务)-CSDN博客 用户端登录 实现分析 登录功能 Data public class UserLoginRequestVO {ApiModelProperty("登录临时凭证")private String code;ApiModelProperty("手机号临时凭证"…