본문 바로가기

분류 전체보기

(312)
Socket 보호되어 있는 글입니다.
정규 표현식 구현 코드 ∙ 정규 표현식 문자열의 일정한 패턴을 표현하는 일종의 형식 언어이다. 즉, 프로그램을 작성할 때는 특성상 일정한 규칙을 가진 텍스트 문자열을 사용하는 경우가 많은데 이럴때 특정 문자 조합을 찾기 위한 패턴이다. ∙ 정규화 코드 작성 주어진 정규화 표현식을 해석해 보면 ^(?=.*[A-Z]).+$ 은 최소한 한개이 상의 문자가 있어야하고, 반드시 대문자가 포함이 되어있어야한다. 즉, 대문자가 포함이 되는 코드를 작성하면 된다. #include #include #include int main() { char str[10]; // 사용자로부터 입력받을 문자열을 저장할 배열 int res = 0; // 사용자로부터 문자열 입력 받기 printf("문자열을 입력하세요: "); fgets(str, sizeof(s..
간단한 Flask 웹 서버 • Flask 파이썬 기반으로 작성된 마이크로 웹 프로임워크이다. 간단한 웹 사이트, 간단한 API 서버를 만들 수 있다. from flask import Flask, request #웹 프레임워크 모듈 로드 app = Flask(__name__) # app 변수에 Flask 모듈을 선언 @app.route("/hcm",methods={"GET","POST"}) def hcm(): print(request) return "hcm", 200 if __name__=="__main__": #메인 함수이며, 파이썬 내장 함수 => __name__ 에 의해 시작 app.run(debug=True,host="0.0.0.0",port=8081) - 실습 1 import requests # Header headers ..
pyautogui 사용하기 • Pyautogui 라이브러리 마우스와 키보드 제어를 도와주는 라이브러리이다. > 설치 명령어 : pip install pyautogui • 실습(계산기 숫자 위치 찾는 코드 작성) # 계산기에서 숫자 5 위치 찾는 코드(숫자5 캡처해서 저장해야함) # 주의 : 계산기가 화면에 보이게 떠있어야함 import pyautogui res = pyautogui.locateOnScreen("5.png") print(res)
Command Injection • OS Command Injection - 웹 서비스 기능에 따라 가끔 시스템 명령어를 사용하는 경우가 있다. 예를 들어 현제 서버의 업로드 디렉터리를 조회하는 경우 ls 명령어를 이용하여 결과 값을 웹 페이지에 출력하는 경우가 있다. 만약 시스템 함수의 인자 값을 사용자가 입력하거나 조작할 수 있다면 공격자는 자신이 원하는 시스템 명령을 수행 시키는게 OS Command Injection 공격이다. 메타 문자 설명 && 명령어 연속 실행(앞 명령어에 오류가 없어야 실행이 가능) || 명령어 연속 실행(앞 명령어에 오류가 나야 실행 가능) ; 명령어 구분자(앞 명령어 에러와 상관없이 실행 가능) %0a 개행 문자 • Secure Coding - 꼭 필요한게 아니라면 시스템 함수 사용 금지이며, 만약 필..
XSS(Cross-Site Scripting) • Javascript - 객체 기반의 스크립트 언어 - HTML과 CSS 각각 웹 페이지의 내용과 디자인을 담당하는 정적인 언어 - Javascript는 웹 페이지를 동적으로 변경해 주는 동적 언어 • Cookie - HTTP 프로토콜은 Connectionless 와 Stateless의 특징을 가지고 있어 HTTP 프로토콜에서 클라이언트를 기억하는 등의 상태 유지를 위해 Cookie를 사용한다. (Connectionless: 요청 & 응답 이후에 연결을 종료하는 특징, Stateless : 연결 종료 후 상태 정보를 저장하지 않는 특징) - Key 와 Value로 이뤄지며 서버가 클라이언트에 쿠키 값을 발급하면 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 함께 전송한다. - 서버는 클라이언트 요청에 ..
SQL Injection • DB(데이터베이스) 데이터베이스는 구조화된 데이터의 조직화된 모음으로 컴퓨터 시스템에 전자적으로 저장되며 DBMS에 의해 제어된 데이터는 일련의 테이블에서 행과 열로 구성되고 SQL은 대부분의 데이터베이스에서 데이터 작성 및 쿼리에 사용된다. • SQL의 개념 SQL은 관계형 데이터베이스에서 사용되는 '구조적 질의 언어'로 데이터베이스의 구조와 데이터를 조작하는 데 사용된다. - DDL(Data Definiton Language) CREATE, ALTER, DROP - DML(Data Manipulation Language) SELECT, INSERT, UPDATE, DELETE -DCL(Data Control Language) GRANT, REVOKE -TCL(Transaction Control L..
웹 해킹이란? • 웹 해킹의 개념 웹 해킹은 웹 서버, 웹 애플리케이션, 웹 페이지 등에서 발생할 수 있는 보안 취약점을 악용하여 해커가 공격하는 것을 의미한다. 타 사용자의 권한, 세션 혹은 인증 우회 등을 통해 정보를 유출하거나 변조하는 등 해커의 목적에 따라 다양한 피해를 줄 수 있다. 웹 서비스는 다양한 정보가 저장되어 있고, 다수의 사용자들이 이용하기 때문에 해킹 대상으로 쉽게 노출되어 있다. • 웹 해킹의 분류와 공격 방법 웹 해킹은 크게 Client-Side 공격과 Server-Side 공격으로 분류된다. Client-Side 공격은 XSS, CSRF 등 공격을 통해 Session Hijacking, Cookie Poisoning, 타 사용자 권한 악용 등을 수행할 수 있다. Server-Side 공격은 ..