이번에 팀 Zer0mous에서 실력향상을 위해 HITCON-Training 을 풀기로 했습니다. 현재 포너블을 주로 하는분이 저를 포함해


2명이라 저는 홀수번을 하고 짝수는 JSbach님이 하시며 http://bachs.tistory.com/entry/HITCON-Training-lab2-shellcraft?category=961837


여기에 올려질 예정입니다.ㅎㅎ




1. 분석




일단 32비트로 만들어져있고 별다른 방어기법이 적용되지 않은 걸 확인했습니다. 또 소스 분석을 위해 IDA로 열어보면


먼저 name을 표준 입력으로 받고 나중에 gets 함수로 입력값을 받아 s 에 저장하는걸 알 수 있습니다.

read함수는 입력값이 정해져있지만 gets함수는 enter가 눌러질때 까지 받는다는 점이 있어 오버 플로우가 발생할 수 있으며 


이번 문제는 기초적인 버퍼오버플로우를 할 수 있냐 없냐를 알아보는 문제인거 같습니다.


방법은 여러가지 있지만 간단하게 shellcode를 name에 넣고 s에는 그냥 name시작 주소를 넣는것으로 쉘을 딸려고 합니다.



일단 적당한곳에 브포를 걸어주고 값을 입력하면 peda라는 멋진 시스템이 알아서 인자가 입력된곳 == name시작주소를 찾아줍니다.



그래서 pwntools로 간편하게 작성하였습니다. payload에 name주소를 100번 넣어주는 이유는 굳이 더미 값 계산하지 않아도 100번 정도면 충분히 RET

까지 덮을 수 있으니 그냥 넣었습니다.ㅎㅎ



그래서 하면 성ㄱ.....하.....

 JSbach님 컴으로 같은 코드를 실행했는데 JSbach님은 아주 잘되더라고요.

뭐지 왜 나만 안되지...


어쨌든! sh도 불러왔고 했으니

이번에는 넘어가도록.....


하...담 문제는 잘됬으면 하는 마음입니다ㅠㅠ



'포너블 > HITCON-Training' 카테고리의 다른 글

HITCON-Training lab7  (0) 2018.01.01
HITCON-Training lab5  (0) 2017.12.31
HICON-Training lab1  (0) 2017.12.17

+ Recent posts