ctfhub RCE

目录

1.eval执行

2.命令注入

     3.过滤cat

     4.过滤空格

     5.过滤目录分隔符

     6.过滤运算符

     7.综合练习

8.文件包含

     9.php://input

    10.读取源代码

     11.远程包含


 RCE全称为remote command/code excude,简单来说就是远程命令,分为远程代码执行ping和远程代码执行eval。RCE漏洞,即攻击者可以直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

1.eval执行

启动环境

 

用ls查看服务器当前目录文件

没有找到flag,直接查看根目录 ls /

通过cat命令查看,找到flag

2.命令注入

linux命令的连接符:&  表示任务在后台执行,

                                && 表示前一条命令执行成功时,才执行后一条命令

                                | 是管道命令符,上一条命令的输出,作为下一条命令的参数

                               || 表示上一条命令执行失败后,才执行下一条命令

需要传入ip并用ls加入所需执行的命令

本题先用ls查看有哪些文件

1.1.1.1&ls

 

 使用cat获取flag所在的文件内容

1.1.1.1&cat 121012575223421.php

 查看源代码获取flag

3.过滤cat

与无过滤一样,先用ls查看有哪些文件

 找到flag所在文件,因为cat命令被过滤,需使用如下4种方法:

 

1.单引号 2.双引号 3.\ 4.shell特殊变量

 

最后查看源代码找到flag

4.过滤空格

用ls查看有哪些文件

 找到flag所在文件。因为空格被过滤,可用以下几种字符替代:

< ,> , <> , %20 , %09, $IFS$9 , ${IFS} $IFS

本题可用如下三种方式绕过

 查看源代码找到flag

5.过滤目录分隔符

用ls查看有哪些目录文件

再用ls打开flag所在的文件夹

 找到flag所在文件

 先把目录定位在flag_is_here的文件夹中,再打开含有flag的文件

1.1.1.1&cd flag_is_here;cat flag_6869881318794.php

查看源代码,找到flag

6.过滤运算符

打开环境,发现管道运算符|和&被过滤,则用;分隔命令来替代

用ls查看

 找到flag所在文件

用cat命令查看

 查看页面源代码,找到flag

7.综合练习

发现好多符号被过滤

换行符的url编码为%0a

?ip=1.1.1.1%0als

 我们需要打开flag_is_here,但flag被过滤,使用%09*或f***

/?ip=1.1.1.1%0als${IFS}%09*_is_here

使用cat查看flag,由于cat被过滤,使用如下代码

用%0a代替分隔符,${IFS}代替空格,%09*代替flag

?ip=1.1.1.1.1%0acd${IFS}%09*is_here${IFS}%0aca""t${IFS}%09*_275251866819959.php

查看源代码找到flag

注意!!!由于%0a是url编码,必须输入在url中,否则会重新编码

8.文件包含

启动环境

根据题意,需要上传file参数,但不能是flag,存在shell.txt,所以访问?file=shell.txt

点击shell,发现是一句话木马。因此,有如下两种方法:1.使用蚁剑 2.使用hackbar

1,获取了相对路径以及密码,我们可以使用蚁剑连接

 连接成功后我们可以使用终端cat打开文件或在根目录的最下面找到flag

 

 2. 使用hackbar进行postdata的注入,往ctfhub里面传参。

先用ls查看目录

 查看根目录ls /

 用cat打开flag

 9.php://input

php://input是用来访问各个输入/输出流的,可以接受post请求作为输入流的输入,将请求作为php代码输入,使其以post的形式输入

启动场景

题目意思为当传入的文件前6个字符为php://时执行文件。

查看phpinfo。发现开关开着,可以使用php://input

这里使用bp,发送到repeater

协议头输入/?file=php://input

请求体输入<?php system('ls /');?>

找到flag,用cat打开文件

 

 10.读取源代码

 启动环境 与上题一样,先使用bp抓包                                   

发现并不能找到flag,需要使用filter协议

构造payload

http://challenge-57d1ad411600190d.sandbox.ctfhub.com:10800/?file=php://filter/read=convert.base64-encode/resource=/flag

 

用base64在线解码

 11.远程包含

启动场景

 打开phpinfo

可以使用php://input。打开bp抓包

用cat打开flag文件,得到flag

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值