欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > [ctfshow web入门] web41

[ctfshow web入门] web41

2025/4/12 14:59:48 来源:https://blog.csdn.net/qq_50332504/article/details/147148060  浏览:    关键词:[ctfshow web入门] web41

信息收集

过滤了0-9和小写字母,但是没过滤 |,可以考虑用|或运算来重组想要的命令
system:函数会直接将命令的输出打印到标准输出设备(通常是屏幕),并返回最后一行输出
这意味着echo会输出命令返回的最后一行字符串,但不影响它将命令的结果输出到屏幕。所以得到的输出应该是system结果+system结果最后一行

if(isset($_POST['c'])){$c = $_POST['c'];
if(!preg_match('/[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-/i', $c)){eval("echo($c);");}
}else{highlight_file(__FILE__);
}

解题

由于我不会写php,所以我写了一个python版本的代码:[ctfshow web入门] RCE 或(or)、异或(xor)、非(not)绕过,点击超链接跳转阅读或使用代码
代码包括三种运算,异或(xor),或(or)和非(not)的加密运算

抓包重发

如果你使用抓包重发的技巧来实现,那么执行函数print(rce_or(list_cmd))获取加密字符串,用post发生对应的加密字符。
不要使用google的hackbar,它似乎有bug,无法成功
在这里插入图片描述

直接使用代码里的函数发送

rce_post(url, rce_or(list_cmd))

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词