시스템 해킹

 1576, 1/79 회원가입  로그인  
   vngkv123
   asis CTF 문제풀다가....

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1852 [복사]


pwn영역 문제를 푸는데
간단한 워밍업 문제로 ASLR을 제외한 모든 보호기법이 풀린 문제가 하나있었는데, bss섹션의 +0x100의 구간부터가 쉘코드를 넣고 흐름을 돌렷을 때 실행이 되던데 그 구간이 Heap영역이라 그런가요?

그리고 universal gadget from __libc_csu_init 이라고 해서 저런게 있다는데
gdb상에선 아무리봐도 해당파일엔 없던거 같은데 저게 뭔지 모르겠네용 ㅠ
메인함수 실행전에 있다는데 ㅠㅜ

(잡담 : 64비트 재밋네용 ㅋㅋㅋㅋ)

  Hit : 3176     Date : 2017/04/12 12:55



    
해쿨러 아뇨 bss+0x100은 힙영역이 아닙니다
universal gadget은 지금 검색해봤는데 그냥 인자컨트롤하는 가젯이네요
이 가젯은 프로그램에서 실제 실행되는것은 아니고,
인텔 명령은 어디부터 읽느냐에 따라 다른명령이 되는데
push $0x12345678 은
68 78 56 34 12 인데 이걸 78부터 읽으면 다른 명령, 56부터 읽으면 다른명령이 됩니다
그런식으로 실제 프로그램에 존재하지 않는 것으로 보이는 인스트럭션들을 실행할 수 있습니다
2017/04/13  
vngkv123 reafelf상에선 bss영역 사이즈가 8로 나왓는데 그러면 bss+0x100이면 어디에 해당하는건가요? 그대로 bss영역인가요? 2017/04/13  
해쿨러 아 그건 실제로 프로그램에서 bss영역을 사용하는 크기구요
메모리는 항상 페이지 단위(리눅스에서는 0x1000단위)로 매핑되기 때문에 예를들어서 bss가
0x804a0b0인 경우에 실제 메모리 할당은 0x804b000까지 이뤄집니다
2017/04/13  
vngkv123 감사합니다 ㅇ ㅎㅎ 2017/04/13