전체 글(40)
-
Plaid CTF ropasaurusrex
오늘은 Plaid CTF대회에서 출제된 ropasaurusrex 문제를 풀이하고자 한다. 함수의 프롤로그를 보면 다음과 같다. 'WIN'이라는 문자열이 출력되는 것을 확인할 수 있다. 메인함수에서 sub_80483F4()함수가 호출되고 'WIN'이 write된다. sub_80483F4()함수에서는 136개의 공간을 가지고 있는 buf 변수가 존재한다. buf의 크기가 136인데 read함수에서 0x100만큼 입력받아서 buffer overflow 취약점이 발생하게 된다. 이러한 bof취약점을 활용해서 페이로드를 구성하고자 한다. read@got 주소를 릭해서 libc_Base 주소를 구하고자 한다. read@got는 위 빨간 박스의 값과 같다. ropgadget를 확인해보면 다음과 같다. 이때 pop3r..
2023.09.16 -
[지금부터 토스를 해킹합니다] 리뷰
https://www.youtube.com/watch?v=tAqgvP07RnQ&ab_channel=%ED%86%A0%EC%8A%A4 세상에는 다양한 기업들이 존재한다. 이번 포스팅에서는 다양한 기업들 가운데 대한민국의 스타트업인 비바리퍼블피카가 개발한 토스를 소개하고자 한다. 토스는 공인인증서나 보안 매체 없이 앱을 통해 빠르고 손쉽게 송금이 가능하다는 장점이 존재한다. 월간 활성 사용자는 1,500만을 돌파했고 1조 6천억원의 누적투자금액과 기업가치는 9조 1천억원에 달한다. 오늘은 이러한 토스를 해킹하는 시나리오에 대해 소개하고자 한다. 영상 초반에 토스 보안기술팀의 리더이신 이종호님의 소개가 나온다. 해커들 사이에서는 HELLSONIC이라는 닉네임으로 세계 3대 해킹대회를 우승했다. 이러한 종호님께..
2023.09.10 -
[dreamhack] basic_exploitation_000
앞으로 dreamhack 문제를 풀이하고자 한다. 오늘 풀어볼 문제는 basic_exploitation_000 이라는 문제이다. 해당 바이너리, 소스코드를 이용해서 취약점을 찾고 익스플로잇하여 쉘을 획득하는 것이 목표이다. main함수를 살펴보면 buf애 0x80만큼의 데이터를 할당하고 buf의 주소를 출력해주는 것을 확인할 수 있다. 그리고 buf의 크기는 0x80(=128)이자만 141만큼의 입력을 받음으로써 버퍼오버플로우 취약점이 발생한다는 사실을 알 수 있다. 이를 통해 페이로드를 구성해볼 수 있다. 먼저 0x80-len(shellcode) 만큼의 크기를 '\x90'로 채워주고 shellcode를 더해주고 함수 처음에 push ebp를 4바이트이기 때문에 4바이트도 '\x90'로 채워주겠다. 그리..
2023.09.04 -
Revesing.kr MusicPlayer
alt + k = stack call MusicPlayer breakpoint at MsgrtcBox 왜냐하면 1분 그거 출력할려고 and Search for compare routine and edit it to more than 0xea60 eax reg has to be set to 0xea60 and we can see flag 근데 플래그 조금 짤림 그래서 여기서 나는 다시 f9해서 eax 0xea70로 해서 했더니 나옴 그리고 밑에도 LI짤린 부분 나와있음 근데 다시 하니까 저거 안나옴??... 예외로 갈려면 1분 들어야됨 여기서 중요한게 cmp eax, 0xea60을 조금 크게 수정하면 예외로 쉽게 갈 수 있음 그냥 CMP수정하고 1분 들으면 EXCEPTION CALL됨 그 부분 CALL S..
2020.04.08 -
Reversing.kr (Easy Keygen)
int main() { char v9[20]; // 크기가 20인 char형 배열을 선언 //char v13[20]; 입력 값 int v3 = 0, v11 = 0, v12 = 0, v15 = 0, v16 = 0; int v6[3] = {0x10,0x20,0x30}; /* for (int i = 0; v3 = 3) i = 0; sprintf(v13, "%02x",(v9[v3++] ^ v6[i]));//v9[i] ^v6[i] = serial[i] } //여기까지 serial생성 알고리즘 IDA하고 올리디버거 적절히 활용하기 */ const char* serial = "5B134977135E7D13"; int SERIAL[] = { 0x5..
2020.04.08 -
keygen1
알고리즘 분석 static void Main(string[] args) { string name = Console.ReadLine().ToUpper(); int length = name.Length; int eax; int esi = 0; for(int i=0;i
2019.10.09