Wargame.kr_PHP? C?_Write up

CTF 중점 스터디

2020. 1. 26. 18:21

처음 화면을 보면 32bit int 관련 문제인 것을 확인 할 수 있습니다.

 

화면 확인 시 D1, D2, get source 말고는 특이 사항이 없습니다.

 

get source 확인 시 D1과 D2의 관계를 알 수 있으며, 플래그 값을 얻는 조건 또한 확인 할 수 있습니다.

D1에는 결과가 1이 아닌 값, D2에는 결과 값을 입력 해야 플래그를 얻을 수 있습니다. 또한 그 연산은 p7.c로 하는 것을 확인 할 수 있었습니다.

 

P7.c 소스를 확인 해보니 일반적인 값 대입으로 1이 아닌 값을 얻는 것은 무리 인 것을 알 수 있습니다.

 

해당 if문을 우회 하기 위해 int형 최대 값을 입력하여 BOF를 진행하고자 vim을 통해 소스 작성 후 컴파일을 진행하였습니다.

 

gcc 이용하여 컴파일 하였습니다.

 

1~5까지 값은 if문에 의해 1 값을 출력하지만 중간 i+5로 인하여 2147483643 부터 BOF로 인하여 -2147483648으로 출력 되는 것을 확인할 수 있습니다.

 

입력 하고자 하는 폼에 글자가 9자리로 제한 되어 있어 개발자 도구로 변경하였습니다.

 

수정 후 D1과 D2에 각 값을 입력하였을 때 플래그 값이 정상적으로 출력 되는 것을 확인 할 수 있습니다.

 

작성자 : 방도훈

'CTF 중점 스터디' 카테고리의 다른 글

riceteacatpanda 15 wirte up  (0) 2020.01.27
riceteacatpanda BTS-Crazed Wirte up  (0) 2020.01.27
N00bCTF You Decode it? Write-up  (0) 2020.01.24
pwnable.kr passcode write up  (0) 2020.01.15
pwnable.kr flag write up  (0) 2020.01.14