목록분류 전체보기 (420)
외로운 Nova의 작업실
wsl에서는 원래 32비트 프로그램이 실행되지 않습니다. 따라서 32비트 프로그램을 실행하려면 binfmt가 있어야합니다. 아래 순서대로 start 까지 한 후 프로그램을 실행하면 됩니다. 하지만, 실행만 가능할뿐 리버싱을 하게되면 64비트처럼 되므로 리버싱의 경우에는 wsl이 아닌 가상머신을 사용해야합니다. - binfmt 설치 sudo apt install qemu-user-static sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xf..
- permission 퍼미션이란앱의 특정 기능에 부여하는 접근 권한을 말합니다. 내가 개발하는 앱이 다른 앱이나 안드로이드 시스템에서 보호하는 특정 기능을 이용할때 퍼미션(uses-permission) 사용을 설정해야합니다. 또한 내가 개발한 앱의 기능을 다른 사람과 공유할려면 퍼미션(permission) 기능을 허용해야합니다. - 안드로이드 시스템 특정 권한 사용하기 minifast 파일이란 앱의 설정관련한 파일로 안드로이드 시스템의 특정 기능을 이용하려면 해당 파일에 해당 기능을 사용하겠다고 선언해줘야합니다. 카메라 사용을 예시로 들어보겠습니다. 아래는 manifest 파일입니다. 하단에 을 선언해줘야합니다. name의 경우에는 퍼미션을 구별하는 식별자로 android의 권한중 CAMERA 권한을 ..
- 설치 sudo apt-get install nasm - 64비트 hello world section .data msg db "hello world", 0x0A, 0 section .text global _start _start: mov rax, 1 mov rdi, 1 mov rsi, msg mov rdx, 12 syscall mov rax, 60 mov rdi, 0 syscall - 64비트 컴파일 및 링킹 nasm -f elf64 test.asm -o test.o ld test -o test.o - 32비트 hello world section .data msg db "hello world", 0x0A, 0 section .text global _start _start: mov eax, 4 mov e..
- 리소스 앱에서 사용하는 리소스는 크게 앱 리소스와 플랫폼 리소스로 구분됩니다. - 앱리소스 앱을 개발하기위해 모듈을 만들면 자동으로 res라는 디렉터리가 생기고 그아래에 drawable, layout, mimmap, values라는 3개의 디렉터리가 생성됩니다. 이는 기본적으로 만들어지지만 사실 리소스파일의 종류는 더 많습니다. 다양한 리소스 디렉터리를 res 아래에 만들어 쓸 수 있지만 이름들은 임의로 정할 수 없고 고정되어 있습니다. 아래는 그에따른 자료입니다. 디렉터리명 리소스종류 animator 속성 애니메이션 XML anim 트윈 애니메이션 XML color 색상 상태 목록 정의 XML drawable 이미지 리소스 mipmap 앱 실행 아이콘 리소스 layout 레이아웃 XML menu 메..
- 키 이벤트 키 이벤트에서는 네비게이션 바의 뒤로가기 버튼과 음량버튼이 눌렸을때 함수를 호출할 수 있습니다. onKeyDown : 키를 누른 순간의 이벤트 onKeyUp : 키를 떼는 순간의 이벤트 onKeyLongPress : 키를 오래 누르는 순간의 이벤트 package com.example.myapplication import android.os.Bundle import android.util.Log import android.view.KeyEvent import android.widget.Toast import androidx.appcompat.app.AppCompatActivity class kakotalk : AppCompatActivity() { override fun onCreate(sa..
- 명령문 데이터베이스 만들기 create database users; 데이터베이스 사용하기 use users; 테이블 만들기 create table users( userid VARCHAR(50) not null, userpassword VARCHAR(50) not null) 테이블에 값 추가하기 insert into users (userid, userpassword) values ("admin", "strawberry") insert into users (userid, userpassword) values ("guest", "guest"); 테이블에서 유저아이디와 패스워드 맞는 것 고르기 select * from users where userid = " " and userpassword = " " 컴퓨..
- LinearLayout LineartLayout은 선형적으로 배치합니다. 제일 중요한 속성은 orientation 속성이며 horizontal 이나 vertical 값으로 방향을 지정합니다. 화면에 뷰를 배치하다보면 가로나 세로 방향에 여백이 생길 수 있는데 이 역백을 layout_weight로 채울 수 있습니다. gravity의 정렬대상은 콘텐츠이고 layout_gravity의 정렬대상은 뷰 자체입니다.
- 주요 법률 및 기준 개인정보보호법, 개인정보의 안전성 확보 조치 기준(행정 규칙), 정보통신망 이용촉진 및 정보보호 등에 관한 법률, 개인정보의 기술적 관리적 보호조치 기준, 위치정보의 보호 및 이용 등에 관한 법률, 신용정보의 이용 및 보호에 관한 법률 - 개인정보보호법 개인정보보호법의 목적은 개인정보의 유출 오용 남용으로부터 사생활의 비밀등을 보호함으로써 국민의 권리와 이익을 증진하고 개인의 존엄과 가치를 구현하기위하여 개인정보의 처리에 관한 사항을 규정하는 것입니다. 개인정보보호법은 2011년3월에 제정되었습니다. 제1장(1조~6조) : 총칙 제2장(7조~14조) : 개인정보 보호정책의 수립 등 제3장(15조~28조) : 개인정보의 처리 제4장(29조~34조): 개인정보의 안전한 권리 제5장(3..
stack buffer overflow 실습을 해볼까합니다. - 취약점이 있는 코드 #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } void get_shell(){ char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL); } int main(){ char buf[0x28]; init(); printf("input: "); scanf("%s", buf)); return 0; } scanf 함수는 사용자로부터 받은 값을 검증하지 않고 버퍼에 넣기때문에 버퍼보다 사용자로부터 받은 값이 크다면 버퍼를 흘러 넘치게됩니다. buf의 크..
이번시간에는 error based sql injection 문제를 풀어보도록 하겠습니다. https://dreamhack.io/wargame/challenges/412/ error based sql injection Description Simple Error Based SQL Injection ! dreamhack.io - 문제인식 뭔가 sql을 집어넣는 곳이 있는 것 같습니다. 문제 파일을 다운로드해보겠습니다. import os from flask import Flask, request from flask_mysqldb import MySQL app = Flask(__name__) app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost'..