목록INTERLUDE (111)
Information Security

컴퓨터 바이러스라는 용어르 만든 사람은 누구인가? -> Frederick Cohen

문제에 주어진 파일을 다운받아보자 이러한 사진이 나온다 사진 안에는 숨겨진 것이 없어보인다 PEview로 jpg 파일을 열어보았다 밑쪽에 살펴보니 열지 말라는 jpg 파일이 있다 MACOSX는 압축파일이라고 한다 아까 다운받았던 jpg 확장자를 zip으로 바꾸어 저장하였다 확인해보니 다른 폴더들이 생겨났다 파일을 확인해보자 flag를 찾을 수 있었다!
Web Application Firewall (WAF): 웹 애플리케이션에 특화된 방화벽 악성 트래픽을 유발하는 디도스와 데이터베이스와 관련된 SQLI, 최근에는 자바 로깅 라이브러리에서 발생한 log4j 등의 공격을 탐지하고 접속을 차단함 공격에 사용되었던 코드 즉, 주요 키워드를 기반으로 탐지 탐지 우회 대소문자 검사 미흡 SQL은 데이터베이스와 컬럼명을 포함해 질의문의 대소문자를 구분하지 않고 실행 탐지 과정 미흡 방화벽에서 악성 키워드를 탐지했을 때 다양하게 요청을 처리할 수 있음 -> 악성 키워드가 포함된 요청을 거부하거나 내부에서 치환 과정을 거친 후에 요청을 처리할 수도 있음 문자열 검사 미흡 ex) 방화벽에서 “admin” 키워드의 포함 여부를 검사하는 경우 - reverse와 concat..
System Tables 설정 및 계정 정보 외에도 테이블과 컬럼 정보, 그리고 현재 실행되고 있는 쿼리의 정보 등 다양한 정보를 포함 MySQL을 주로 정리하도록 하겠다 MySQL 시스템 테이블 스키마와 데이터베이스가 같음 information_schema와 mysql, perfomance_schema, 그리고 sys 데이터베이스가 있음 show databases; 스키마 정보 TABLES 테이블의 내용 중 TABLE_SCHEMA에 해당하는 정보를 그룹화하여 조회 select TABLE_SCHEMA from information_schema.tables group by TABLE_SCHEMA; 테이블 정보 TABLES 테이블의 내용 중 TABLE_SCHEMA와 TABLE_NAME에 해당하는 정보를 조회..

SQL Injection 취약점이 발생할 때 DBMS 정보를 수집하는 방법 DBMS Fingerprinting SQL Injection 취약점을 발견하면? -> DBMS의 종류와 버전을 제일 먼저 알아봐야 함 쿼리 실행 결과 출력 DBMS에서 지원하는 환경 변수의 값을 이용하는 방법 에러 메시지 출력 삽입한 쿼리를 애플리케이션에서 실행하면서 에러 메시지를 출력하는 경우 사용하는 DBMS를 알아낼 수 있음 MySQL 쿼리 실행 결과 출력 에러 메시지 출력 PostgreSQL 쿼리 실행 결과 출력 에러 메시지 출력 MSSQL 쿼리 실행 결과 출력 에러 메시지 출력 SQLite 쿼리 실행 결과 출력 에러 메시지 출력
비밀글
비밀글
SQL Injection이 발생하지만 출력되는 결과를 통해 쿼리 실행의 참과 거짓만을 유추할 수 있을 때 이를 공격하여 데이터베이스의 내용을 추출하는 실습 Blind SQL Injection 공격을 진행할 때 데이터가 반드시 아스키 범위로 구성되었을 것이라는 고정관념을 가지지 말아야 함 현실에서 사용하는 데이터베이스에서는 대상 웹 사이트 및 언어 셋에 따라 영어 이외에도 한국어, 중국어, 일본어 등 다양한 언어로 구성되어 있을 확률이 높음 분석 app.py import os from flask import Flask, request, render_template_string from flask_mysqldb import MySQL app = Flask(__name__) app.config['MYSQL_H..