Skip to content

Commit

Permalink
Merge pull request #231 from hduarte/master
Browse files Browse the repository at this point in the history
Customisable size for target recv function
  • Loading branch information
jtpereyda authored Feb 15, 2019
2 parents 707d6cd + 614f0f3 commit 4b3a0ab
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions boofuzz/sessions.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@
from . import exception
from .web.app import app

DEFAULT_MAX_RECV = 8192


class Target(object):
"""Target descriptor container.
Expand All @@ -47,12 +45,13 @@ class Target(object):
connection (itarget_connection.ITargetConnection): Connection to system under test.
"""

def __init__(self, connection, procmon=None, procmon_options=None, netmon=None):
def __init__(self, connection, procmon=None, procmon_options=None, netmon=None, max_recv_bytes=10000):
self._fuzz_data_logger = None

self._target_connection = connection
self.procmon = procmon
self.netmon = netmon
self.max_recv_bytes = max_recv_bytes

# set these manually once target is instantiated.
self.vmcontrol = None
Expand Down Expand Up @@ -110,7 +109,7 @@ def pedrpc_connect(self):
for key in self.netmon_options.keys():
eval('self.netmon.set_%s(self.netmon_options["%s"])' % (key, key))

def recv(self, max_bytes=DEFAULT_MAX_RECV):
def recv(self, max_bytes=None):
"""
Receive up to max_bytes data from the target.
Expand All @@ -120,6 +119,9 @@ def recv(self, max_bytes=DEFAULT_MAX_RECV):
Returns:
Received data.
"""
if max_bytes == None:
max_bytes = self.max_recv_bytes

if self._fuzz_data_logger is not None:
self._fuzz_data_logger.log_info("Receiving...")

Expand Down Expand Up @@ -983,7 +985,7 @@ def transmit_normal(self, sock, node, edge, callback_data):
self._fuzz_data_logger.log_fail(msg)
try: # recv
if self._receive_data_after_each_request:
self.last_recv = self.targets[0].recv(10000) # TODO: Remove magic number (10000)
self.last_recv = self.targets[0].recv()

if self._check_data_received_each_request:
self._fuzz_data_logger.log_check("Verify some data was received from the target.")
Expand Down Expand Up @@ -1037,7 +1039,7 @@ def transmit_fuzz(self, sock, node, edge, callback_data):

try: # recv
if self._receive_data_after_fuzz:
self.last_recv = self.targets[0].recv(10000) # TODO: Remove magic number (10000)
self.last_recv = self.targets[0].recv()
except exception.BoofuzzTargetConnectionReset:
if self._check_data_received_each_request:
self._fuzz_data_logger.log_fail(constants.ERR_CONN_RESET)
Expand Down

0 comments on commit 4b3a0ab

Please sign in to comment.