전체 글 171

Relational DBMS

Background: Relational DBMS DBMS란? 일상 생활에서 생기는 다양한 정보를 기록하기 위해 다이어리와 노트를 사용하듯이, 컴퓨터도 정보를 기록하기 위해 데이터베이스 (Database)를 사용한다. 그리고 데이터베이스를 관리하는 애플리케이션을 **DataBase Management System(DBMS)**이라고 한다. 다수의 사람들이 데이터를 생성하고, 참조하고, 수정하는 웹 서버의 특수한 환경에 가장 적합한 자료구조로 채택된 것이 데이터베이스이며, 최근의 웹 서비스에는 거의 필수적으로 포함되어야 한다. 웹 서비스는 데이터베이스에 정보를 저장하고, 이를 관리하기 위해 **DataBase Management System (DBMS)**을 사용한다. DBMS는 데이터베이스에 새로운 정보..

Web Hacking/Study 2023.07.01

SQL Injection 취약점

SQL InjectionSQL은 DBMS에 데이터를 질의하는 언어이다. 웹 서비스는 이용자의 입력을 SQL 구문에 포함해 요청하는 경우가 있다. 예를 들면, 로그인 시에 ID/PW를 포함하거나, 게시글의 제목과 내용을 SQL 구문에 포함한다.다음 코드는 로그인 할 때 애플리케이션이 DBMS에 질의하는 예시 쿼리이다./* 아래 쿼리 질의는 다음과 같은 의미를 가지고 있습니다. - SELECT: 조회 명령어 - *: 테이블의 모든 컬럼 조회 - FROM accounts: accounts 테이블 에서 데이터를 조회할 것이라고 지정 - WHERE user_id='user' and user_pw='password': user_id 컬럼이 user이고, user_pw 컬럼이 password인 데이터로 범위 지정 즉..

Web Hacking/Study 2023.07.01

숙명여대, 해킹으로 개인정보 유출... 2015·2016·2018년 수시모집 지원자 이름 등 7개 항목 (01-07 16주차)

이번 사과문에 따르면 숙명여대는 2015년, 2016년, 2018학년도 수시모집에 응시한 일부 지원자의 이름, 주민등록번호, 수험번호, 지원 전형명, 지원 모집단위, 출신고교명, 졸업(예정)년도 등 7개 항목이 유출됐다. 숙명여대 측은 “이번 사고는 대구경찰청의 정보통신망법 위반 등 사건 수사과정에 연루된 피의자가 국내 다수의 대학교 시스템에 침입해 개인정보가 포함된 자료를 열람하고, 개인 PC로 다운로드한 정황이 발견돼 인지했다”고 안내했다. 이번 사건과 관련해 숙명여대는 ‘개인정보 유출사고 대응 매뉴얼’에 따라 관계 기관의 수사에 적극적으로 협조하고 있다고 밝혔다. 느낀 점: 최근 한국장학재단이나 에이피티씨 등 많은 개인정보 유출 사고가 발생하며 앞으로 개인정보 영역범위가 증가하고 개인정보가 더 중요..

보안뉴스 2023.07.01

Client Side Template Injection 풀이

문제 정보 Exercise: Client Side Template Injection에서 실습하는 문제입니다. 풀이 먼저 문제 파일인 app.py의 소스 코드는 다음과 같다. #!/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, cooki..

CSS Injection 취약점

CSS란? Cascading Style Sheet (CSS)는 HTML로 정의된 문서를 다채롭게 하는 역할을 한다. 개발자는 CSS로 HTML 요소들이 사용자에게 어떻게 보여질지 정의할 수 있다. 표현헤 사용될 임의의 CSS 코드를 주입시켜 의도하지 않은 속성이 정의되는 것을 CSS Injection이라고 한다. 임의 Javascript가 삽입되는 것에 대한 두려움은 이미 많은 개발자들이 가지고 있지만, 악의적인 CSS의 위험성은 잘 알려져있지 않아 대게 무시되고 있다. 그 결과로, 많은 회사에서 CSS Injection 취약점이 발생했다. CSS Injection CSS Injection은 XSS와 비슷하게 웹 페이지 로딩 시 악의적인 문자열을 삽입하여 악의적인 동작을 이끄는 공격이다. 공격자가 임의 ..

Web Hacking/Study 2023.06.26

Client Side Template Injection 취약점

프레임워크를 사용하면 DOM 내의 데이터를 수정하기에 간편하고, 웹 페이지를 컴포넌트화 하여 작성할 수 있기 때문에 개발하는데에 있어서 굉장히 편리하다. 보편적으로 사용되는 프레임워크 종류) Vue, React, AngularJS 등 Client Side Template Injection 이용자의 입력 값이 client side template framework에 의해 템플릿으로 해석되어 렌더링될 때 발생한다. 개발의 편의성을 높여주는 프레임워크지만 잘못된 방식으로 사용할 경우, 이를 통해 XSS 취약점까지 연계하는 것이 가능하다. Vue Vue 혹은 Vue.js라고 불리는 프론트엔드 프레임워크는 2014년 출시된 프레임워크이며, Google의 한 연구원인 Evan You가 개발하였다. Vue는 오픈소스..

Web Hacking/Study 2023.06.26

XSS CSRF SSRF 차이

XSS CSRF SSRF 차이 XSS(Cross-Site Scripting) XSS(Cross-Site Scripting)는 악의적인 사용자가 웹사이트에 스크립트를 삽입하여 다른 사용자의 브라우저에서 실행되도록 하는 공격이다. 이 공격은 대개 사용자가 웹사이트에 입력한 정보를 통해 이루어지며, 그 결과 악의적인 스크립트가 실행되어 사용자의 개인정보를 탈취하거나 세션 하이재킹 등의 공격을 수행할 수 있다. CSRF(Cross-Site-Request Forgery) CSRF(Cross-Site Request Forgery)는 악의적인 사용자가 인증된 사용자의 권한으로 요청을 보내는 공격이다. 이 공격은 사용자가 이미 인증된 상태에서 악성 웹사이트를 방문하거나 악성 이메일을 열 때 발생할 수 있다. 이 공격은..

Web Hacking/Study 2023.06.26

XSS 실습

XSS 실습 Start-up K-Shield 주니어라는 교육 프로그램에서 제공해 준 실습 페이지를 활용해 Cross Site Scripting 취약점을 실습해보겠다. 메인 홈페이지를 보면 왼쪽 부분에 사용자가 입력할 수 있는 폼을 확인할 수 있다. 여기에서 스크립트 구문을 넣어 XSS 취약점이 있는지 확인할 수 있다. "> 또는 "> 이라는 스크립트를 이용해 취약점이 있는지 확인해 본 결과 다음과 같이 XSS 취약점을 확인할 수 있다. oyesmall 홈페이지를 오른쪽 마우스 클릭 후 페이지 소스 보기를 눌러 확인해보면 다음과 같이 클라이언트 측에서 발생하는 취약점이다라고 확인할 수 있다. 또한 검색창에서 발생하는 XSS 취약점이기 때문에 Reflected XSS, 반사형 XSS라고 볼 수 있겠다. 또한..

모의해킹 2023.06.26

Cross Site Scripting(XSS) 개념 정리

Cross Site Scripting(XSS) 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있다. 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다. Cross Site Scripting의 약어가 XSS인 이유 Cross Site Scripting의 약어는 CSS라고 불리는 것이 옳다. 그러나 스타일 시트를 정의하는 언어인 CSS와의 중복으로, 혼동되어 사용될 수 있기 때문에 XSS로 명명되었다. XSS 발생 예시와 종류 XSS 공격은 이용자가 삽입한 내용을 출력하는 기능에서 발생한다. Stored XSS 서버의 데이터베이스 또는 파일 등의 형태로 저장된 악성..

Web Hacking/Study 2023.06.26