Hi human 👋

Welcome to my playground

ARM 어셈블리 튜토리얼 (5) 여러 값 불러오기/저장하기

ARM Assembly에 대해 공부하던 중 좋은 글이 있어 번역 하였다. 출처: Azeria Labs (https://azeria-labs.com/writing-arm-assembly-part-5/) 값 불러오기 및 저장하기 가끔은 여러 숫자를 한번에 불러오거나 저장하는 것이 더 효율적일 때가 있습니다. 우리는 LDM(여러개 불러오기)와 STM(여러개 저장하기)를 그런 용도로 사용합니다. 해당 명령어 들은 시작 주소를 접근하는 방법만 다릅니다. 이 파트에서는 아래의 코드를 기반으로 설명할 것입니다. 아래에서 각 명령어 마다 스텝 바이 스텝으로 설명 하겠습니다. .data array_buff: .word 0x00000000 /* array_buff[0] */ ....

May 8, 2022 · 8 min · deguru22

URI Scheme을 활용한 공격 - AWS Workspace RCE, macOS Finder RCE

요약 URI Scheme을 활용한 RCE 취약점이 최근 눈에 띄어, 흥미로워서 공유합니다. 사례1) AWS Workspace에서 사용하는 workspaces:// 스키마를 활용한 RCE 공격 (CVE-2021-38112) 사례2) 맥에서 inetloc 확장자 파일 내에서 file:// 스키마를 활용한 RCE 공격 (최초 제보자: 박민찬, 개인 연구자) 커스텀 URI Scheme 개발 시 파라미터를 통한 명령 실행 가능 여부를 늘 주의해야 하며, 로컬에서 임의 변경 후 실행 시 대응하기 어려운 클라이언트 프로그램의 구조적 한계를 고려하여 언제나 최소한의 기능만 처리할 수 있도록 최소 권한의 법칙(Principle of least privilege) 을 잊지 말아야 합니다....

September 22, 2021 · 4 min · deguru22

ARM 어셈블리 튜토리얼 (4) 메모리 명령어: 불러오기 및 저장

ARM Assembly에 대해 공부하던 중 좋은 글이 있어 번역 하였다. 출처: Azeria Labs (https://azeria-labs.com/writing-arm-assembly-part-4/) ARM은 메모리 접근 시 오직 불러오기-저장(load-store, LDR and STR) 명령만을 사용 하도록 하는 불러오기-저장 모델을 사용합니다. x86에서 대부분의 명령들은 직접 메모리 안의 데이터를 접근하는 것과 달리, ARM에서는 데이터는 반드시 처리 전에 레지스터로 불러오는 과정을 거쳐야 합니다. 이 말인 즉슨 특정 메모리에 올라와 있는 32-bit 값을 ARM에서 증가 시키려면 3개의 명령어(불러오기, 증가하기, 저장)를 실행 해야 한다는 이야기 입니다....

September 19, 2021 · 11 min · deguru22

컨플루언스 OGNL Injection (RCE) 취약점 (CVE-2021-26084)

요약 컨플루언스에서 권한 없이 원격 명령 실행 가능한 취약점 발생, 해당 취약점 패치 배포 완료 (2021-08-25) OGNL(Object Graph Navigation Language) 취약점을 이용한 것으로, 이전에 발견된 Apache Struts2 (CVE-2017-5638)과 유사한 취약점. Velocity 지시자 파라미터는 = 기준으로 파싱되기 전에 먼저 실행이 되는 OGNL과 VTL 사이의 구조적 문제로 발생함 해당 취약점을 활용한 exploit code가 공개되어있고, 권한 없는 사용자도 원격 실행이 가능하므로 빠른 패치가 필요함 이 문서에서는 아래 내용을 다룹니다 docker-compose 를 통한 취약점 재현 환경 설정 및 실습...

September 5, 2021 · 6 min · deguru22

ARM 어셈블리 튜토리얼 (3) ARM & Thumb

ARM Assembly에 대해 공부하던 중 좋은 글이 있어 번역 하였다. 출처: Azeria Labs (https://azeria-labs.com/writing-arm-assembly-part-3/) ARM은 실행하기 위해 두 개의 상태(Jazelle는 제외하도록 합니다)를 가지고 있습니다 - ARM과 Thumb 입니다. 이 상태들은 권한과는 관계가 없습니다. 예를들어 SVC 모드에서 실행되는 코드는 ARM 일 수도 Thumb일 수도 있습니다. 두 상태의 주요 다른 점은 명령어 셋입니다. ARM 상태일때는 명령어가 항상 32-bit 이지만, Thumb 상태의 명령어 셋은 16-bit 입니다(그러나 32-bit 일 수도 있습니다). 언제, 어떻게 Thumb를 쓰는지 아는 것이 ARM 익스플로잇 개발에 매우 중요합니다....

August 30, 2021 · 5 min · deguru22