作为网络安全课程的一部分,我有一个用于模糊vulnserver的基本脚本。
当我的脚本将有效负载A * 100
发送到目标服务器时,我遇到了问题。我收到如下错误:
TypeError: a bytes-like object is required, not 'str'
。
SO上已经存在类似的问题,但它们似乎是在读取文件而不是通过套接字发送请求。
虽然我正在调试脚本,但已使用try/except
函数添加了print()
,如下所示,但这通常包装在调用方法中。我只是试图精确地确定异常的位置正在发生。
我曾尝试在多个地方使用encode()
,但这似乎没有任何作用。
父方法位于底部,完整解决方案位于Github
#!/usr/bin/python3
import socket
import sys
class Send:
def __init__(self, target):
self.ip = target.ip
self.port = target.port
self.path = target.path
def send_payload(self, payload):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2)
s.connect((self.ip, self.port))
s.recv(1024)
s.send((self.path + payload))
s.close()
except Exception as e:
print(f"Exception In send: {e}")
sys.exit()
从这里打电话...
#!/usr/bin/python3
from time import sleep
from send_request import Send
import sys
def find_crash(target):
buffer = "A" * 100
s = Send(target)
while True:
try:
s.send_payload(buffer)
sleep(1)
buffer = buffer + "A" * 100
except Exception as e:
print("Exception: " + str(e))
return len(buffer)