plt 등을 알아도 인자를 넘겨주기 어려울 때 사용하면 좋을 것 같다. objdump로 찾기 예를 들어 libc 모르는 경우, PIE base 안다면(혹은 PIE가 적용되어있지 않다면) 코드 세그먼트 내에서 가젯 찾아보는 시도 가능 objdump 등으로 찾을 수 있다. 이를 사용한 문제는 아래!! (사실 내가 만든 문제다 ㅎㅎ 그런데 라업 보니까 이렇게 푸신 분들은 별로 없는듯...하다.. 그래도 이렇게 하면 무척 편리하게 풀수 있다!) https://dreamhack.io/wargame/challenges/1071 Santa House Description 산타 할아버지가 크리스마스를 맞아 드림이들을 모두 집에 초대해서 선물을 나눠주신대요! 착한 아이는 어쩌면 비밀스러운 선물을 받을 수 있을지도 몰라요..

To open new terminal in docker environment, we have to add this line to our python code.context.terminal = ['tmux', 'splitw', '-h'] If you didn't install tmux, you have to install it. It's one kind of Linux terminal. unfortunally I got this kind of error below.. You can solve it by changing your pwntools version (reference below) https://github.com/Gallopsled/pwntools/issues/1874

1. pip show pwntools 2. pwn version (얘는 도커 환경에서만 됐다)
https://cosyp.tistory.com/229 pwntools gdb.attach 사용법 - python process debugging gdb.attach 사용법 wargame이나 ctf 문제를 풀 때, 혹은 바이너리를 분석 할 때 파이썬으로 데이터를 입력하는 경우가 자주있다. example> p = process("binary") p.sendline("AAAA") 이 때 내가 입력한 데이터가 원하 cosyp.tistory.com https://snwo.tistory.com/133 [Linux] Pwntools gdb.attach() 하는법. python 익스코드를 작성한 뒤, gdb 를 attach 해 코드를 디버깅하고싶을때, gdb.attach() 를 사용합니다. from pwn import..

_rtld_global 관련 워게임을 풀다가 이건 다른 문제 풀이에도 많이 쓰일 것 같아서 포스트를 하나 더 작성한다. 예를 들어 _rtld_global의 주소를 우리가 릭 했다고 해도, 이 구조체 안 멤버 변수들 간의 오프셋이 궁금할 수가 있다. 이때 이 오프셋은 glibc나 우분투 버전 등에 의해 다를 수 있는데 이런 경우 공격 환경과 동일한 버전의 디버깅 심볼을 다운로드 한 후 gdb로 오프셋을 구할 수 있다. 1. 먼저 라이브러리 버전 및 ld 버전을 안 상태에서 glibc 버전을 구할 수 있다 이상태 그대로 libc-2.27.so를 실행해보자 libc를 실행하기 위해서는 ld 버전도 동일해야하는 것 같다. 위 주어진 ld-2.27.so랑 내 칼리에서 돌아가는 로더가 다르기 때문에 문제에서 주어진..

0. 로더 http://korea.gnu.org/manual/release/ld/ld-sjp/ld-ko_toc.html GNU 링커, LD 사용하기 - Table of Contents korea.gnu.org 바이너리가 사용하는 로더 종류와 내 컴퓨터 환경의 로더가 다른 경우 제대로 오프셋을 알아낼 수 없음 이때 patchelf 명령어를 사용해 바이너리가 지정한 로더를 사용할 수 있음 1. 설치 $ sudo apt-get install patchelf 2. ow_rtld가 ld-2.27.so를 사용하도록 설정 $ patchelf --set-interpreter ./ld-2.27.so ./ow_rtld 3. 확인 gdb로 ow_rtld에 들어간 다음, vmmap으로 우리가 설정한 로더가 잘 매핑되었는지 확..