티스토리 뷰
ctf 문제를 보다가 base64충돌을 이용한 문제가 있길래 공부한 내용을 정리했다.
먼저 base64의 알고리즘이다. 밑에는 예이다.
')'의 binary (10진수로 41)
00101001
base64 알고리즘은 6bit 로 계산
따라서 A의 base64 incoding은
001010 | 01(0000)
이 됌
12비트 됐는데 오버된 4바이트는 패딩이 된거임
001010 | 01(0000)
10진수로
10 | 16
base64 ascii 테이블을 참조하면
base64 table
KQ 가 되는것.
맞다.
이제 충돌에 대해서 정리해보겠다.
001010 | 01(0000)
뒤에 4비트는 필요없는건데 그래서 충돌이 가능하다.
001010 | 01(1111) 해도 되고
001010 | 01(0101) 해도 되고
저 뒤에 4비트 아무렇게 해도 된다.
따라서
001010 | 011111
은
10 | 31
이고 base64테이블 참조하면
Kf 가 되는것 이다.
이걸 디코딩하면
똑같이 )로 디코딩이 되는 것을 확인 할 수 있다.
'cs > etc' 카테고리의 다른 글
랜섬웨어와 예방법, 복구절차 (0) | 2017.12.15 |
---|---|
윈도우즈 파일 시스템 FAT32와 NTFS (0) | 2017.12.15 |
[리눅스 쉘 스크립트]쉘 스크립트 기본 문법 정리, 계산기 만들기 (0) | 2017.12.15 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- heap
- fsop
- tcache
- pwnable
- FSB
- TLS
- overflow
- ebp change
- shellcoding
- oob
- stack reusing
- 해킹
- srop
- rt_sigreturn
- codegate
- exit
- SQLi
- fastbindup
- pwable
- glibc
- fastbin
- hacking
- HackCTF
- pwnable.tw
- 본선가고싶다
- Total
- Today
- Yesterday