Three more minor changs to ensure that HTTP response data is always treated as binary.

git-svn-id: file:///home/svn/framework3/trunk@10654 4d416f70-5f16-0410-b530-b9f4589650da
unstable
HD Moore 2010-10-12 16:29:35 +00:00
parent dbbd0dc07e
commit 567e42fafa
1 changed files with 3 additions and 2 deletions

View File

@ -292,7 +292,7 @@ module Exploit::Remote::HttpServer
def send_response(cli, body, headers = {}) def send_response(cli, body, headers = {})
response = create_response response = create_response
response['Content-Type'] = 'text/html' response['Content-Type'] = 'text/html'
response.body = body response.body = body.to_s.unpack("C*").pack("C*")
if (datastore['HTTP::compression']) if (datastore['HTTP::compression'])
self.use_zlib # make sure... self.use_zlib # make sure...
@ -324,7 +324,7 @@ module Exploit::Remote::HttpServer
response = create_response(302, 'Moved') response = create_response(302, 'Moved')
response['Content-Type'] = 'text/html' response['Content-Type'] = 'text/html'
response['Location'] = location response['Location'] = location
response.body = body response.body = body.to_s.unpack("C*").pack("C*")
cli.send_response(response) cli.send_response(response)
end end
@ -649,6 +649,7 @@ function sprayHeap(shellcode, heapSprayAddr, heapBlockSize) {
# #
# HTML evasions are implemented here. # HTML evasions are implemented here.
def send_response_html(cli, body, headers = {}) def send_response_html(cli, body, headers = {})
body = body.to_s.unpack("C*").pack("C*")
if datastore['HTML::base64'] != 'none' if datastore['HTML::base64'] != 'none'
case datastore['HTML::base64'] case datastore['HTML::base64']
when 'plain' when 'plain'