본문 바로가기

system/writeup

holyshield 2019 masked_calculator

masked_calculator

holyshield 2019 masked_calculator

대회중에 풀긴 했는데 풀면서 오퍼레이터 문제에 진짜 취약하다는 걸 느껴서 포스팅한다.

 

위와 같은 메뉴로 구성이 되어 있다.

분석했을 때 특별한 점은 딱히 없었다..

 

먼저 두 정수를 입력 받고 2진수로 바꾼다.

 

이 후 사칙 연산에 대해서는 이 2진수를 이용하여 연산하는 과정이 담겨 있다.

별로 중요해보이지 않았다.

 

여기서, 연산한 값을 계속해서 HISTORY에 저장하는 함수가 존재한다.

 

취약점은 이곳에서 발생한다.

HISTORY4를 더해가며 연산한 값을 넣어주는데, HISTORYmainrbp-0xb0에 존재하고 있다.

연산 횟수 제한을 두지 않아, 스택 오버플로우가 발생한다!

 

이를 이용해 LEAK, STACK OVERWRITE 모든게 가능하다.

=를 통해 값을 대입하는 것이 아닌, += 로 값을 더해주므로, 릭이 가능하다.

history에서 출력해주는 값은, ixor 연산한 값이므로, 이들을 계산하여 libc_start_main을 릭하면 된다.

 


'system > writeup' 카테고리의 다른 글

2018 hctf babyprintf_ver2  (0) 2019.10.29
2019 seccon monoid_operator  (0) 2019.10.27
dvp 2019 monica's bank + dvp 해킹대회&컨퍼런스 후기  (0) 2019.10.22
root-me mips stack buffer overflow  (0) 2019.08.12
2019 securinet baby_two  (0) 2019.03.25