쓸거 다써서 안쓰렸는데, 요즘 쓰는게 늘어나서 좀더 써본당
FmtStr
refer : http://python3-pwntools.readthedocs.io/en/latest/fmtstr.html
주 사용법은
fmt =FmtStr( argv )
꼴로 사용한다.
argv 에는 execute_fmt, offset, padlen, numbwritten 이 들어간다. 다 쓰이니까 알아두자.
- execute_fmt : payload를 보낼때 쓰는 함수를 지정한다.
- offset : AAAA %p %p 같은거 했을때 몇번째 %p 에서 나오는지
- padlen : 패딩 필요할때 패딩 길이
- numbwritten : 몇글자 먼저 써있는지
def send_pay(pay):
p.sendline(pay)
fmt = FmtStr(execute_fmt=send_pay, offset=11, padlen=4, numbwritten=10000)
같은 꼴로 선언한다.
그 후
fmt.write( dest, src )
꼴로, 어따가 뭐쓸건지 지정한다.
그 후,
fmt.execute_writes()
로 실행한다
SROP
refer : http://python3-pwntools.readthedocs.io/en/latest/rop/srop.html
주 사용법은
frame =SigreturnFrame( argv )
꼴로 사용한다.
argv 에는 arch가 들어간다. 그냥 아키텍쳐고, 선언하기전에 context.clear(arch='amd64') 써도 된다.
그리고 걍
frame.eip = 0xdeadbeef
frame.esp = 12341234
꼴로 레지스터 설정해주고
bytes(frame) 해서 페이로드 보내주면 된다(grin)
'Analysis' 카테고리의 다른 글
Automatic Exploit Generation (1) | 2018.01.08 |
---|---|
Arm 아키텍쳐 (0) | 2018.01.06 |
HTTP 프로토콜 구조 (0) | 2017.12.11 |
syscall 을 이용한 rop (3) | 2017.11.06 |
Pwntools 기본적인 사용법 - 3 (1) | 2017.10.20 |