전체 글
-
-
-
-
[Pwnable] pwntools 설치 ( pip 설치가 안될 때 )Notepad/Pwnable 2021. 7. 1. 10:56
[Pwnable] pwntools 설치 sudo apt install python python-dev 여기까지는 잘 진행되는데 sudo apt install python-pip 이렇게 pip를 설치하려고 하면 에러가 떨어진다. 이럴 때 아래 명령어로 pip 설치하는 코드를 받아오면 됨 sudo wget https://bootstrap.pypa.io/pip/2.7/get-pip.py 그리고 실행을 하면 잘 설치가 되는것을 볼 수 있다. 노란 글자는 대충 python2.7 지원 안 한다는 소리 그리고 pwntools를 설치하면 python -m pip install pwntools 이렇게 정상적으로 설치가 왼료됨
-
[HackCTF : Pwnable] RTL_World (200p)Wargame/HackCTF 2021. 6. 8. 00:23
[HackCTF : Pwnable] RTL_World (200p) NX bit가 걸려있는데 문제 이름처럼 RTL기법을 이용해 우회하면 될 것 같다. 바로 실행해보면 이렇게 여러 개의 선택지가 있는데 2번에서 돈을 벌고 3,4에서 system 주소와 shell 주소를 구하여 5번에서 rtl을 이용하여 공격하면 된다. 해당 문제를 gdb로 보기에는 너무 길기 때문에 ida를 이용했다. 여기서 v6에 system, s1에 /bin/sh의 주소가 들어가는 것을 알 수 있다. 그리고 3번과 4번에서 각각 v6, s1을 출력해준다. 여기서 gold가 1999, 2999씩 있어야 하는데 2번에서 돈을 벌어야 한다. 그래서 Get_Money 함수를 보니 4번을 눌렀을 때 Hidden number를 찾았다고 출력하고 v..
-
[HackCTF : Pwnable] Offset (150p)Wargame/HackCTF 2021. 6. 4. 10:25
[HackCTF : Pwnable] Offset (150p) 보호 기법이 엄청 많이 걸려있다. 일단 쉘 코드는 사용하지 못할 것 같다. 실행해보면 어떤 함수를 실행하고 싶냐고 묻고 입력을 받는다. 바로 gdb로 확인해보자. main 함수를 살펴보면 [ebp-0x27]부터 입력을 받고 그것을 인자로 select_func라는 함수를 호출한다. select_func 함수에서는 받아온 인자를 strncpy함수를 이용해 0x1f만큼 select_func 함수의 [ebp-0x2a]에 복사한다. strncpy(ebp-0x2a, ebp+0x8, 0x1f) 그리고 여기서 [ebp-0xc]를 call 한다. 이 부분을 변조해야 할 것 같은데 쉘 코드를 사용할 수 없기 때문에 함수를 살펴보았다. 누가 봐도 flag를 출력한..
-
[HackCTF : Pwnable] Simple_Overflow_ver_2 (150p)Wargame/HackCTF 2021. 6. 3. 17:23
[HackCTF : Pwnable] Simple_Overflow_ver_2 (150p) NX가 꺼져있어 쉘 코드를 사용할 수 있을 것 같다. 실행해보면 처음에 입력을 받고 입력받은 주소를 출력해주는 것 같다. 그리고 다시 실행할지를 묻는데 y를 누르면 반복되고 n을 누르면 종료한다. 한번 더 실행해보니 주소 값이 바뀌었다. 여기까지의 정보로 생각을 해보면 입력에 쉘 코드를 넣고 ret를 출력되는 주소로 변조시키면 쉘이 실행될 것 같다. 그럼 이제 dgb로 스택의 공간이 얼마나 생겼는지 확인해보자 scanf를 통해 [ebp-0x88]부터 입력을 받는다. shell code + dummy로 0x88 + 4byte(sfp)를 덮고 ret를 출력되는 주소로 덮어보자. payload는 아래와 같다. 1 2 3 4..