목록* (243)
CIDY

*SQL Injection SQL는 DBMS에 데이터를 질의하는 언어이다. 웹 서비스는 이용자의 입력을 SQL구문에 포함해 요청하는 경우가 있는데, 로그인 시 ID와 PW, 그리고 게시글의 제목과 내용 등이 있다. SELECT * FROM accounts WHERE user_id='dreamhack' and user_pw='password' 위는 로그인 시 애플리케이션이 DBMS에 질의하는 예시 쿼리이다. 이용자의 입력인 id와 pw를 SQL구문에 포함하고 있는 것을 볼 수 있다. 위 쿼리에서 SELECT *는 테이블의 모든 컬럼을 조회하라는 뜻이다. (SELECT == 조회, * == 모두) From accounts는 어느 테이블에서 데이터를 조회할 것인지를 정해주는 것이고(accounts테이블에서 데..
*DBMS DataBase Management System의 약자이다. 웹 서비스는 DB에 정보를 저장하고, 이를 관리하기 휘애 DBMS를 이용한다. DBMS는 데이터베이스에 새로운 정보 기록/내용 수정/내용 삭제와 같은 역할을 한다. 다수의 사람이 동시에 DB에 접근할 수 있으며, 검색 기능과 같은 데이터 조회 기능이 있다. DBMS에는 다양한 종류가 있으며, 크게 관계형/비관계형으로 나뉜다. 각각에 따른 대표적인 DBMS는 다음과 같다. Relational(관계형) : MySQL, MariaDB, PostgreSQL, SQLite Non-Relational(비관계형) : MongoDB, CouchDB, Redis 관계형의 경우 행/열의 집합으로 이루어진 테이블 형식으로 데이터를 저장하고, 비관계형은 ..
#!/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) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try: options = webdriver.ChromeOptions() for _ i..

#!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" users = { 'guest': 'guest', 'admin': FLAG } session_storage = {} def read_url(url, cookie={"name": "name", "value":..

*CSRF(교차 사이트 요청 위조, Cross Site Request Forgery) 임의 이용자의 권한으로 임의 주소에 HTTP요청을 보낼 수 있는 취약점이다. CSRF공격이 성공하려면 이용자가 악성 스크립트(HTTP요청을 보내는 코드)를 실행해야 함 -> 이용자에게 메일을 보내거나, 게시판에 글을 작성해 이용자에게 조회를 유도하는 방법이 있다. CSRF공격 스크립트는 HTML이나 JS로 작성할 수 있다. HTML을 이용할 경우 img나 form태그를 이용할 수 있다. (img는 이미지를 불러오는 태그, form은 웹 페이지에 입력된 양식을 전송하는 태그) 이 태그로 HTTP요청을 보내면 쿠키(HTTP 헤더)에 이용자의 인증 정보가 포함된다. img태그는 이미지 크기를 줄일 수 있는 옵션을 제공하기 때..

#!/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) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try: options = webdriver.ChromeOptions() for _ i..

#!/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) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try: options = webdriver.ChromeOptions() for _ i..

*XSS 클라이언트 사이드 취약점 중 하나. 공격자가 웹 리소스에 악성 스크립트를 넣어 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있음. -> 이용자의 쿠키/세션 탈취 가능 -> SOP때문에 다른 오리진에서 데이터를 읽는 게 힘들어짐 -> 그래도 항상 우회법이 있더라 XSS공격은 이용자가 삽입 내용을 출력하는 부분에서 발생한다. (게시물이나 댓글, 로그인 시 출력문구 등) HTTP형식으로 웹 서버에 리소스 요청 후 서버로부터 받은 웹 리소스(HTML, CSS, JS 등)를 시작화하는 과정에서 변조된 페이지를 보거나, 스크립트가 실행될 수 있다. ->Stored XSS : 악성 스크립트가 서버에 저장/서버의 응답에 담겨옴 -> Reflected XSS : 악성 스크립트가 URL에 삽입/서버의 응답..