假设我有一个要与之交互的服务。使用 netcat 会是这样的:
> nc 127.0.0.1 8080
hello
hi how are you?
我想自动化与此服务的交互,以执行一些攻击,例如格式字符串。所以我创建了一个 Python 脚本,让它工作起来真的很痛苦。这是代码:
t = Telnet(HOST, PORT)
t.write('2\n')
for _ in xrange(10)): print(t.read_some())
t.write('3\n')
for _ in xrange(12)): print(t.read_some())
这里的问题是服务的响应。我期望从这个脚本中得到的行为如下:
- 发送请求,例如“你好”
- 得到回应:“嗨,你好吗?”
在这种情况下,服务非常简单,但假设我有一个打印选项菜单或欢迎屏幕的服务,我必须阅读所有这些内容并手动找到对我发送的命令的响应(使用 for _ in xrange 。 ..)。
总结一下:仅考虑输入命令的响应,与此类服务交互的最佳方式是什么?
我不知道 python 是否适合这些事情。我尝试使用套接字,但由于功能 recv,它甚至比 telnet 更糟糕