Предположим, у меня есть служба для взаимодействия. При использовании 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 _ в xrange . ..).
Подводя итог: как лучше всего взаимодействовать с такой службой, принимая во внимание ТОЛЬКО ответ на команду ввода?
Я не знаю, подходит ли для этого Python. Я пытался использовать сокеты, но это было даже хуже, чем telnet из-за функции recv
socket.makefile()
? Это позволяет вам читать строки из сокета, как если бы вы читали файл (for line in sock.makefile():
) - person akaIDIOT   schedule 07.06.2013