일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 오버워치 세이버메트릭스
- libpcap
- 오버워치
- FTZ 레벨2
- vim
- #Qt Creator
- Find
- #IntelManual
- vi
- Overwatch League SaberMetrics
- #MINT64 #Sqix
- ftz
- linux
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- #
- Sqix
- command
- C++11
- #Best of the Best #OS #MINT64 #Sqix
- libtins
- Network
- vi 외부 명령어
- 인터럽트
- KASAN
- BEST of the BEST
- >
- Today
- Total
목록분류 전체보기 (76)
Sqix
팀에 대한 공격 부문 기여도를 산정하기 위한 통계입니다. 세이버매트릭스의 RC(Run Created)와 WOBA 스케일링 방식을 참조하였습니다. KC Kill Created, 마지막 일격, 처치, 솔로 킬을 가중치를 넣어 지표로 생성 마지막 일격과 처치는 팀원 전체의 어시스트가 들어가게 되므로, 팀원의 수 (6)와 상대방의 수(6)에 대한 역수의 가중치가 부여 처치와 마지막 일격은 종속관계이므로, 2020시즌 리그 DPS의 마지막 일격과 처치의 비율(2.36)의 역수에 대한 가중치가 부여 KC = FB / (Player2) + EM / (Player2 * emscope) + SK / Player * FB (Final Blows * EM(Eliminations) * emscope(Elimination da..
OWL API 기본 URL : https://api.overwatchleague.com/ Map info를 제공하는 uri : https://api.overwatchleague.com/maps get 메서드 이용한 요청 결과 사용될 만한 데이터 타입 guid 맵의 고유값(hex) name 맵의 이름(string) gameModes 사용될 수 있는 게임모드 (리스트 형식으로 제공) id 맵의 식별자(string) type 맵의 유형(assult, hybrid, control, escort 등) 맵 데이터 정보 GUID NAME(en_US) Assult 0x08000000000004B7 Nepal 0x080000000000066D Ilios 0x0800000000000662 Lijang Tower 0x080..
URL : https://api.overwatchleague.com/ 리그 시즌3이 되면 기존 내부 데이터들이 바뀌겠지만 대충 Rest API를 통해 뽑을 수 있는 데이터들을 여기 정리해 보려고 합니다. 이후에는 Python 코드를 이용해서 API에서 추출한 데이터들을 엑셀에 정리하고 Tableau에 연동해서 Visualize하는 것 까지가 최종 목표입니다.
보호기법에 Full RELRO, NX가 켜져 있네요. .got부분이 READ ONLY가 되고, NX로 인해서 실행공간이 제약됩니다. Main 부분을 봅시다. 0x804a008(0x539)와 eax를 비교해서 값이 다르다면 exit(1)을 호출해 주네요. 이후 eax값을 1 증가시켜줍니다. setvbuf(stdout, 0, 2, 0)을 호출해서 stdout을 line 단위로 취급하도록 합니다. 이후 puts("Try your best :");를 호출하고, read(0, buf, 0x40); 을 호출하고 메인을 종료합니다. 여기서 buf 크기는 0x28인데 들어오는 최대 입력은 0x40이므로 24바이트의 오버플로우가 일어날 수 있습니다. 보호기법과 취약점에서 나온 정보를 종합해 보면, ROP를 사용해야 하는..
Stack Pivoting은 여러 Gadget을 이용해서 쓰기 가능한 공간에 Fake Stack을 구성해 놓고 Chaining하는 기법입니다. 오버플로우 기법을 사용해야 하는데 덮어쓸 수 있는 입력공간이 너무 부족한 경우 이러한 기법을 사용합니다. 단, 이 때 반드시 Gadget이 있어야 합니다. 1. Fake Stack으로 사용할 공간 찾기 가장 먼저 fake stack으로 사용할 공간을 찾아내야 합니다. 당연히 스택처럼 사용할 것이기 때문에, RW권한이 있어야 합니다. peda에 있는 vmmap과, 이전 각 메모리 영역을 볼 수 있는 objdump -h를 이용해서 쓸 공간을 찾을 수 있습니다. 보통 bss영역과 bss영역 이후의 빈 공간을 많이 이용합니다. 다만, 해당 영역(여기로 치면 0x804a0..
simple rop 문제입니다. 문제를 풀 때 다른 문제처럼 system 함수를 이용해서 풀려고 해 봤으나, 되지 않아서 왜 그런지 고민해본 결과 statically linked 되어있기 때문에 system 함수를 libc에서 끌어와서 푸는 형식이 아니라, shellcode를 bss에 올린 후 bss에 실행 권한을 주어 쉘코드가 실행하도록 하여야 합니다. 이것만 빼면 무난하게 풀 수 있습니다. 일단 어셈으로 코드를 유추해 보면 main() { char buf[20]; puts("ROP is easy is'nt it ?"); printf("Your input :"); fflush(stdout); read(0, buf, 100); return ; } 정도인 것 같습니다. 취약점은 read에서 버퍼가 20바이..
ROP 기법에 대해 공부한 것을 간략하게 정리해 보았습니다. Return Oriented Programming은 GOT Overwrite 기법과 Return to Libc 기법을 응용한 공격기법입니다. 주로 NX bit와 같은 보호기법이 있는 실행 파일에서 gadgets를 이용해서 코드를 실행할 수 있게 해 줍니다. 1. 사전 지식 1. Gadgets와 Payload 구성 기본적으로 Return to Libc 기법을 사용할 때, 스택은 다음과 같은 구조를 가집니다. ... - [libc 시스템 함수 주소] - [시스템 함수 호출 이후 돌아갈 주소] - [system() 파라미터] 여기서 gadgets를 이용해서 여러 개의 함수를 실행할 수 있도록 스택을 바꿀 수 있습니다. gadgets란, rop 혹은 ..
이번에는 Lab04 : Return to libc 문제를 풀어보겠습니다. Return to libc 문제는 말 그대로 libc로 돌아가겠다! 는 의미인데요, NX라는 보호 기법을 우회하기 위해서 공유 라이브러리의 함수 주소로 Return Address값을 변경해 libc라이브러리 안에서 offset을 이용해 함수를 호출하는 기법입니다. 바로 gdb를 이용해 실행 흐름을 확인해보겠습니다. (ida를 쓸 수 없는 환경이라 gdb로만 보겠습니다.) puts를 이용해서 4줄을 출력합니다. 이후 printf를 이용해서 다시 1줄을 출력하네요. ############################### Do you know return to library ? ############################### ..
lab03 ret2sc 문제입니다. Return to shellcode 기법은 return address를 shellcode 시작 주소로 덮어주는 기법입니다. 실행을 해 보니, Name: 를 통해서 이름을, Try your best: 를 통해서 문자열을 받아오고 프로그램이 종료됩니다. 실행 파일을 gdb에 올려서 어셈블러 코드를 보도록 하겠습니다. 간략히 어셈을 해석해 보면 main(){ char buf[48] //sub 0x30 setvbuf(0x804a040, 0x0, 0x2, 0x0); printf(0x80485d0); read(0, 0x804a060, 0x32); printf(0x80485d6); gets(buf); return; } 정도인것 같습니다. read에서 0x32를 받고, gets에서는..
문제 이름부터 shellcraft를 사용해서 문제를 풀라고 하는 듯 하네요. Shellcraft 매뉴얼 링크부터 알아봅시다. http://docs.pwntools.com/en/stable/shellcraft/i386.html - i386 http://docs.pwntools.com/en/stable/shellcraft/amd64.html - amd64 저희가 풀 환경은 i386이므로 위의 매뉴얼을 참고합시다. 이제 문제에 대해서 파악을 해 보면, lab02에 접근하면 실행 가능한 ELF 파일인 orw.bin 파일이 있습니다. 원래는 training.pwnable.tw:11002에 원격으로 붙어서 해야 하나 본데, 서버가 죽었는지 붙어도 반응이 없네요. 로컬에서 풀 수 있게 파일을 하나 만들어 보도록 합시..