Suppose I have a service to interact with. Using netcat it would be something like this:
> nc 127.0.0.1 8080
hello
hi how are you?
I want to automatize the interaction with this service in order to perform some attack e.g. format string. So I create a Python script and that was really painful to make it work. Here's the code:
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())
The problem here is the response from the service. The behavior I was expecting from this script was the following:
- Send request for example "hello"
- Get the response: "hi how are you?"
In this case the service is quite simple but suppose I have a service that prints a menu of options or a welcome screen, I had to read all this stuff and manually find the response to the command I sent (using the for _ in xrange ...).
To summarize: what's the best way to interact with such service by taking into account ONLY the response of an input command?
I don't know if python is right for this things. I tried using sockets but it was even worse than telnet because of the function recv