Skip to content

Instantly share code, notes, and snippets.

@mjonasz
Created November 26, 2017 23:14
Show Gist options
  • Save mjonasz/ad4b1cab4bbdba938821ce6b8aa5e948 to your computer and use it in GitHub Desktop.
Save mjonasz/ad4b1cab4bbdba938821ce6b8aa5e948 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python2
# aplikacja oczekuje stringa 0x38 długości jako pierwszy argument CLI
# trzeba wpierw spatchować 0x401f36 bajt binarki na wartość 0xf4, następnie uruchomić ten program
# odbywa się tu bruteforce litera po literze, kiedy litera jest dobra, hackowana aplikacja wywala się (kod inny niż zero)
# wtedy wrzucamy znak do rozwiązania i próbujemy bruteforcować kolejny znak (zmieniając poprzedni żeby apka się nie wywalała)
# za każdym razem musimy przesyłać argument tej samej długości (0x38)
from pwn import *
context.arch = 'i386'
def execute(arg):
p = process(['./unknown2', arg])
p.shutdown()
p.wait_for_close()
status = p.poll()
p.kill()
return status != 0
correct = ''
for index in range(0, 0x38):
for char in range(33,128):
data = 'A'*index + chr(char)
data = data.ljust(0x38, 'A')
print "data: " + data
if execute(data) == True:
correct = correct + chr(char)
print "correct" + correct
break
print correct
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment