Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. #!/usr/bin/python2
  2.  
  3. from pwn import *
  4. import sys
  5.  
  6. def check_values(values,target):
  7. count = 0
  8. for value in values:
  9. if value == target:
  10. count += 1
  11. if count > 0:
  12. print("Correct at at least one value!")
  13. #exit(1)
  14.  
  15. def diff_values(old_values,values):
  16. diffs = [0]*len(values)
  17. for i in range(0,len(values)):
  18. diffs[i] = int(values[i]) - int(old_values[i])
  19. difflists.append(diffs)
  20. print(diffs)
  21.  
  22. def diff_target(values,target):
  23. diffs = [0]*len(values)
  24. for i in range(0,len(values)):
  25. diffs[i] = int(target) - int(values[i])
  26. print(diffs)
  27.  
  28. def create_inputs(number, length):
  29. # create input list
  30.  
  31. inputs = [number] * length
  32. return inputs
  33.  
  34. def test_inputs(inputs, valuelist):
  35. for input in inputs:
  36. old_values = valuelist
  37. r.sendline(str(input))
  38. sys.stdout.write(r.recvuntil("\x1b[1mvalues:\x1b[0m"))
  39. # read values
  40. valuestring = (r.recvuntil("|")).rstrip("|")
  41. sys.stdout.write(valuestring)
  42. values = [int(i) for i in valuestring.split()]
  43. sys.stdout.write(r.recvuntil("\x1b[1mtarget:\x1b[0m"))
  44. # read target
  45. targetstring = (r.recvuntil("|")).rstrip("|")
  46. sys.stdout.write(targetstring)
  47. targets = [int(i) for i in targetstring.split()]
  48. ###############
  49. # main
  50. ###############
  51. context(arch = 'i386', os = 'linux')
  52.  
  53. # define variables for our target and port
  54. target = "127.0.0.1"
  55. port = 31337
  56. # connect to remote service
  57. r = remote(target,port)
  58.  
  59. difflists = []
  60.  
  61. # read banner and first set of values
  62. sys.stdout.write(r.recvuntil("\x1b[1mvalues:\x1b[0m"))
  63. valuestring = (r.recvuntil("|")).rstrip("|")
  64. sys.stdout.write(valuestring)
  65. values = [int(i) for i in valuestring.split()]
  66. sys.stdout.write(r.recvuntil("\x1b[1mtarget:\x1b[0m"))
  67. # read target
  68. targetstring = (r.recvuntil("|")).rstrip("|")
  69. sys.stdout.write(targetstring)
  70. targets = [int(i) for i in targetstring.split()]
  71. target = targets[0]
  72. sys.stdout.write(r.recvuntil("+---------------------------------------------------------------------------+\n"))
  73. check_values(values,target)
  74. print("Diff to target:")
  75. diff_target(values,target)
  76.  
  77. # start testing inputs
  78. inputs = create_inputs(1,10)
  79. test_inputs(inputs,values)
  80. inputs = create_inputs(2,10)
  81. test_inputs(inputs,values)
  82. inputs = create_inputs(3,10)
  83. test_inputs(inputs,values)
  84. inputs = create_inputs(4,10)
  85. inputs = create_inputs(5,10)
  86. test_inputs(inputs,values)
  87.  
  88. print("difflists:")
  89. inputvalue = 0
  90. i = 0
  91. for list in difflists:
  92. if i % 10 == 0:
  93. inputvalue += 1
  94. output = "Input value: "+str(inputvalue)
  95. print(output)
  96. print(list)
  97. i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement