CTF命令执行学习笔记

CTF命令执行学习笔记

php常见的命令执行函数(这里只谈命令执行不涉及代码执行)
system、popen、shell_exec、exec、passthru、反引号(比如echo ls;反引号实际是shell_exec的另一种形式)

//通常以以下形式出现,题外话eval中可以直接闭合php标签另起一个php...
<?php
$a=$_GET[1];
//一些过滤
system($a);
?>

命令执行绕过空格

1.$IFS、$IFS$9、$IFS$@、$IFS$*等

在linux中IFS是分隔符的意思,linux中变量分两种,全局变量env和局部变量set,set中包含了env的全部变量,我们查看IFS的值发现env | grep IFS为空,而set | grep IFS有值,说明IFS是局部变量
在这里插入图片描述

我们来查看下$IFS具体的值,不难看出包含空格制表符与换行符
实践结果貌似都可以…
在这里插入图片描述
2.%09

16进制09在ascii码中为制表符,理论上同样可以用于绕过空格
在这里插入图片描述
由于linux命令行中不会自动解码,找一个在线的靶机作为演示,源码中简单的过了了flag的并使用/i匹配大小写
在这里插入图片描述
这边呢我是使用反斜线绕过了他对flag字符的过滤,反斜线大多为转移的意思(tac和cat类似,正着读取和反着读取的区别)
在这里插入图片描述
上面我是正常使用的是%20也就是url解码后的空格,下面尝试下制表符
在这里插入图片描述
3.{tac,flag.php}

linux另一种执行命令的方式,不涉及编码直接虚拟机中尝试下
在这里插入图片描述
4.使用重定向比如 <
在这里插入图片描述
命令执行绕过关键字
1.可使用变量赋值的方法
在这里插入图片描述
2.可用相同功能命令代替(没错linux可以使用dir,之前我一直以为dir是windos特有的…)
在这里插入图片描述
3.反斜杠
在这里插入图片描述
4.单双引号(这个真是yyds)
在这里插入图片描述
5.通过创建文件+*(星号)的方式
在这里插入图片描述
6.内联执行
在这里插入图片描述
7.编码绕过

`echo Y2F0IGZsYWcudHh0Cg==|base64 -d`//图片挡住了。。。

8.通配符*、?
在这里插入图片描述
喜欢的可以关注下公众号啊@/@http://mp.weixin.qq.com/s?__biz=MzkxOTI5NzY4MA==&mid=2247485854&idx=1&sn=c7d2029045def6ebae38e57faf3659be&chksm=c1a50261f6d28b7754e8e6a61e865eb2dc3c3466fe8bb530bc2fbacd68eeb58a00d2eee5080b#rd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值