티스토리 뷰

쉘코딩 챌에서 pread, preadv, pread64로 표준입력(write - 표준출력) 받으려면 실패하고 오직 readv로만 가능하다.

write도 마찬가지. pread, preadv, pread64는 파일 읽기 할때만 쓰자.

 


 

sendfile 함수를 쓰면 파일 오픈한 상태에서 read안하고 바로 출력 가능하다

#include <sys/sendfile.h>

ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);

 


 

openat 의 첫번째 인자는 -1 주면 된다.

pay += shellcraft.pushstr("/flag")
pay += shellcraft.openat(-1, 'rsp', 0)
pay += shellcraft.pread(3, 'rsp', 0x100, 0)
pay += 'push rdx\n'
pay += 'push rsi'
pay += shellcraft.writev(1, 'rsp', 0x1)
p.send(asm(pay))

이런느낌으로 사용

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
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
글 보관함