Hint :
This program prints any input you give it.
Can you leak the flag?
Connect with nc 2018shell3.picoctf.com 57169
# 보호기법 확인
# 실행
while문으로 계속 반복해서 >을 출력해주면서 표준입력받는다.
(서버가 열려있다..!)
# code
v6와 s 변수의 거리는 0x40(60)바이트이다.
v6에 64바이트의 flag를 fgets로 쓰고, fgets로 표준입력받은 것을 s에 64바이트를 쓴다.
그리고 printf(&s); 로 출력해준다. 이때 Format String Bug가 발생한다.
이 printf(&s); 에서의 printf 호출 부분에 bp를 잡고 확인해본다.
표준입력한 값이 들어가는 0xffffcf6c 주소가 s 변수의 주소일 것이다.
아까 계산한 대로 이 변수 s에서 64바이트 내려가면 flag가 위치한다.
# exploit code
# exploit
8번째에 flag가 출력된다.
따라서 그냥 %8$s로 flag를 출력해도 된다.
[picoCTF 2018] authenticate (0) | 2020.01.31 |
---|---|
[picoCTF 2018] can you gets me (0) | 2020.01.31 |
[TUCTF 2018] Ehh (0) | 2020.01.29 |
[Def Camp 2016] Warm Heap (0) | 2020.01.22 |
[HITCON-Training] lab14 : magicheap (0) | 2020.01.12 |