rootme.org를 풀다가 알게 된(원래 알았지만, 정확한 명칭을..) 취약점이다. 간단히 상대경로 문자를 입력하여, 의도하지 않은 경로를 접근하는 것이다.기본적인 경로탐색에 더해, 필터를 우회하기 위해 여러가지 문자로 변경하면서 취약점을 점검한다.ddp github
윈도우 커널 관련 익스플로잇을 공부하기 위해, 복습 겸 커널 디버깅 세팅을 정리Debuggee의 환경이다.windows 10 education x86프롬프트에서 부팅옵션을 변경해주어야 한다.그리고 재부팅을 한 뒤, 만들었던 "Debug me" 세팅으로 부팅한다.시리얼
분석을 위해 커널 메시지가 출력되도록 설정한다.디버기에서도 dbgprint 툴을 이용하여 커널 메시지를 출력할 수 있도록 설정한다.
rootme.org - filters는 LFI 취약점 문제인데 필터가 적용되어 있다. 필터를 우회하기 위한 방법을 찾아보는데 대표적으로 php://filter를 이용하여 우회한다고 말한다. 여기에 대한 개념이 이해가 안가서 간단히 몇 가지를 정리해본다. Wrappe
github page - hevd를 보며 분석하겠다.먼저 HackSysExtremeVulnerableDriver.c를 살펴본다.먼저 deviceobject를 생성한다.IRP 콜백함수를 등록한다.IRP_MJ_DEVICE_CONTROL이 우리가 응용프로그램으로 드라이버와
다음으로 exploit을 실행해주는 응용프로그램의 소스를 살펴본다.github page - hevdtypedef enum \_VULNERABILITY_TYPE { DoubleFetch, PoolOverflow, UseAfterFre
개요 OWASP - double encoding 문서를 보며 정리하는 글이다. 정의 페이로드를 더블 인코딩하여 인젝션하는 기법이다. LFI나 XSS 등의 공격을 할 때, 서버에서 필터링 루틴이 존재할 때 이를 우회하기 위해 사용한다. >This attack techn
mysql과 다른 형태의 쿼리만 정리하겠다.\`- 데이터베이스 생성.database데이터 베이스 확인.tables테이블 확인.quit or Ctrl + D나가기현재 db의 테이블 정보를 확인할 수 있는 테이블이다. mysql의 information_schema.tabl
XSL에서는 특정 파일 값을 읽거나, 특정 언어의 코드를 실행시키는 등의 동적인 기능이 존재한다.그런데 이 XSL을 공격자가 임의로 수정할 수 있거나, 특정 XSL을 업로드할 수 있다면 위의 기능들을 이용하여 악의적인 코드를 실행할 수 있다.다음은 XSL파일을 GET
유용한 쿼리를 모아놓는 메모장 입니다.order by 11번째 컬럼을 기준으로 정렬한다.order by id, \[2,3,4, ..., N]만약 컬럼의 개수가 2개라면, 위의 쿼리에서 3이상을 대입할 경우 에러가 발생할 것이다. 2개의 컬럼밖에 없는데 3번째 컬럼을 기
db에 admin과 admin공백\~\~~이 존재할 때,의 결과로 admin과 admin공백\~\~~ 모두 출력된다.가입기능이 있는 웹페이지에서 admin공백\~\~\~~으로 가입한 뒤admin
MIME 타입 우회파일 대소문자 우회확장자 추가 우회xxx.txt.phpnull injection 우회xxx.jpg\\0.phpphp3등 다른 확장자 이용.htaccess 조작인식 확장자 바꾸기At the time of PHP installation, php.ini i
html에서%00는 취급하지 않는다.따라서 위의 문제처럼<s%00c%00r%00i%00p%00t>와 같은 식으로 입력할 경우<script>가 저장된다
여러가지 의미가 있는데 Not Only SQL의 의미로 가장 많이 사용된다고 한다.NOSQL은 다음과 같은 특징을 갖는다.https://tribal1012.tistory.com/138속성 별 schema를 규정하지 않는다(자료형)Join은 두 가지 이상의 테이
riftctf의 리버싱 바이너리를 gdb로 실행했는데For help, type "help".Type "apropos word" to search for commands related to "word"...Reading symbols from chall2.elf...(n
printf("%4$x")printf("%4$n")printf("%4$lx")7번째 인자부터 스택에 저장되므로 7부터 카운트
간혹 코드 인젝션을 수행할 때, 특정 범위의 문자Set만을 요구되는 경우가 있다.다음의 예시코드(Rootme PHP - Eval)를 살펴보자eval 함수의 인자로 내가 전달한 코드가 실행되지만, 영문자는 필터되고 있다.이럴 경우 사용될 수 있는 우회기술이 바로 Non
Error Base SQL Injection 정의 다양한 응용법이 존재하지만 기본이 되는 특징은 다음과 같다. >1. 의도적으로 에러를 유발시킨다. 출력되는 에러메시지에 내가 원하는 정보가 덧붙여지도록 쿼리를 구성한다. 예시 확실한 이해를 위해 다음의 예시를 살펴
PostgreSQL 인젝션에 사용되는 구문과 형태를 알아본다.
PHP serialization 취약점에 대해서 다시 접하게 되었다. 관련된 내용을 찾아보니 그 내용이 간단하지만은 않아 따로 정리하게 되었다.PHP에는 serialize라는 기능이 존재한다.데이터를 직렬화하여 저장하거나, 전달하는 등 관리측면에서 효율성을 얻기 위해
IDOR id, 게시글 번호, 페이지 등 어떤 구분된 작업을 위해 식별자로 사용되는 오브젝트 값을 수정하여 관리자가 의도하지 않은 접근을 유발하는 공격 기법이다. >예시 > scope - burp 따로 지식이 필요한 기법이 아니기 때문에 Burp suite를 이용
힙에서 발생할 수 있는 취약점인 Poison null byte에 대해 정리하는 글이다.off-by-one은 1바이트의 널바이트 삽입으로 흐름을 조작하는 기법을 말한다.다음과 같은 코드가 있다고 할 때배열의 끝 부분을 널 바이트로 저장하기 위해서는 인덱스로 size-1을
https://velog.io/@woounnan/SYSTEM-Poison-Null-Byte-Libc-Leak의 포스팅과 이어지는 내용이다.앞서 libc 주소를 획득했다. 하지만 이 값은 base 주소를 얻기위한 참고용 값일 뿐이다.최종 목표는 rip를 제어하여
glibc-2.26버전에 업데이트된 tcache bin을 이용한 취약점에 대해 다루는 글이며, 취약점 실습을 위해 glibc-2.26버전을 기준으로 작성하는 글이다.※버전이 업데이트 되면서 몇몇 내용은 패치되었고, 본 포스팅에도 해당 내용을 추가하였다.※다음을 참고ht
이전에 공부한 기법으로 로컬 환경(glibc-2.30)에서 ctf 문제를 풀어보니 동작하지 않았다.버전 차이가 얼마 안났기에 패치됬을 거라고 생각을 못했는데, 직접 디버깅 및 소스를 확인해보니 약간의 차이가 있었고 그것을 정리하는 글이다.glibc-2.30의 mallo
Frida는 DBI(Dynamic Binary Instrumentation)도구이다.DBI란 바이너리를 동적으로 실행하면서 분석하는 행위를 말한다.Frida는 그와 관련된 유용한 기능들을 제공한다.스크립트를 이용해 대화형도 가능하며, PINTOOL처럼 원큐 형태로 분석
Frida를 이용하여 apk 챌린지를 풀어본다.문제 파일은 다음 github 페이지에서 받을 수 있다.https://github.com/OWASP/owasp-mstg
문제 파일은 다음 github 페이지에서 받을 수 있다.https://github.com/OWASP/owasp-mstg마찬가지로 루팅을 검사하며, 시리얼을 입력받는 앱이다.Uncracable::MainActivicty기존의 level1 소스와 비슷하다.다른 점
문제 파일은 다음 github 페이지에서 받을 수 있다.https://github.com/OWASP/owasp-mstg문제파일을 실행하면이전 문제들과 비슷하게 루팅 또는 tampering이 감지되었다고 출력된 후 확인을 누르면 앱이 종료된다.MainActivi
좀 지난 게임의 프리서버 클라이언트를 재미삼아 분석하고 있다.그런데 디스어셈블러에 로드시키니 패킹이 되어있는 것 같아서pe 헤더를 확인해봤다.upx 패킹으로 나와있어서 upx.exe를 이용해 언패킹을 시도했다.하지만 아래와 같이 언패킹되지 않았다.구글에서 관
게임을 실행한 상태에서 디버거를 실행하니 다음과 같은 메시지가 나타났다.게임 자체에서 치트를 방지하는 기능을 구현한 것 같았고, 이것을 우회해야 했다.프로그램은 Updater.exe가 먼저 실행된 후 Updater.exe가 게임 클라이언트를
I have a theory that anyone who spends most of their time on the internet, and has virtual friends, or not, knows at least one kikoo in their entourag
ptrace는 프로세스를 추적하거나 실행되는 기능을 관리할 수 있는 함수이다.manpage에 설명이 잘 나와있다.http://man7.org/linux/man-pages/man2/ptrace.2.htmlThe ptrace() system call provide
Desync Attack이란, 프론트와 백엔드가 나뉘어 동작하는 웹서버에서 각 서버가 받아들이는 Request의 내용이 다를 때 발생하는 취약점이다. HTTP 헤더에서Content-Length는 request의 body 길이를 알려주기 위해 사용한다.웹 서버는 이 헤더
자바스크립트의 fetch는 기존의 XMLHttpRequest를 대체할 수 있는 함수이다.기본적인 XSS 공격에도 사용되지만, 비동기 Http 통신을 처리할 수 있어 CSRF의 결과를 확인해야 하는 공격에서 유용히 사용될 수 있다.다음은 기본적인 request, resp
레이스 컨디션 어택은 이미 알고 있는 취약점이지만, 이번에 팀 스터디를 하면서 관련된 내용을 접하게 되었고복습 겸 그 때 몰랐던 내용을 추가적으로 찾아서 정리한다.어떤 취약한 프로그램이 사용중인 중요한 리소스에 대해서, 동시에 다른 공격자의 프로그램 또한 접근 가능하기
https://app.any.run/tasks/d3e50a5d-0926-45d9-9217-2990fb3b4ca4/닷넷 기반의 악성코드이다.닷넷은 IL 기반이며, 닷넷 프레임워크에 의해 명령어가 해석된다.x64dbg로 로드할시 IL이 native api로 변환된