Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python2
- from pwn import *
- import sys
- def check_values(values,target):
- count = 0
- for value in values:
- if value == target:
- count += 1
- if count > 0:
- print("Correct at at least one value!")
- #exit(1)
- def diff_values(old_values,values):
- diffs = [0]*len(values)
- for i in range(0,len(values)):
- diffs[i] = int(values[i]) - int(old_values[i])
- difflists.append(diffs)
- print(diffs)
- def diff_target(values,target):
- diffs = [0]*len(values)
- for i in range(0,len(values)):
- diffs[i] = int(target) - int(values[i])
- print(diffs)
- def create_inputs(number, length):
- # create input list
- inputs = [number] * length
- return inputs
- def test_inputs(inputs, valuelist):
- for input in inputs:
- old_values = valuelist
- r.sendline(str(input))
- sys.stdout.write(r.recvuntil("\x1b[1mvalues:\x1b[0m"))
- # read values
- valuestring = (r.recvuntil("|")).rstrip("|")
- sys.stdout.write(valuestring)
- values = [int(i) for i in valuestring.split()]
- sys.stdout.write(r.recvuntil("\x1b[1mtarget:\x1b[0m"))
- # read target
- targetstring = (r.recvuntil("|")).rstrip("|")
- sys.stdout.write(targetstring)
- targets = [int(i) for i in targetstring.split()]
- ###############
- # main
- ###############
- context(arch = 'i386', os = 'linux')
- # define variables for our target and port
- target = "127.0.0.1"
- port = 31337
- # connect to remote service
- r = remote(target,port)
- difflists = []
- # read banner and first set of values
- sys.stdout.write(r.recvuntil("\x1b[1mvalues:\x1b[0m"))
- valuestring = (r.recvuntil("|")).rstrip("|")
- sys.stdout.write(valuestring)
- values = [int(i) for i in valuestring.split()]
- sys.stdout.write(r.recvuntil("\x1b[1mtarget:\x1b[0m"))
- # read target
- targetstring = (r.recvuntil("|")).rstrip("|")
- sys.stdout.write(targetstring)
- targets = [int(i) for i in targetstring.split()]
- target = targets[0]
- sys.stdout.write(r.recvuntil("+---------------------------------------------------------------------------+\n"))
- check_values(values,target)
- print("Diff to target:")
- diff_target(values,target)
- # start testing inputs
- inputs = create_inputs(1,10)
- test_inputs(inputs,values)
- inputs = create_inputs(2,10)
- test_inputs(inputs,values)
- inputs = create_inputs(3,10)
- test_inputs(inputs,values)
- inputs = create_inputs(4,10)
- inputs = create_inputs(5,10)
- test_inputs(inputs,values)
- print("difflists:")
- inputvalue = 0
- i = 0
- for list in difflists:
- if i % 10 == 0:
- inputvalue += 1
- output = "Input value: "+str(inputvalue)
- print(output)
- print(list)
- i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement