본문 바로가기

분류 전체보기

peda-arm, peda-mips peda-arm, peda-mips peda-arm, peda-mips요즘 arm과 mips 아키텍처를 공부하고있어서, 환경 설정을 마치고 툴을 좀 봤는데 이 두개가 peda 그 뭐지 어쨋든 peda와 굉장히 흡사하게 만들어진 arm, mips 전용 아 생각났다 extension이더라구요. 블로그에 기록을 해둘까 싶어 글 올립니다. peda-arm아직 써보진 않았는데 peda-mips와 흡사할 것 같음.아래 git에서 다운받을 수 있다.https://github.com/alset0326/peda-arm peda-mips한번 써봤는데 굉장히 좋다.아래 git에서 다운받을 수 있다.https://github.com/mutepigz/peda-mips peda와 흡사하게 vmmap, ropgadget, rops.. 더보기
arm, mips 크로스 컴파일링 및 디버깅 arm, mips cross compiling and debugging ubuntu 18.04 이상 버전으로 해주세요. apt repository 관련 문제로 이하 버전이 설치되어 오류가 많이 발생합니다.. gcc install with many arch sudo apt-get install gcc-7-multilib-arm-linux-gnueabi -y;sudo apt-get install gcc-7-multilib-arm-linux-gnueabihf -y;sudo apt-get install gcc-7-multilib-mips64el-linux-gnuabi64 -y;sudo apt-get install gcc-7-multilib-mips64-linux-gnuabi64 -y;sudo apt-get in.. 더보기
2019 securinet baby_two baby_two 2019 securinet baby_two간단한 overflow고 leak이 없을 뿐이라서 4bit brute forcing으로 풀 수 있을 것 같았지만 아니었다. stack boundary가 적용되어 있어 boundary value뒤 1바이트를 brute forcing하여 내 payload를 향하게 하면 된다. 그 후 남은 것은 간단하다.bss에 payload를 입력받은 후 boundary value에 bss를 넣고 setvbuf를 puts로 바꾼 뒤 leak 후 쉘을 얻으면 된다. 시간도 없고 서버도 느리고 해서 클라쪽에서만 땃는데 있다가 다시 해봐야겠다.사람들이 늦게 푼 이유가 있네.. ** 2019-11-07 ret2dl 이용한 라업 추가 from pwn import *​#cont.. 더보기
20190320 데이터통신 보호되어 있는 글입니다. 더보기
2019 utctf jendy's jendy's 2019 utctf jendy's대회 당시에는 포맷스트링이라.. 그냥 패스했는데 다시 풀어보니 분석의 중요함을 알려주는 문제였다. 이 바이너리에서 쓰이는 chunk들은 다음과 같다.x00000000 chunk struc ; (sizeof=0x20, mappedto_6)00000000 item_start_ptr dq ?00000008 item_end_ptr dq ?00000010 name_ptr dq ?00000018 item_num dq ?00000020 chunk ends​00000000 item struc ; (sizeof=0x20, mappedto_7)00000000 item_str db 24 dup(?)00000018 next_item_ptr dq ?00000020 item ends.. 더보기
2019 besidesSF slowfire slowfire 2019 besidesSF slowfire이걸로 water_dragon을 제외한 모든 포너블을 풀었다~ 취약점은 위 함수에서 발생한다.buf_sizea = 0x400이고, total은 최대 buf_sizea - 1이므로, buf_sizea > total을 충족시켜 두 번 입력받아 stack overflow가 발생한다. 이 바이너리는 nx도 존재하지 않아서 그냥 dup2 shellcode 짜서 슥 하면 된다. from pwn import *​context.log_level= 'debug'context.arch = 'amd64'​e = ELF('slowfire')#s = process(e.path)#s = connect('localhost', 4141)s = connect('slowfire-.. 더보기
2019 besidesSF genius genius 2019 besidesSF genius바이너리는 loader와 genius 두 개의 바이너리가 주어졌다. loader는 genius를 로드한 후, 코드를 입력받고 게임을 실행시켜주고 genius는 테트리스 바이너리이다. loader 부분을 분석해 보면 테트리스 게임에 불필요한 부분이 바로 보이는데 코드 패치 부분이다. 코드를 입력받고 apply_patch 함수를 부른다.패치는 총 두 번(2 byte) 할 수 있다.apply_patch 함수를 살펴보자. 우리가 입력한 코드를 통해 b1, b2, b3, b4, b5, b6가 결정되고 이는 idx와 val 계산에 사용된다. match 함수는 str to int 함수이다. 코드를 숫자로 매칭시킨다. 여기서 우리가 원하는 idx와 val값을 만들기 위.. 더보기
2019 besidesSF straw-clutcher straw_clutcher 2019 besidesSF straw_clutcher이건 미친문제다.바이너리 길이가 약 1000줄에 달하는 문제이다..분석이 가장 힘들었고, 익스는 쉬웠다.바이너리 길이가 너무 길다보니 취약점을 찾기가 매우 힘들었던 것 같다. 이 바이너리는 다음과 같은 기능을 한다.xPUT F.ILE 10 # 파일 만들기 (malloc)GET F.ILE # 파일 읽기 (print)RETR F.ILE # 파일 읽기 (print)DELE F.ILE # 파일 제거 (munmap, free)TRUN F.ILE 10 # 파일 사이즈 변경RENAME F.ILE A.AAA # 파일 이름 변경HELPLISTLOGIN a nonymous (작동 안함) 취약점은 rename 해주는 곳에서 발생한다.RENAME .. 더보기