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 블로그 개설

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
eli_ez3r

eli_ez3r

[pwnable.kr][Toddler] random 문제풀이
0x02 Study :)/Pwnable

[pwnable.kr][Toddler] random 문제풀이

2018. 8. 14. 15:34

Random

#include <stdio.h>

int main(){
	unsigned int random;
	random = rand();	// random value!

	unsigned int key=0;
	scanf("%d", &key);

	if( (key ^ random) == 0xdeadbeef ){
		printf("Good!\n");
		system("/bin/cat flag");
		return 0;
	}

	printf("Wrong, maybe you should try 2^32 cases.\n");
	return 0;
}

 

rand 함수로 랜덤값을 가져오고 있다. 하지만 컴퓨터에서 랜덤값은 항상 똑같은 패턴으로 생성된다. 그래서 보통 랜덤값을 사용할 때에는 rand 함수로 나온 값에 현재 시간이나 다른 요소들을 포함하여 생성한다.

 

이 문제에서는 단순히 rand 함수만 사용하기 때문에 랜덤값을 추출할 수 있다.



(gdb) x/x $rbp-4
0x7ffd79059f2c:	0x6b8b4567

rand함수가 실행된 이후에 BP를 걸어 값을 확인해 보면 0x6b8b4567가 나온다.

XOR연산의 특징은 A xor B = C 일때, A xor C = B 라는 특징이 있다.

결론적으로 key값은 0xdeadbeef xor 0x6b8b4567 을 하면 얻어 낼 수 있다.



root@kali:~/BoB7/pwnable/flag# python
Python 2.7.15 (default, May  1 2018, 05:55:50)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> str1 = 0xdeadbeef
>>> str2 = 0x6b8b4567
>>> print str1 ^ str2
3039230856

 

key값은 3039230856이 된다.

 

flag : Mommy, I thought libc random is unpredictable...




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

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




저작자표시 비영리 변경금지 (새창열림)
    '0x02 Study :)/Pwnable' 카테고리의 다른 글
    • [pwnable.kr][Toddler] leg 문제풀이
    • [pwnable.kr][Toddler] input 문제풀이
    • [pwnable.kr][Toddler] passcode 문제풀이
    • [pwnable.kr][Toddler] flag 문제풀이
    eli_ez3r
    eli_ez3r

    티스토리툴바