- Network OSI 7계층 OSI 7계층이란? ISO에서 개발한 모델로 네트워크 통신 과정을 기능별 7개로 나누어서 설명한 것이다. 물리 계층 아날로그 신호를 디지털 신호로 변환하고, 디지털 신호를 아날로그 신호로 변환 전기적 특성을 이용해 신호를 만드는 역할 하드웨어 기술 접목 Data Unit : Bit 데이터 링크 계층 직접 연결된 2개의 네트워크 장치 간 데이터 전송 담당 신호가 전달되는 동안, 오류가 있는지 감지하고 오류가 감지된다면 해당 데이터를 폐기 Data Unit : Frame 1. PPP (Point-to-Point Protocol) 가장 많이 쓰는 IP를 캡슐화하는 용도로 많이 사용된다. 에러 검출, 압출, 인증, 암호화 등 다양한 기능을 수행한다. 2. Ethernet CSMA/CD 방식을 사용하여 여러 개의..
- SQL Injection DVWA sql injection, blind sql injection low (강의 과제) ubuntu 네트워크가 또 갑자기 안 돼서 몇 시간 동안 만져봤는데 해결이 안 돼서 그냥 kali가 아니라 ubuntu 내에서 진행 column 수가 2개 union문을 사용할 때는 column 개수가 같아야 한다는 것을 이용 3’ union select 1,2,3#을 했을 때 column 수가 3개가 아니라는 것을 알 수 있다. 오류 3’ order by 2 # column 수가 2개이기 때문에 1, 2까지는 나오지만 3 이상을 쓰면 오류 version은 5.7.37 version을 알아내는 이유는 information_schema를 위해 (5.0 이상 존재) database 이름은 dvwa인 것을 알 수 있다. database()가 database의 이름을 알려주는 함수이고 version()가 버전을..
- Webhacking.kr Webhacking.kr 1번 대충 윗 코드들은 이 페이지에 도달하기까지의 코드들이다. 그리고 중요한 아래 코드들을 보면 cookie값을 바꿔서 푸는 문제라는 것을 알 수 있다. cookie값에 현재 1이 넣어져 있는 상태이다. cookie['user_lv']에 3보다 큰 값을 넣어야 풀리는 문제이다. 그러나 cookie['user_lv']에 4 이상의 값을 넣으면 1로 값이 초기화된다. 그러므로 3보다 크고 4보다는 작은 숫자를 넣어줘야 한다는 것을 알 수 있다. 그래서 이렇게 확장 프로그램 EditThisCookie를 이용해 3.1을 넣어서 문제를 완료했다. 이렇게 한 후 뒤로가기 버튼을 누르면 풀리는 것을 볼 수 있다.
- Lord of SQLInjection Lord of SQLInjection 20번 dragon 코드를 보면 id가 admin이기만 하면 풀리는 게임인데 query를 보면 id가 guest로 고정되어있고 뒤에 주석처리가 되어있다. 그러나 #은 한 줄만 주석으로 하기 때문에 줄을 바꿔주고 query를 작성해주면 된다. 줄 바꿈 하기 위해서 %0a를 써주고 pw를 다시 지정해주고 or을 이용해서 id를 admin으로 지정해준다. 답 : pw=%0a and pw='' or id='admin
- Dreamhack Dreamhack - simple_sqli Lord of SQLInjection 문제는 꾸준히 풀었기 때문에 sqli 기초는 쉬웠던 것 같다. #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute..
- Dreamhack Dreamhack - cookie SQL Injection만 풀다 보니까 이제 막 기초를 밟고 있는 나에게는 어렵게 느껴지기도 해서 다른 wargame도 찾아보았다. Dreamhack에 가장 기초 부분부터 풀기 시작할 예정이다. cookie 문제의 코드 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'admin': FLAG } @app.route('/') def index(): username = request.cookie..
- Database Information_schema DataBase란? 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합 MetaData란? 다른 데이터를 설명해주는 데이터 어떤 목적을 가지고 만들어진 데이터 어떤 데이터 즉 구조화된 정보를 분석, 분류하고 부가적 정보를 추가하기 위해 그 데이터 뒤에 함께 따라가는 정보 Information_schema란? 서버 내에 존재하는 DB의 MetaData(테이블, 컬럼, 인덱스 등의 스키마 정보)를 모아둔 DB 모든 테이블은 읽기 전용이며, 단순히 조회만 가능. 즉 직접 수정하거나 관여할 수 없다. SQL 설치 시 기본적으로 만들어져 있으며, 서버가 운영하는 모든 DB에 대한 정보를 저장하는 곳 Information_schema 테이블의 구조 https://dev.mysql.com/d..
- Lord of SQLInjection Lord of SQLInjection 19번 xavis query에 id='admin'으로 고정되어 있고 코드를 보면 pw를 찾으면 되는 문제인 것 같다. length를 이용하여 pw의 길이를 먼저 알아봤다. pw의 길이는 12이다. 라고 생각하고 전에 있던 코드를 돌려봤는데 이상한 이러한 결과가 나왔다. 혹시 싶어서 쳐봤지만 역시나 아니었고 코드가 문제인가 싶어서 여기저기 바꿔봤지만 절대 나오지 않았다. 그래서 찾아봤더니 역시나 생각 못한 방식이 있었다. 코드만 보고 쉬울 거라 생각했지만 pw는 유니코드로 이루어졌고 한글자당 4byte였다. 그러나 그것도 이것저것 코드를 바꿔봤지만 되지 않아서 아직 모르는 게 많기 때문이라고 생각하고 다른 분의 코드를 참고해보기로 했다. 지금 소개할 코드는 https://tutoreducto.tistory.com/60 이 ..