
[codegate quals 2018] - BaskinRobins31(basic x64)
2021. 4. 4. 23:53
Wargame/etc
1. 문제 보호 기법을 확인해보니 NX bit만 걸려있는 상황이다. 파일을 실행해보니 말 그래도 basinrobins31 게임을 한다. my_turn 함수과 your_turn 함수를 살펴보도록 하자. your_turn 함수를 살펴보니 read 함수로 입력받은 부분에서 overflow가 발생함을 알 수 있다. 다음과 같이 해서 쉘을 획득할 수 있을 것 같다. 1. 쓰기 가능한 영역에 binsh 저장 2. write 함수로 read_got leak 시킴 3. leak된 주소 받아서 system 함수 주소 구하고, got overwrite 함 4. read 호출하면 system 함수 호출되서 쉘 획득 gadget 세개짜리 (ret) 인자 1 인자 2 인자 3 함수 호출 gadget 세개짜리 (ret) . . ..

[Pwnable] Lazenca - ROP(x86) 정리
2021. 3. 29. 19:23
Hacking/Pwnable
Return Oriented Programming(ROP) -x86 ROP( Return-oriented programming )란? 공격자가 실행 공간 보호(NXbit) 및 코드 서명(Code signing)과 같은 보안 방어가있는 상태에서 코드를 실행할 수있게 해주는 기술이다. RTL + Gadgets 이 기법에서 공격자는 프로그램의 흐름을 변경하기 위해 Stack Overflow 취약성이 필요하고, "가젯(Gadgets)"이라고 하는 해당 프로그램이 사용하는 메모리에 이미 있는 기계 명령어가 필요하다. Gadgets - POP; POP; POP; RET ROP는 기본적으로 RTL 기법을 이용하며, 공격자는 RTL과 Gadgets을 이용해 공격에 필요한 코드를 프로그래밍 하는 것이다. 01.RTL(R..