32bit 2

[HackCTF : Pwnable] pwning풀이 (32bit, underflow)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 하마터면 못풀뻔했다. 주어진 파일은 문제파일 바이너리 Analysis 일단 실행 쓰고싶은 바이트 수를 쓰고 그 바이트만큼 쓸 수 있다. IDA main은 간단하다. vuln 함수 하나 있다. 여기서 주목해야할 건 v2 변수가 int라는 것이다. 그래서 -1을 입력하게되면 언더플로우가 발생해서 겁나 큰 수가 되게 된다. get_n 함수는.. getchar()함수를 이용해서 '\n' 오기 전까지 입력받는 거다. (사실 저런 수 입력하는거 보면 -1 입력하고 싶은 욕구(?)가 생겨서 코드보기전에 일단 -1부터 눌러봤다 ㅋㅋ) How to exploit -1를 입력하여 BOF를 트리거 하여 ROP해주면 될 듯하다. 리모트로 익스하려면 ..

WAR GAME/HackCTF 2021.04.15

32bit에서 FSB (Format String Bug) 이해하기 -(1)

업데이트 : 2020.10.10 - 틀린 내용 수정 참고자료 : JSec님 블로그(blog.naver.com/yjw_sz/221889244689) FSB 저번 8월 말인가에 봤던 건데 오랜만에 보니까 까먹어서.. 정리해보려고 한다. printf(buf) 에서 흔히 FSB(포맷 스트링 버그) 취약점이 발견된다. printf의 인자 개수는 포맷 문자 개수로 결정된다. buf의 값을 우리가 마음대로 정할 수 있다면 포맷문자를 넣어버리면 우리가 원하는 값을 출력이 가능하다는 뜻이다. 예를 들어 인자로 %d만 넣었을 경우 main함수의 영역이 출력될 수도 있다. 사진 상 우측이 FSB 취약점이 발생한 경우이다. 이를 이용하여 main 함수 스택 내용을 모두 노출 시킬 수 있다. %p를 통해 메모리를 유출할 수 있..