상세 컨텐츠

본문 제목

[HITCON-Training] crack

SYSTEM HACKING/CTF, etc

by koharin 2020. 1. 2. 17:59

본문

728x90
반응형

1. 보호기법 확인

 

 

2. 과정

 

 

password가 매 실행마다 random으로 결정되는데 그 값을 출력해주지 않는다.

근데 password를 입력했을 때 이 password 변수의 값과 일치해야지 flag 파일 내용이 출력된다.

 

 

근데 이름을 buf 변수에 입력받고 출력할 때 그냥 printf(&buf)로 출력해서 format string bug 취약점이 존재한다.

따라서 이름을 입력받을 때 password의 주소를 알 수 있으므로 FSB를 사용해서 password 값을 leak하고,

nptr 변수에 패스워드를 입력받을 때 이 leak 한 값을 줘서 flag가 출력되도록 한다.

 

$를 사용하면 %n 전까지의 정확한 위치를 알지 않아도 구할 수 있다.

 

payload를 pay = p32(password_addr) + "%10$s%n" 으로 주면, password 주소 위치인 %s로 password값이 출력된다.

4바이트이므로 leak해서 받은 password의 길이 4만큼 잘라서 password 변수에 저장하고 unpack한다.

 

패스워드를 입력하고 atoi 함수로 password 값과 비교하므로 str 형으로 변환한다.

 

 

728x90
반응형

'SYSTEM HACKING > CTF, etc' 카테고리의 다른 글

[HITCON 2016] SleepyHolder  (0) 2020.01.08
[HITCON-Training] craxme  (0) 2020.01.02
[Codegate2018] BaskinRobins31  (0) 2020.01.01
simple_heap  (0) 2019.12.21
[TAMU 2019] pwn3  (0) 2019.08.23

관련글 더보기