분류 전체보기 309

[pwnable.xyz] strcat 풀이 (OOB)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro maxlen을 늘려서 함수포인터를 바꾸는 방향으로 풀어보았다. (name 범위 밖에 접근가능하니깐 OOB 취약점이 터진다고 생각했다.) 문제에 워낙 FSB가 대놓고 터져서 FSB로만 풀 생각을 했었는데...... 이런 방법이 있었군 ㅇㅁㅇ!! https://www.notion.so/jir4vvit/pwnable-xyz-strcat-OOB-8e47aba1a25e46c986ec4f25f49edf82 [pwnable.xyz] strcat (OOB) 워게임 사이트 : HackCTF (https://ctf.j0n9hyun.xyz/) www.notion.so

[pwnable.xyz] Game 풀이 (strlen)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro Tired of math already? Try getting the highest score possible. 이거 디스크립션이 위랑 같이 되어있었다.d 이거 바로 앞 문제가 계산놀이였어서, 이것도 수학으로 문제푸는,,, 그런 문제인 줄 알았당 ㅋㅎ https://www.notion.so/jir4vvit/pwnable-xyz-Game-80125d72aec34c858a98c88ccf2f57b9 [pwnable.xyz] Game 워게임 사이트 : HackCTF (https://ctf.j0n9hyun.xyz/) www.notion.so

integer overflow 2

코드 출처 : https://lactea.kr/entry/pwnablexyz-l33t-ness-write-up pwnable.xyz 문제 풀다가 integer overflow 개념 조금 더 잡아야할 필요성을 느꼈다. 지난번에 비슷한 주제로 글 쓴 적 있는데 이 포스팅이 더 실용적인 것 같다. signed int -2^31 ~ 2^31-1 –2147483648 ~ 2147483647 unsigned int 0 ~ 2^32-1 0 ~ 4294967295 #include #include int main() { char a[16]; read(0, a, 0x10); int b = atoi(a); printf("%d\n",b); } signed int이다. # 입력 # 출력 2147483647 # int 최대 범위..

System Hacking 2021.05.19

[pwnable.xyz] 133t-ness 풀이 (integer overflow, 계산놀이)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 정수로 하는 계산놀이다. Analysis mitiagtion 사실 문제 풀 때 코드부터 확인했다. 보호기법 확인안해도 될 것 같아서 문제풀 때는 하지 않았었다. execution 매정하게 종료된다.. code IDA 켜자마자 함수 목록이 쫘라락 나온다. round_1, round_2, round_3 반환값이 0이 아니면 win 함수를 실행시킨다. round_1 x와 y에 read함수로 입력 받는다. 빨간색 네모 strchr 함수를 이용하여 해당 문자열에 '-' 문자가 포함되어있는 지 확인한다. 포함되어 있으면 포함된 곳의 포인터를 반환하고 없으면 Null 포인터를 반환한다. (false) if문이 flase(0)이어야 한다.(i..

[DCTF 2021 : pwnable] formats last theorem 풀이 (FSB, printf, malloc_hook)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 대회시간 중 삽질만 퍽퍽하다가 결국 못풀었던 문제이다. 롸업보고 풀었다 ㅠ_____ㅠ printf에서 malloc_hook을 트리거할 수 있다는 것을 배웠다. 400점짜리 문제 description : I dare you to hook the malloc Analysis mitigation Full RELRO이다. got overwriting은 기본적으로 되지 않겠지.. 여기서 기본적으로 흐름을 바꿀 수 있는 키워드?는 malloc_hook, free_hook, rtld 등이 있다. execution 혹시나 했는데 FSB가 트리거 된다. code main이 vuln을 호출한다. 저 printf에서 FSB 취약점이 트리거 될 수 ..

CTF/Write UPs 2021.05.17

[DCTF 2021 : pwnable] 내가 푼 문제들 풀이

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro Pwn sanity check main에서 vuln 함수를 호출한다. 그리고 shell함수를 호출하면서 리턴을 한다. shell 함수를 살펴보면 별 게 없다...... 하지만 함수 목록을 보면 win이라는 함수가 있다. 이 함수는 인자를 2개를 필요로 한다. 이 인자의 값이 조건과 맞아떨어지면 system함수를 호출한다. 이 바이너리는 64bit 운영체제이기 때문에 pop rdi와 pop rsi와 같은 가젯을 이용하여 win 함수의 인자를 조절을 해줘야 한다. from pwn import * #context.log_level = 'DEBUG' #p = process('./pwn_sanity_check') p = remote('d..

CTF/Write UPs 2021.05.17

DCTF 2021 후기

대회 정보 : https://ctftime.org/event/1361 대회 시간 : 2021.05.15 00:00 KST — 2021.05.17, 06:59 KST 내가 적은 롸업 : https://jiravvit.tistory.com/entry/DCTF-2021-pwnable-%EB%82%B4%EA%B0%80-%ED%91%BC-%EB%AC%B8%EC%A0%9C%EB%93%A4-%ED%92%80%EC%9D%B4 pwn 분야에서 2문제 빼고 전부 풀었다. 못 푼 문제 중에서 FSB 문제가 하나 있었는데 디스크립션이 malloc hook인가..? 그랬었다. 근데 그걸 왜 준지도 모르겠고.. ㅠㅠ 그냥 rtld를 원가젯으로 덮었는데 안됐었다. while문을 빠져나오지 못했기 때문인가..? 대회 끝나고 롸업을 ..

CTF/CTF 후기 2021.05.17

[SanDiegoCTF 2021 : pwnable] printFAILED 풀이 (FSB)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro '못하겠다'라고 생각해서 못 푼 문제다. '할수있다'라고 생각했으면 풀었을 듯 하다.. 이게 포넙 중에서 솔브 수가 가장 높다. 풀기 전엔 왜 솔브 수가 가장 많지..? 했는데... 풀고나니 바로 납득 되어버림 Analysis mitigation execution 로컬에서는 세폴이 뜨는데 nc로 접속했을 때는 잘된다. 바이너리를 열어보자. code 로컬에서 돌렸을 때, 저기 주황색 부분 때문에 세폴이 뜬다. 정확히는 flag.txt 파일을 열어서 fgets로 flag 전역변수에다가 flag.txt 내용을 쓰는데 로컬에 flag.txt가 없어서 세폴이 떴던 것... 결론은 로컬에 flag.txt를 하나 만들어줘야한다. 그럼 이렇게..

CTF/Write UPs 2021.05.11