bash破壳漏洞反弹shell

来源:互联网 发布:软件配置管理计划书 编辑:程序博客网 时间:2024/04/30 00:03

0x00 破壳漏洞原理

在bash里边输入

~ export name='() { echo "inside name";}; echo "outside name";'

查看环境变量

~ env|grep name~ name=() { echo "inside name";}; echo "outside name";

这时你会发现当进入子shell的时候,直接输出 outside name

~ bash~ outside name

还要进入子shell才可以成功执行代码,于是问题来了
— 如果能一句话解决进入子shell并且输出就能利用—
然后聪明的黑客就尝试构造实现如此功能的语句

~ export name='() { :;}; echo outside name';bash

输入回车,直接显示输出的内容

~ outside name

0x01 利用条件
- web对bash进行调用,因为漏洞是存在bash里边的
- web会将我们可控的参数传入环境变量里边
- 确定目标bash版本是存在漏洞的
- 能够将返回结果返回过来

0x02 利用过程
首先登陆目标的网站,访问指定目录,发现确实在环境变量里边存入了我们访问的user-agent
这里写图片描述
然后进行构造user-agent,可以使用burpsuite抓包修改,或者火狐浏览器用user agent switch插件来修改
我这里使用burpsuite抓包,首先设置浏览器的代理
这里写图片描述
配置完成以后,再次访问目标网页,然后请求包就会在burpsuite里边被拦截,修改user-agent

当然,我们的目的是反弹一个shell回来,需要打开一个终端,然后监听user-agent里边所写的端口,这时候打开一个终端 输入
nc -l -p 8888 (-l 为监听模式 -p指定端口)
这里写图片描述
然后再burpsuite里边点击forward(转发),之后就可以看到刚才输入nc -l -p 8888
的下边出现了一个不属于自己的shell,到这里,就成功的反弹了一个shell
这里写图片描述

第一次认真记录过程,大牛绕过,同为小白,共同进步

0 0
原创粉丝点击