Level19 Password is swimming in pink. 힌트는 다음과 같다. main(){ char buf[20]; gets(buf); printf("%s\n",buf);} 매우 간단해 보이는 코드인데 gets 함수를 쓴다. gets를 사용하면 위와 같이 buf는 20이지만 20이 넘어도 값을 받을 수 있고, 그대로 출력해준다.gets 함수는 bof에 매우 취약한 함수이며, scanf와 같이 입력받는 문자열의 크기와 주어진 변수의 크기를 고려하지 않는다.그렇다면, buf에 쭉 입력을 해줘서 ret을 건드리거나 하면 되지 않을까 라는 생각이 들었다. gdb로 본 어셈 코드도 엄청 짧다!! Dump of assembler code for function main:0x08048440 :push e..
pw is king poetic 이번엔 .c 파일은 없고 다른 문제들과 동일하게 attackme 파일만 있다. 힌트는 다음과 같다. #include void printit() { printf("Hello there!\n");} main(){ int crap; void (*call)()=printit; char buf[20]; fgets(buf,48,stdin); setreuid(3098,3098); call();} main 안에 setreuid가 있는걸 보니 왠지 환경변수를 사용해야할 것 같다.일단export SHELLCODE=$(python -c 'print "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x31\xc0\x50\x68..
level14도 bof 문제이다.힌트는 다음과 같다. 레벨14 이후로는 mainsource의 문제를 그대로 가져왔습니다.버퍼 오버플로우, 포맷스트링을 학습하는데는 이 문제들이최고의 효과를 가져다줍니다. #include #include main(){ int crap; int check; char buf[20]; fgets(buf,45,stdin); if (check==0xdeadbeef) { setreuid(3095,3095); system("/bin/sh"); }} 대충 코드를 보면 buf의 공간은 20이지만 fgets로 45만큼 받아서 buf에 저장한다.그리고 check가 0xdeadbeef 와 일치하면 level15의 쉘을 따낼 수 있다.crap은 어디서 쓰이는 걸까 궁그미 (gdb) disas ma..
level12도 attackme가 있는걸 보니 또 bof 문제인 것 같다. 힌트는 다음과 같다. #include #include #include int main( void ){char str[256]; setreuid( 3093, 3093 );printf( "문장을 입력하세요.\n" );gets( str );printf( "%s\n", str );} (gdb) disas mainDump of assembler code for function main:0x08048470 :push ebp0x08048471 :mov ebp,esp0x08048473 :sub esp,0x1080x08048479 :sub esp,0x80x0804847c :push 0xc150x08048481 :push 0xc150x0804848..
- Total
- Today
- Yesterday
- 0xdeadbeef
- 1번
- 설치
- 우분투
- 자바
- wargame.kr
- webhacking.kr
- 명령어
- cobolt
- pwnable
- java
- C
- 웹해킹
- Lord of SQL Injection
- 워게임
- c언어
- ftz
- my-pass
- lob
- attackme
- BOF
- 파이썬
- wargame
- Python
- MySQL
- Los
- pwnable.kr
- ubuntu
- lord of sqlinjection
- WebHacking
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |