【Web】2024XYCTF题解(全)
目录
ezhttp
ezmd5
warm up
ezMake
ez?Make
εZ?¿м@Kε¿?
我是一个复读机
牢牢记住,逝者为大
ezRCE
ezPOP
ezSerialize
ezClass
pharme
连连看到底是连连什么看
ezLFI
login
give me flag
baby_unserialize
ezhttp
访问./robots.txt
继续访问拿到账号密码
登录,然后就是抓包各种http八股
ezmd5
GitHub - zhijieshi/md5collgen
生成的图片分别上传即可
(只允许上传jpg,重新生成就行,懒得放图了)
点击比较图片拿到flag
warm up
鉴定为md5八股
?val1[]=1&val2[]=2&md5=0e215962017&XY=0e215962017&XYCTF=0e215962017
访问./LLeeevvveeelll222.php
数组绕过preg_match,preg_replace命令执行
?a=/1/e&b=system('tac /f*')&c=1 a[]=1
ezMake
PATH 环境变量被显式地设定为空。这段 Makefile 的逻辑检查了 PATH 是否未定义,如果未定义则设为空,如果已定义也重设为空。由于 PATH 被设置为空,shell 将无法定位到除内置命令之外的任何外部命令的位置。
Bash 内建命令
这些命令是由Bash自身提供,而不是独立的程序:
- alias - 定义或显示别名。
- cd - 改变当前目录。
- echo - 输出参数到标准输出。
- exit - 退出当前shell。
- export - 设置或显示环境变量。
- history - 显示命令历史记录。
- pwd - 打印当前工作目录的路径。
- read - 从标准输入读取一行数据。
- set - 设置或取消设置shell选项和位置参数。
- type - 显示一个命令的类型。
- unset - 删除变量或函数的定义。
echo可以执行
直接echo写马会有waf
甚至base64也不行🤔
hex2bin可以过
echo '' > yjh.php
成功写马,命令执行拿flag
ez?Make
这题patch了一下上题的非预期,不能再echo写马了
但也把/bin下的命令放了出来,不再有PATH的限制
知道flag路径在/flag,所以可以cd再进行读文件,读文件的方法ban了不少,经过测试more还能用
最终payload:
cd ..&&cd ..&&cd ..&&cd ..&&cd ..&&more [0-z][0-z][0-z][0-z]
εZ?¿м@Kε¿?
右键查看源码
访问./hint.php
就是说给了个白名单
关于makefile的自动变量
Makefile中的自动变量是在规则执行时由make自动定义的变量。这些变量非常有用,因为它们可以自动获取文件名、目录名和更多的信息,使得Makefile编写更加简洁和灵活。下面是一些常用的自动变量:
- $@: 表示规则中的目标文件名。如果在模式规则中,它表示的是目标的一个实例。
- ${}}、{%%}、_、'都被ban了,这我还注个集贸啊😡{}}