проблема с boofuzz с большим значением s_bytes
Я использую boofuzz в приложении для фаззинга определенных функций. Блок, который я создаю для своего вектора фаззинга, показан ниже:
with s_block("getPasswd"):
s_byte(0, name="usID", fuzzable=False)
s_bytes(value=bytes([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), name="dataChoose", size=16, max_len=16, fuzzable=False) # THIS IS 16 BYTES
s_byte(0,name="paswd", fuzzable=False)
s_byte(0,name="2fA", fuzzable=False)
s_byte(0,name="status", fuzzable=False)
s_word(0x0000, name="subData",fuzzable=False)
s_byte(0,name="adminUsr", fuzzable=True)
s_bytes(value=bytes([0x00]*170),name="hashOfPswd", size=170, max_len=170, fuzzable=False)
Мой код фаззинга работал отлично, пока я не изменил размер hashOfPswd на 170 (как видите). Первоначально было 50, и проблем не было, но, посмотрев на функцию, которую я хотел распустить, это размер, поэтому мне пришлось сделать это 170. Когда я это сделал, я получил следующую ошибку:
[2021-05-21 15:47:54,825] Check Failed: Target connection reset.
[2021-05-21 15:47:54,836] Error!!!! A custom post_send callback function raised an uncought error.
Traceback (most recent call last):
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\connections\tcp_socket_connection.py", line 98, in recv
data = self._sock.recv(max_bytes)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\sessions.py", line 1272, in transmit_fuzz
self.last_recv = self.targets[0].recv()
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\sessions.py", line 172, in recv
data = self._target_connection.recv(max_bytes=max_bytes)
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\connections\tcp_socket_connection.py", line 109, in recv
raise_(exception.BoofuzzTargetConnectionReset(), None, sys.exc_info()[2])
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\future\utils\__init__.py", line 440, in raise_
raise exc.with_traceback(tb)
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\connections\tcp_socket_connection.py", line 98, in recv
data = self._sock.recv(max_bytes)
boofuzz.exception.BoofuzzTargetConnectionReset
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\sessions.py", line 1568, in _fuzz_current_case
self.transmit_fuzz(target, self.fuzz_node, path[-1], callback_data=callback_data)
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\sessions.py", line 1275, in transmit_fuzz
raise BoofuzzFailure(message=constants.ERR_CONN_RESET)
boofuzz.exception.BoofuzzFailure
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\chxenofo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\boofuzz\monitors\callback_monitor.py", line 67, in post_send
f(target=target, fuzz_data_logger=fuzz_data_logger, session=session, sock=target)
File "C:\Users/chxenofo/Dropbox (Silicon Labs)/Christos/Security/Fuzzing/ZWave/Z-WaveFuzzing/common/py_tests\Fuzzer.py", line 169, in postCallback
if returnCode.hex() != "55":
AttributeError: 'NoneType' object has no attribute 'hex'
Это серия исключений в библиотеке boofuzz. Я подозреваю tcp_socket_connection.py, но это немного странно, поскольку обычно сокеты tcp допускают до 1 ГБ данных.
Кто-нибудь знает, как создать такой блок с таким размером векторов фаззинга и правильно его запустить? Или, может быть, что я должен изменить в нем, чтобы он мог нормально работать? заранее спасибо
1 ответ
Похоже, в вашем пользовательском
postCallback
функция.
Найдите полный ответ на странице https://github.com/jtpereyda/boofuzz/issues/519#issuecomment-849074553.