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:
I hereby claim:
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") |
#!/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) |
#!/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 * |
#$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()) |