일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 고르드
- graphql with RN
- useMutation error
- 화이트해커를 위한 웹 해킹의 기술
- promise처리
- 앙버터마카롱
- 잠실새내 도그존
- 홍대 카페 장쌤
- graphql with reactnative
- 잠실새내
- promise메서드
- 토라비
- 비동기배열처리방법
- 신촌 소문난집
- 비동기배열
- 지보싶 신촌점
- graphql react native
- 금별맥주
- graphql 400
- typescript
- apolloclient
- 예쁜술집 예술
- apollo react native
- 도그존
- graphql mutation error
- graphql
- 화이트 해커를 위한 웹 해킹의 기술
- 홍대 토라비
- 홍대 예술
- 운정 소바동
- Today
- Total
목록전체 글 (151)
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/csW9XD/btqSpGVDrjH/vw3D4YwheJmyYk7AKYDGKK/img.png)
id: assassin pw: pushing me away /* The Lord of the BOF : The Fellowship of the BOF - zombie_assassin - FEBP */ #include #include main(int argc, char *argv[]) { char buffer[40]; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack retbayed you!\n"); exit(0); } if(argv[1][47] == '\x40') { printf("library retbayed you, too!!\n"); exit(0); } // strncpy instead ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/berWhE/btqSduBL2hI/wqwdkdyNgRtlLVTCFmfuYK/img.png)
id: giant pw: one step closer /* The Lord of the BOF : The Fellowship of the BOF - assassin - no stack, no RTL */ #include #include main(int argc, char *argv[]) { char buffer[40]; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack retbayed you!\n"); exit(0); } if(argv[1][47] == '\x40') { printf("library retbayed you, too!!\n"); exit(0); } strcpy(buffer, ar..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cWEntt/btqRXHBWbl9/XL1dOmBgfENgkWaixGVRr0/img.png)
id: bugbear pw: new divide /* The Lord of the BOF : The Fellowship of the BOF - giant - RTL2 */ #include #include #include main(int argc, char *argv[]) { char buffer[40]; FILE *fp; char *lib_addr, *execve_offset, *execve_addr; char *ret; if(argc < 2){ printf("argv error\n"); exit(0); } // gain address of execve fp = popen("/usr/bin/ldd /home/giant/assassin | /bin/grep libc | /bin/awk '{print $4}..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cUTdRc/btqRQTbj4Hc/gDHd88Xb4efI0Kzetwm3W0/img.png)
id: level20 pw: we are just regular guys 이번에는 fgets에서 79바이트만 읽기 때문에 BOF를 사용할 수 없다. printf(bleh)를 보면 일반적이지 않은 형식으로 bleh를 출력하고 있다. C언어에서는 출력할 때 %d, %s, %c 등 과 같은 형식 지정자를 사용하는데 여기서는 이를 사용하지 않아 FSB(포맷 스트링 버그)가 발생한다. FSB 위와 같이 문자열만 입력하는 것이 아니라 %x와 같은 형식 지정자가 일반 문자열에 포함되어 있으면 문자열을 출력할 뿐만 아니라 서식문자가 명령어처럼 실행되어 문자열로 입력하지 않은 부분이 출력되는 것을 볼 수 있다. 다음과 같이 스택이 구성되어 있을 때 print(bleh)가 실행되면 스택의 &bleh에서 바로 bleh의 내..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CAgqD/btqRL4j8If7/m4kLbaXgjbmRytYKPPYKbK/img.png)
id: darkknight pw: new attacker /* The Lord of the BOF : The Fellowship of the BOF - bugbear - RTL1 */ #include #include main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf("argv error\n"); exit(0); } if(argv[1][47] == '\xbf') { printf("stack betrayed you!!\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } argc