레벨 해킹

 2839, 1/142 회원가입  로그인  
   w7040
   http://없어요~
   Level 12

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3187 [복사]


도데체가 말입니다 .....

전 왜 안될까요 ...

level12에 관한 정보를 찾다가 | 하는거랑

여기 해쿨분이 올리신 cat 이거 설명하는거 봤는데도 이건 잘 이해를 못하겠네요 ㅋ

출력을 만들어줘야한다고 했는데 ... 이것도 한번더 설명해주시면 감사하겠고...

level11 에서 놉썰매를 이용해서 통과했는데 여기서도 | cat 붙여서 했는데

왜 안될까요 혹시 놉썰매가 안되는걸까해서 에그쉘을 써봐도 안되고

왜 괄호를 쓰면 '문장을 입력하세요'에서 바로 안나오고 엔터를 쳐야지 나올까요

괄호를 안쓰니까 바로 나오던데 .. 제 짧은 지식 도와주십시오 __

  Hit : 4398     Date : 2011/03/02 10:32



    
별빛을담아 '두서 없이'의 표본이시군요. 그래도 짐작가는 대로 말씀드리지요.
분명한건 대략 level15인가? 16인가? 그때까지 저도 NOP썰매를 이용했습니다.

| cat 이라고 하셨는데 정확히 하자면
(입력할 스크립트문;cat)|./attackme
이렇게 되는 거죠. 다만 괄호안에 들어가는 경우에는 `가 뭍지 않습니다.
예시] (perl -e 'print "\x90"x272';cat)|./attackme

바로 넘어가지 않는 경우라...
확실하진 않습니다만 2가지 경우를 봤습니다. 1번째는 한계범위를 넘어갔을 때
예를 들어 NOP를 10개 주면 엔터를 한번 더 눌러야 되지만 10000개를 넣으면 그냥 넘어갑니다.

두번째는 argv형식으로 받는게 아니라 함수형식으로 받는 경우입니다.
level12처럼 fget이나 gets 또는 scanf같은 함수로 입력값을 받을 경우에는
함수에서 NULL이나 엔터값을 데이터입력의 끝으로 받아들이기 때문에 해당 키값이 입력되기 전까지는 안넘어갑니다.
2011/03/03  
w7040 음 .... 그 ` 이거 때고 했는데도 안되네요 ..

그리고 음 .. 처음에 문장을 입력하세요 에서 엔터를 쳐야

perl 에서 친게 나오는데 이것도 함수로 입력을 받아서 그런건가요 ??

아직도 감을 못잡겠습니다... 죄송해요 ㅠㅠ
2011/03/03  
별빛을담아 level11과 level12의 소스를 한번 비교해 보세요
11의 경우는 main함수 뒤에 argv라는 부분으로 입력받는데
12의 경우는 main함수뒤의 argv가 아닌 함수로 입력을 받습니다.
2011/03/03  
w7040 근데 음 .. 그니까 잘 설명을 못하겠네요 죄송 ㅠㅠ

코드만 쓰면 바로 넘어갑니다 ... 근데 ;cat 을 붙이면 엔터를 쳐야합니다 ..

그리고 레벨 11 에서 쓴 코드를 ` 빼고 적절하게 갔다 붙여도 되질 않네요

혹시나 해서 엔터를 누르면 10 이 들어가니까 하나 놉을 빼도 안되고 ....

문제가 뭘까요 ㅠㅠㅠ 도와주세요 ㅠㅠㅠㅠ
2011/03/06  
w7040 아 그리고 ... 그 gdb에서 | 처럼 perl 이용해서 집어넣는건 없나요 .. ? 2011/03/06