목록분류 전체보기 (420)
외로운 Nova의 작업실
- indexing 취약점 아파치를 실행하면 기본적으로 파일 구조를 볼 수 있는 indexing 기능을 제공합니다. 이런식으로 /img 파일에 어떤 파일들이 있는지 한눈에 알 수 있습니다. 이러한 취약점은 공격자들이 서버의 파일 구조를 알 수 있게 해줍니다. - 취약점 방어 httpd.conf 파일에서 "Options Indexes FollowSymLinks" 문구를 찾고 Indexes부분을 없애줍니다. 변경 전 : Options Indexes FollowSymLinks 변경 후 : Options FollowSymLinks 이후 서버를 다시 껏다가 키면 적용됩니다.
- 저장소 안드로이드 기기에 데이터를 저장하는 방법은 크게 3가지로 나뉩니다. 데이터베이스, 파일, 프리퍼런스를 이용하는 방법입니다. 모두 자주 사용하므로 각각의 특징과 구현 방법을 살펴보겠습니다. 이번장에서는 데이터베이스를 사용하는 방법입니다. - 데이터베이스 안드로이드폰에서 이용하는 데이터베이스 관리 시스템은 오픈소스로 만들어진 SQLite입니다. 외부앱에서는 접근할 수 없습니다. 코드에서는 SQL 질의문만 작성하면되고 실제 데이터는 SQLite가 관리해줍니다. - 질의문 작성하기 질의문을 어떻게 작성하는지 먼저 코드로 보겠습니다. val db = openOrCreateDatabase("age", Context.MODE_PRIVATE, null) //create table db.execSQL("cre..
- 주소록 앱 연동하기 주소록은 가장 많이 이용하는 안드로이드의 기본앱입니다. 핸드폰의 주소록 앱을 연동하여 주소록 목록을 띄우고 전화번호를 가져와보도록 하겠습니다. 프로바이더를 사용할때는 query의 uri가 굉장히 중요합니다. 먼저, 매니페스트 파일에 퍼미션을 설정해줍니다. 이제 사용자에게 퍼미션을 얻어내는 코드와 주소록의 프로바이더에게 쿼리를 보내고그 값에따라 데이터를 받아옵니다. 아래는 메인 액티비티.kt 파일입니다. class MainActivity : AppCompatActivity() { lateinit var path: String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) v..
- 아파치 다운로드 http://httpd.apache.org/download.cgi#apache24 Download - The Apache HTTP Server Project Downloading the Apache HTTP Server Use the links below to download the Apache HTTP Server from our download servers. You must verify the integrity of the downloaded files using signatures downloaded from our main distribution directory. The signatures can httpd.apache.org 위 링크 접속하고 운영체제에 맞는 파일을 다운로..
해당 카테고리는 모의 해킹 공부를 위한 서버 구축에대한 카테고리입니다. - 구축할 서버 종류 DNS 서버 메일 서버 Web 서버
- 문제 인식 CSP를 우회하는 문제임을 알 수 있습니다. 문제 코드를 보겠습니다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) nonce = os.urandom(16).hex() try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.upda..
- 콘텐츠 프로바이더 콘텐츠 프로바이더는 앱끼리 데이터를 연동하는 컴포넌트입니다. 다른앱의 데이터를 사용할때 콘첸츠 프로바이더를 이용합니다. 이때 데이터는 대상 앱의 데이터베이스나 파일 또는 앱에 할당된 메모리에 있습니다. 콘텐츠 프로바이더를 이용하면 이런 저장소에 있는 데이터를 가져오거나 수정할 수 있습니다. - 콘텐츠 프로바이더 만들기 먼저 다른 앱들이 저의 앱의 저장소를 사용할 수 있도록 저의 앱에 콘텐츠 프로바이더를 만들어보도록 하겠습니다. 먼저 외부앱이 사용할 수 있는 함수들을 만들어줍니다. 아래는 MyContentProvider.kt 파일입니다. class MyContentProvider: ContentProvider() { override fun delete(uri: Uri, selectio..
- 잡 스케줄러 잡 스케줄러는 앱실행시 구동되는 백그라운드가 아닌 특정 상황에서 실행되는 백그라운드입니다. 예를들어 네트워크가 와이파이일때, 배터리가 충전상태일때등등에만 실행되게끔 만들 수 있는게 잡 스케줄러입니다. 또한 실행주기도 정할 수 있어 일정 주기마다 실행되게끔 할 수 있습니다. - 잡 스케줄러의 구성요소 잡 스케줄러의 구성요소는 아래와 같습니다. 잡 서비스 : 백그라운드는 어떻게 돌아가는지 설정합니다. 잡 인포 : 잡 스케줄러가 어떤 상황에서 돌아가는지 설정합니다. 잡 스케줄러 :시스템에 잡스케줄러를 등록합니다. - 잡 서비스 잡 서비스를 만드는 방법을 알아보겠습니다. 잡서비스는 개발자가 만드는 서비스이므로 매니페스트에 태그로 등록합니다. 또한 아래와 같이 퍼미션도 등록해줍니다. 그런다음 Jo..
- 문제 인식 canary가 있고 NX(NoeXcute)가 활성화 되어있습니다. 32비트 우분투 16.04 os임을 알 수 있습니다. 문제 파일을 보겠습니다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } void get_shell() { system("/bin/sh"); } void print_box(unsigned char *box, int idx) { pr..
- 백그라운드 제약 액티비티를 제외한 나머지 컴포넌트는 화면을 구현하는 용도가 아니라 백그라운드에서 작업을 처리할 목적으로 사용합니다. 그런데 예전에는 앱을 실행해 화면이 출력된적이 없는 상황에서도 백그라운드에서 작업을 처리할 수있었지만 안드로이드 8버전부터는 제약을 받습니다. 따라서 브로드캐스트 리시버나 서비스를 이용할때는 백그라운드 제약에 관해 잘 정리해둬야합니다. - 리시버의 백그라운드 제약 브로드캐스트 리시버는 암시적 인텐트로 실행할 수 없습니다. 위처럼 매니페스트 파일에 등록하고 아래처럼 다른 클라이언트 앱에서 코드를 실행하면 리시버는 받지못합니다. val intent = Intent("ACTION_RECEIVER") sendBroadcast(intent) 암시적 인텐트는 registerRece..