호그와트

드림핵 메모리 누수 문제

영웅*^%&$ 2022. 1. 22. 15:22
728x90

str을 정수로 변경하면 어떻게 값이 나오는지 궁금해지기 시작했다

처음부터 여기가 핵심이 된다고 생각했기 때문이다

str(0xdeadbeef)는 정수로 변경하면 (파이썬으로 그 값을 구할 수 있다) 3735928559이다

그런 식으로 순차적으로 값을 넣으면

1. Join

2. Print information

3. GIVE ME FLAG!

>1

Name: AAAAAAAAAAAAAAAA (attack vector)

Age: 3735928559 (attack vector)

1. Join

2. Print information

3. GIVE ME FLAG!

> 3

1. Join

2. Print information

3. GIVE ME FLAG!

> 2

Name: AAAAAAAAAAAAAAAA���DH{a77ae81944bbbe70adb10d98dc191379}

Age: 2147483647

1. Join

2. Print information

3. GIVE ME FLAG!

> TIME OUT

이런 식으로 값이 나오게 된다

*당연히 핵심은 메모리 값을 아무 dummy값도 없이 받아온다는 것이고(여유 없이) 처음에 join을 이용해서 attack vector를 만드는 것이 가능하다는 것이다

네임을 16개 꽉 채우고 age에 str(0xdeadbeef) = 3735928559를 쓰는 것은 그 메모리를 꽉 채우는 것을 의미한다

그 후에 3으로 플래그를 불러오게 되고 정보를 뽑게 되면 (2번)

플래그 값이 나오게 된다

728x90

'호그와트' 카테고리의 다른 글

드림핵 mango를 먹자  (0) 2022.01.22
드림핵 session-basic  (0) 2022.01.22
웹해킹 26번 문제  (0) 2022.01.22
웹해킹 25번 문제  (0) 2022.01.22
드림핵 read_flag  (0) 2022.01.22