강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

제갈융님의 프로필 이미지
제갈융

작성한 질문수

해킹 입문부터 중급까지, 한 번에 배우는 시스템 해킹 & 리버싱

ROP Exploit Scenario

rop64 질문입니다

작성

·

13

0

image.png

여기서 flag를 ls 입력하면 나와야 되지 않나요..? 왜 안나오는지 모르겠어요

답변 2

0

knockOn님의 프로필 이미지
knockOn
지식공유자

안녕하세요! 정상적으로 셸이 획득되지 않아 발생한 문제 같네요! 익스플로잇을 한번 더 점검해보는게 좋을 듯 합니다 ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다. 제갈융님.

ROP (Return-Oriented Programming) 관련 문제에서 의도한대로 ls 명령을 실행했는데도 기대한 결과가 표시되지 않는 경우에는 여러 가지 원인이 있을 수 있습니다. 다음은 고려할 만한 몇 가지 사항입니다:

  1. 메모리 손상 여부: ROP 체인 구성 시, 스택에 잘못된 값이 덮어쓰여 프로그램 흐름이 예상과 다르게 진행될 수 있습니다. 메모리 주소와 오프셋을 다시 한번 점검해보세요.

  2. 라이브러리 버전 차이: 로컬 환경과 서버 환경의 라이브러리 버전 차이로 인해 메모리 주소 등이 상이할 수 있습니다. 실행 환경을 최대한 동일하게 맞추거나, ASLR(Address Space Layout Randomization) 등의 무작위화 기법이 영향을 미치고 있지는 않는지 확인이 필요합니다.

  3. 출력 버퍼링 문제: 출력이 버퍼링되어 stdout에 표시되지 않을 수 있습니다. stdio(표준입출력)를 언버퍼링(Unbuffering) 모드로 설정해보세요. 이를 위해 setvbuf(stdout, NULL, _IONBF, 0);를 사용하거나, fflush(stdout);을 적절한 위치에 삽입할 수 있습니다.

  4. 권한 및 경로 문제: flag 파일의 경로나 권한에 따라 접근이 제한될 수도 있습니다. ls 를 실행했을 때 해당 파일이 나오는지 확인하세요. 디렉토리의 모든 파일과 디렉토리를 일일이 탐색해보는 것도 방법입니다.

추가적으로 참고할 수 있는 유사한 질문 및 답변은 다음과 같습니다:

질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

제갈융님의 프로필 이미지
제갈융

작성한 질문수

질문하기