|  |
| |
별빛을담아 |
'두서 없이'의 표본이시군요. 그래도 짐작가는 대로 말씀드리지요.
분명한건 대략 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 |
|