본문 바로가기

분류 전체보기

holyshield 2019 masked_calculator masked_calculator holyshield 2019 masked_calculator대회중에 풀긴 했는데 풀면서 오퍼레이터 문제에 진짜 취약하다는 걸 느껴서 포스팅한다. 위와 같은 메뉴로 구성이 되어 있다.분석했을 때 특별한 점은 딱히 없었다.. 먼저 두 정수를 입력 받고 2진수로 바꾼다. 이 후 사칙 연산에 대해서는 이 2진수를 이용하여 연산하는 과정이 담겨 있다.별로 중요해보이지 않았다. 여기서, 연산한 값을 계속해서 HISTORY에 저장하는 함수가 존재한다. 취약점은 이곳에서 발생한다.HISTORY에 4를 더해가며 연산한 값을 넣어주는데, HISTORY는 main의 rbp-0xb0에 존재하고 있다.연산 횟수 제한을 두지 않아, 스택 오버플로우가 발생한다! 이를 이용해 LEAK, STACK O.. 더보기
dvp 2019 monica's bank + dvp 해킹대회&컨퍼런스 후기 monica's bank dvp 2019 monica's bank이 문제는 취약점은 대회 시작하고 5분만에 다찾았는데 remix 오류로 코드가 deploy가 안돼서 이 오류로만 3시간을 보냈던 문제다..결국 대회 당시 이 문제를 풀지 못했다.. 정말 분했다 ㅠ 대회가 끝나고 문제의 출제자인 xiao yu에게 물어보니 그냥 새로고침하면 해결되는 문제였었다.참고로, xiao yu는 realworld ctf의 organizer이다!realworld ctf에서 arcorada monica 문제를 풀었던 적이 있어서 컨퍼런스 패널 토론이 끝나자마자 가서 인사를 건넸는데, 정말 신기했다.이 대회의 스마트 컨트랙트 문제는 모두 xiao yu가 writer인데, 두 문제 모두 이름에 monica가 들어간다. 이쯤되면 .. 더보기
ethereum assembly analysis using remix DEBUGGER plugin solidity assembly+remix ethereum assembly analysis using remix DEBUGGER plugin xxxxxxxxxxpragma solidity =0.4.25;​contract Test { uint256 number; constructor(uint256 n) public { number = n; } function test() public returns (string) { return "test"; }}위의 테스트 코드를 사용하겠다. remix의 DEBUGGER 플러그인을 이용하여 동적 디버깅을 진행한다. 이 과정으로 어셈블리를 익혀보자! 코드를 컴파일한 후 컨트랙트를 Deploy하면 transaction hash값을 얻을 수 있다. 이를 DUBUGGER 플러그.. 더보기
modern memory safety #1 보호되어 있는 글입니다. 더보기
docker 간단한 사용법 정리 docker docker 사용법docker 설치​xcurl -s https://get.docker.com | sudo sh docker 컨테이너 사용image 다운받기xxxxxxxxxxsudo docker pull ubuntu:latest다운받은 image 확인xxxxxxxxxxsudo docker imagesdocker run 옵션xxxxxxxxxx-d detached mode 흔히 말하는 백그라운드 모드-p 호스트와 컨테이너의 포트를 연결 (포워딩)-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)-e 컨테이너 내에서 사용할 환경변수 설정–name 컨테이너 이름 설정–rm 프로세스 종료시 컨테이너 자동 제거-it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션–link 컨테이너 연결 [컨.. 더보기
root-me mips stack buffer overflow 보호되어 있는 글입니다. 더보기
mips 쉘코드 작성 mips 쉘코드 작성 mips 쉘코드 작성다른 아키텍처와 마찬가지로 mips 아키텍처에도 syscall instruction이 존재한다.이를 이용해 원하는 함수를 부를 수 있으며, intel에서 eax를 mips에서 v0으로 간주하고 작성하면 편하다.(실제로 함수의 리턴 값도 v0으로 넘어온다.) mips의 syscall number는 아래 링크에서 확인이 가능하다.http://syscalls.kernelgrok.com/ mips는 __NR_Linux 변수에 의해 4000 ~ 4999 range의 syscall number를 가진다. execve 쉘코드를 작성하기에 앞서, hello Mips!를 출력해주는 어셈블리 코드를 작성해 보자.#include ​void main(){ printf("Hello Mi.. 더보기
qemu 설치 및 mips 셋팅 qemu 설치 및 mips 셋팅 qemu 설치 및 mips 셋팅qemu가 뭐냐면 간단하게 linux에서 가상 머신을 만들어주는 애라고 생각하면 됩니다. qemu 설치xxxxxxxxxxsudo apt-get install qemu-kvm qemu따로 관리 매니저까지 설치해주고 싶다면xxxxxxxxxxsudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin mips 셋팅xxxxxxxxxxwget https://people.debian.org/~aurel32/qemu/mipsel/debian_wheezy_mipsel_standard.qcow2wget https://people.debian.org/~aurel32/qemu/mipsel/vml.. 더보기