Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am mjonasz on github.
  • I am maciejjonasz (https://keybase.io/maciejjonasz) on keybase.
  • I have a public key whose fingerprint is 0686 FE10 7A37 8E3B ED5C 0E39 A15D 6395 7E58 4FA1

To claim this, I am signing this object:

# to simulate remote binary correctly
socat TCP-LISTEN:31337,fork,reuseaddr EXEC:"./server.py",pty,stderr
#!/usr/bin/env python2
from pwn import *
from struct import pack,unpack
context(arch = 'i386', os = 'linux', log_level='debug')
#x = process('./vuln')
x = remote('35.198.98.140','45067')
#x = remote('127.0.0.1','6000')
#!/usr/bin/env python2
from pwn import *
from struct import pack,unpack
context(arch = 'i386', os = 'linux')#, log_level='debug')
def connect(offset):
#x = process('./vuln')
x = remote('35.205.206.137','1996')
#raw_input("klik")
@mjonasz
mjonasz / vuln-chat
Last active November 26, 2017 23:15
#!/usr/bin/env python2
#pierwszym scanfem nadpisujemy format string drugiego scanfa,
#potem drugim scanfem nadpisujemy adres powrotu z maina na funkcje z flago
from pwn import *
context.arch = 'i386'
#p = process('./vuln-chat')
p = remote('vulnchat.tuctf.com', 4141)
@mjonasz
mjonasz / vulnchat2
Last active November 26, 2017 23:15
#!/usr/bin/env python2
#okazalo się że można nadpisać dwa mnie znaczące bajty adresu powrotu,
#to wystarcza żebo skoczyć no metody drukującej flage - nie trza żadnych ropów
from pwn import *
context.arch = 'i386'
#p = process('./vuln-chat2.0')
p = remote('vulnchat2.tuctf.com', 4242)
#!/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 *
@mjonasz
mjonasz / clean.ps1
Last active August 3, 2022 20:18
powershell
#$ErrorActionPreference = "ContinueSilently"
#[console]::BackgroundColor = "black";[console]::ForegroundColor = "white";cls;Set-Alias -Name x -Value Write-Host;$host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size 95,25;$host.UI.RawUI.WindowSize = New-Object System.Management.Automation.Host.Size 95,25;$host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size 95,25;$host.UI.RawUI.WindowSize = New-Object System.Management.Automation.Host.Size 95,25;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x ' ' -b 0 -n;x
#!/usr/bin/env python3
# dostajemy kostke rubika z qrcodem, trzeba ją ułożyć i przeczytać qr cody, w którymś jest link do następnego levelu
# tutaj zamiast ją układać robię permutacje krawędzi * permutacje rogów (z odpowiednim obrotem),
# to daje 4!*4! per ściane, czyli jeszcze *6 per kostke - to je spoko, najwolniejsze tu jest ściąganie obrazków z japonii
from PIL import Image
import zbarlight
import itertools
import requests
#!/usr/bin/env python3
# probuje bit po bicie, pillow mi się wywalał na oryginalnym pliku
# https://files-quals.seccon.jp/tktk-892009a0993d079214efa167cda2e7afc85e6b9cb38588cba9dab23eb6eb3d46
from PIL import Image
from io import BytesIO
file = open("broken.jpg", "rb")
data = list(file.read())