Hackctf 내 버퍼가 흘러넘친다 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2020. 5. 21. 23:37Hackctf

자 이번에는 내 버퍼가 흘러넘친다!!!!!!!!~~~~~~~~!!!!를 풀어볼거다.

 

 

 

우선 파일을 실행해보았다....

이름을 입력하라한 후 input값을 아무거나 넣으면 프로그램이 종료되는 형식이다.

보호 기법을 확인해보니 아무것도 걸려있지 않다 즉 쉘코드를 사용할 수 있다는 말씀!!

 

그럼 늘 해왔듯 IDA로 분석해보자!

 

 

음 이전문제들과는 다르게 수상한 함수이름은 없다. 

아마도 main함수 내에서 bof가 나타날거같다

 

기존의 문제들은 쉘을 실행시켜주는 함수가 있었지만 이문제는 쉘코드를 넣어서 풀어야 한다.

 

일단  s의 크기는 14 -->>> 20

name 의 크기는 32 -->>> 50

 

쉘코드를 s에 넣기에는 s의 크기가 20으로 너무 작다 (shellcode의 크기는 거의 25~32정도)

 

따라서 name에 shell을 실행하는 코드를 넣은 후

 

s 에다 20 +  sfp 4를 더해 24byte의 임의의 값으로 덮어준 후 뒤의 주소를 name으로 바꾸면 

name 함수가 실행되며 함수안에 저장된 쉘코드가 실행되어 우리는 쉘을 얻을 수 있습니다.

 

여기서 필요한것은 name의 주소! 

 

아이다에서 그냥 name을 더블클릭하니 bss영역에 있는 name함수의 주소를 알려준다

 

역쉬 킹갓 엠페럴 제네럴 충무공 판타스틱 붐바스틱 아이다.

 

c언어로 코드를 짜보쟈!

 

 

이렇게 코드는 shell을 name 안에다가 넣어주고 name주소로 bof 귀귀

 

그러면 결과는??

 

맨처음 bss_name 의 주소를 잘못 입력해서 다시 푸는 문제인데도 해맷다 ㅋㅋㅋㅋㅋㅋ

 

역시 코드의 문제점은 남이 찾아주는걸로..

 

끝!

'Hackctf' 카테고리의 다른 글

Hackctf Forensic 1번  (0) 2021.03.27
x64 Buffer Overflow150  (0) 2020.05.28
Hackctf basic_bof #2  (0) 2020.05.21
hackctf basic_bof  (0) 2020.05.21
Hack ctf bof_basic #1번  (0) 2020.04.23