일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 모세포
- web
- 해킹
- 웹해킹
- 장고
- 해킹문제
- jango
- 코로나
- 코로나바이러스19
- 파이썬웹
- AndroidOS
- rev-basic-3
- dreamhack
- 리버싱
- 취약점점검
- 1546
- csaw
- covid19
- webhacking.kr문제풀이
- 장고vscode
- vscode
- djangovscode
- 바이러스
- 정보보호영재원
- Django
- 백준
- csaw 2018
- 해커
- 코로나바이러스
- 파이썬
- Today
- Total
목록분류 전체보기 (34)
Kilkat
ida로 f5를 눌러 디컴파일을 수행하면 다음과 같이 main function의 코드를 확인할 수 있음 프로그램 동작 로직을 분석하면 다음과 같음1. 사용자 입력값 대기2. 사용자 입력값 비교3. Correct 출력 or Wrong 출력 if구문에서 사용자 입력값과 비교를 하는 function(sub_7FF62D5D1000)을 따라가보면 다음과 같음사용자 입력값과 XOR연산을 통해 값을 byte_7FF62D5D3000[i] 값과 비교하고 있음 byte_7FF62D5D3000을 확인해보면 49h ~ dup(0)까지 데이터가 포함되어 있는 것을 확인 가능함 XOR의 특성인 a ^(xor) b = c, c ^(xor) b = a 해당 내용이 성립하는 것을 활용하여 복호화 시킬 수 있음(byte_7FF62D5D..
프로그램 실행시 사용자 입력을 기다리고, 입력값이 틀리면 system date가 출력됨 ghidra를 사용하여 decompile로 main을 확인해보면 아래와 같은 로직으로 구성되어 있는것을 확인할 수 있음- 성공시 쉘 획득 or 실패시 date 출력- 가장 핵심이 되는 부분은 사용자 입력값을 받는 0x18(dec=24) 값과, if 구문에서 비교 대상이 되는 해당 주소(-0x350c4512)임 if 구문에서 비교 대상이 되는 -0x350c4512 주소를 확인해보면 다음과 같음 최종 목표는 /bin/bash 쉘을 획득하는 것이 목표이기 때문에 입력값 0x18(24) 바이트 중 20바이트를 null 값으로 채운 후 if 구문에서 값 비교가 되는 0xcaf3baee 값을 넣어서 exploit 코드를 구성하면..
#define _GNU_SOURCE#include#includetypedef int(*orig_getchar_ftype)(void);int getchar(){ orig_getchar_ftype orig_getchar; orig_getchar = (orig_getchar_ftype)dlsym(RTLD_NEXT, "getchar"); puts("hooked success!!"); return orig_getchar();} sudo gcc -o hook.so -fPIC --shared hook.c #includeint main(){ getchar(); return 0;} export LD_PRELOAD=/path *절대 경로 https://umbu..
ADB 설치 및 환경 구성adb 설치 SDK 플랫폼 도구 출시 노트 | Android Studio | Android DevelopersAndroid SDK 플랫폼 도구는 Android SDK의 구성요소입니다.developer.android.com adb의 경우 Android Debug Bridge를 의미하며 앱 디버그, shell 접근 등 여러 기능들을 지원합니다.app 취약점 점검에 있어서 필수적으로 설치가 진행되어야 하는 도구 입니다. 다운로드 및 설치가 완료되면 시스템 환경 변수 새로 만들기를 통해 변수 이름 및 설치를 수행한 경로의 값을 변수 값에 입력 합니다. 이전에 시스템 환경 변수에 생성하였던 변수 이름을 위의 사진과 같이 형식에 맞춰서 새로 만들기를 진행 합니다. 환경 변수 설정이 ..
@echo off SCHTASKS /Create /SC ONLOGON /TN "WindowsDefenderQuickScanOnLogon" /TR "powershell -command Start-MpScan -ScanType QuickScan" /RL HIGHEST Windows 로그온 시 자동, 최고 권한 사용자 권한으로 ms defender를 실행하게 만드는 .bat 파일
h1 프로그램 참여하면서 자주 사용했던 벡터 및 특이했던 벡터 1. URL Param 첫번째는 역시 URL Prameter이다. 특히 파라미터 값중에 어느 다른 사이트로 redirect하거나 WAF error를 발생시키는 페이지여도 XSS 공격을 시도해볼 수 있다. redirect하는 Parameter의 경우 기본 구문으로 테스트를 많이 하는데 입력값에 대한 검증이 없는 사이트의 경우 쉽게 XSS 공격이 가능하다. 그러나 WAF 혹은 입력값 검증이 이루어지는 사이트의 경우 HTTP error status를 발생시키며 error page로 redirect 하는 경우가 대다수다 그러나 이 부분에서도 XSS 공격이 가능할 수 있다. 물론 WAF를 bypass하는 방법도 좋은 시도이지만 만약 error page..
1. Linux Kernel 안드로이드의 경우 리눅스를 기반으로 만들어진 OS이다. 그로인해 당연하게도 Kernel의 경우도 Linux Kernel을 사용중이다. Kernel의 경우 하드웨어와의 통신을 담당을하고 메모리, 프로세스 등 여러 기능들을 담당하는 OS의 핵심 Layer라고 할 수 있다. 추가적으로 Linux Kernel의 경우 안정성 또한 뛰어나 다양한 기기에서 작동이 가능하다. 2. HAL(Hardware Abstraction Layer) HAL의 경우 하드웨어와 OS의 중간에서 표준화된 인터페이스를 제공한다. 이러한 특징으로 인해 개발자는 안드로이드의 하드웨어에 대해서 자세히 몰라도 개발을 쉽게 할 수 있다. 확장성또한 좋아서 새로운 하드웨어가 개발되거나 업데이트 된다면 HAL 모듈을 추가..
django에서의 App은 python package임. django App을 생성하면 model, view, template 등이 생성됨. 대부분의 django 프로젝트는 하나 이상의 django App으로 만들어짐. python manage.py startapp blog 위의 명령어를 실행해 blog App을 생성함. blog가 정상적으로 생성되면 사진1과 같은 dir tree로 이루어짐 # mysite/settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'djan..
기본적인 프로젝트에 앞서 settings.py의 설정을 변경하고 기본 db인 sqlite3가 아닌 mysql로 변경을 진행함. django의 경우 파일의 이름, 경로가 매우 중요시되고 django-admin startproject를 통해 프로젝트 생성시 dir에 대한 모든 골격이 그대로 맞춰서 나옴. dir tree에 대해 궁금하면 django 1번 글로 가서 tree를 보고올 것을 추천함. 1번 사진의 경우 django-admin startproject를 통하여 생성한 직후의 dir tree 구조임. 중요한 파일에 대해 공부한대로 설명을 해보면 본 tree에서의 manage.py 파일의 경우 이름에서 알 수 있듯이 사이트의 관리를 도와주는 파일임. 후에 실행해보겠지만 다른 설치가 필요없이 manage...
파이썬 3버전의 경우 기본 모듈로 venv가 포함되어 나옴 -> 따로 pip install 할 필요가 없어짐 django 프로젝트 dir로 이동후 아래와 같은 명령어를 실행시킴 python -m venv "가상환경 이름" 정상적으로 만들어졌다면 dir tree를 확인했을때 가상환경 이름으로 설정한 폴더가 만들어짐. 가상환경을 만든 후 가상환경을 활성화 시켜줘야 함. 활성화 방법은 아래의 명령어와 같음. "가상환경 이름"\Scripts\activate 활성화가 진행되면 아래와 같이 (가상환경 이름)이 출력되는 것을 확인할 수 있음.