2024/11 13

모의해킹 스터디 6주차 과제: CTF - UNION SQL Injection

기분 굿.  ♨ SQL Injection 1 ♨ 비밀 데이터를 찾아내라!    1) 검색 기능 이해, SQL Injection 가능한지 확인 2) 서버 사용 컬럼 개수 3) 화면에 노출되는 컬럼 위치 찾기 4) DB 명 찾기 5) 테이블 명 찾기 6) 컬럼 명 찾기 7) 데이터 추출    1) 사이트 검색 기능 이해, SQL Injection 가능성 확인    a만 검색해도 a가 포함된 id를 모두 색출함LIKE 구문을 사용 중이란 것을 알 수 있음. SELECT _________ FROM _______ WHERE id LIKE '%___%';  저 구문에 맞는 SQL Injection 확인 코드는a%' and '1%'='1 위의 코드를 검색할 시,결과적으로 이런 구문을 완성시키게 된다.WHERE id ..

웹 개발: 마이페이지

1. Virtual Box 7.1.4 + 우분투 리눅스 20.042. 우분투 APM (Apache2 + PHP + MySQL)3. 기본 웹 루트 경로 /var/www/html4. VScode SSH5. 사진 등은 termius    ☎  기능  ☎ 1) 현재 계정 회원의 아이디, 닉네임, 이메일을 form의 placeholder 방식으로 보여줌. 2) 셋 중 하나라도 수정한 정보를 입력한 뒤 제출하면 DB 데이터가 수정되고      즉시 화면의 데이터도 수정됨. 3) 비밀번호 입력란과 비밀번호 확인란에 입력한 정보가 다르거나     비밀번호 입력란의 데이터와 DB의 비밀번호(평문 비번)가 다르면  alert 표시.   ☎  구현 화면  ☎ 1) 성공 시 panda 회원의 기존 정보를 placeholder..

자습 2024.11.25

모의해킹 스터디 6주차: UNION SQL Injection

SQL InjectionDB에서 준비한 쿼리문에 SQL 구문을 주입하여 로그인, 인증을 우회하거나DB의 데이터를 추출할 수 있는 해킹 기법.   ◈  UNION SQL Injection  지난주에 배운 것SQL Injection으로 로그인, 인증을 우회하는 법. 이번주에 배울 것SQL Injection으로 DB 데이터를 추출하는 방법.  로그인, 인증 우회는 대부분 로그인 페이지에서 이루어진다.DB 데이터 추출은 어디서 이루어질까? DB 데이터가 쓰이는 부분에서 이루어진다!!  하나의 웹 사이트에서 DB 데이터가 쓰이는 곳은 많음. 그 중 쿼리문의 결과(DB에 저장된 데이터)가화면에 나오는 곳이 있고 나오지 않는 곳이 있음. 화면에 나오는 곳 예시1) 게시판 검색2) 마이페이지  화면에 나오지 않는 곳 ..

CTF: 어드민은 내 것이다.

/4/ 인덱스 페이지 요청     ->    응답 코드 200, js코드로 login.php 리디렉션                                 ->   로그인 페이지 요청   ->   응답 코드 200, 로그인 페이지 보여줌 ->   로그인 정보 입력, 제출   ->   제출하면 /4/js/login.js 에서 입력값 받아서 onLogin 함수 실행 ->   onLogin함수에서 입력값으로 url을 만들고 loginProc.php로 GET요청    ->  loginProc.php에서 받은 인자들로 로그인 검증, 인정되면 login.js로 ok 신호 보냄 ->   loginProc.php로 부터 받은 응답이 ok면 login.js가 사용자를 index.php로 리디렉션 (에러메시지는 숨김)..

자습 2024.11.23

모의해킹 스터디 5주차 과제: CTF - 로그인, 인증 우회

못 푼 게 많다.그런 문제는 정답은 못 맞춰도 데이터 오고가는 흐름을 정리하고할 수 있는 건 내 나름의 로직을 짜서 비슷한 걸 만들어보려고 했다.(지다못해 쳐발렸지만 이거라도 하면 점점 강해지겠지....)     ♨ ADMIN IS MINE ♨admin 계정으로 로그인하자!(얘는 풀긴 함.... 얻어 걸림!!!!!)(문제 하단 접은글에 정석 풀이와 좀 더 공들인 구현이 있습니다.) 나는 지금 doldol / dol1234 /4/ 인덱스 페이지 요청     ->    응답 코드 200, js코드로 login.php 리디렉션                                       (js로 location.hret = login.php; 할 경우                             ..

모의해킹 스터디 5주차: 로그인, 인증 우회 복습

☎ 웹 서버의 이해1. 정적 페이지/동적 페이지  Web server - WAS - DB2. SQL3. 로그인 과정, 로직에 따른 케이스    쿠키, 세션, 세션ID, JWT4. 웹 프록시 툴  Burp Suite     ◈  SQL Injection         (맛보기) injection : 주입하다, 넣다 → SQL문을 넣어서 인증을 우회하기도 하고 데이터베이스에서 원하는 정보를 추출할 수도 있는 해킹 기법    사이트의 검색창이나 로그인 폼 등과 같이 SQL문을 사용해야하는 곳에서 써먹음.    이런 SQL문이 있다고 해보자. SELECT * FROM user_table WHERE id = '____'; 빈칸에 들어가는 값이 있는 행의 데이터를 DB의 테이블에서 찾는 문장이다.저 빈칸에는 어떤 ..

웹 개발: 게시판 - 글 작성

1. Virtual Box 7.1.4 + 우분투 리눅스 20.042. 우분투 APM (Apache2 + PHP + MySQL)3. 기본 웹 루트 경로 /var/www/html4. VScode SSH5. 사진 등은 termius    (수정될 수 있음) 1. idx2. 제목3. 내 서버에 저장한 이미지 url4. 글 내용5. 작성자명6. 작성날짜  컬럼 자료형에 대한 자료https://devdhjo.github.io/mysql/2020/01/30/database-mysql-003.html Data Types" data-og-host="devdhjo.github.io" data-og-source-url="https://devdhjo.github.io/mysql/2020/01/30/database-mysql-..

자습 2024.11.13

모의해킹 스터디 4주차: 웹 프록시 툴 - Burp Suite

1. Virtual Box 7.1.4 + 우분투 리눅스 20.042. 우분투 APM (Apache2 + PHP + MySQL)3. 기본 웹 루트 경로 /var/www/html4. VScode SSH5. 사진 등은 termius  순서웹 프록시 툴버프 스위트버프 스위트를 활용한 CTF 풀이   ◈ 웹 프록시 툴 웹 프록시 툴이란?클라이언트(브라우저)와 웹 서버 사이에 껴서 요청과 응답을 대신 전달하는 역할(proxy)을 하는 프로그램.  이전에 공부한 바로는 우리가 브라우저를 이용하여 웹 서버에 어떤 파일을 요청하면웹 서버는 그 파일에서 필요한 동적, 정적 처리를 완료한 후 우리가 사용 중인 브라우저에게 보낸다.  하지만 꼭 이런 식으로 직접 소통하는 방법만 있는 것은 아니다. 나와 웹 서버 사이에 오고 ..

내가 만든 사이트에 세션, 로그아웃, DB 연동 파일 분리 적용하기

1. Virtual Box 7.1.4 + 우분투 리눅스 20.042. 우분투 APM (Apache2 + PHP + MySQL)3. 기본 웹 루트 경로 /var/www/html4. VScode SSH5. 사진 등은 termius   충격적인 사실!!!!!!!!!! phpsessid가 사용자의 로그인상태를 알려주는 척도가 아니란다.너무 충격적이다.. 이제껏 로그인한 후에 개발자도구를 이용해서 phpsessid가 생긴 거 보고 음~ 잘 로그인 되었군 허허 했는데지금 확인해보니 login.php 페이지만 가도 phpsessid값이 발급된다...!!!!!!!!! 으악!! phpsessid는 그냥 session_start(); 가 포함된 페이지에 접근한 사용자들에게 다 주는 거라고 한다..일단 일련번호를 붙이는 느..

자습 2024.11.12

모의해킹 스터디 4주차 과제(1): 자바 스크립트

※ 4주차 과제 (1)≫ 자바스크립트 공부하기자바스크립트로 키로거 코드 짜기자바스크립트 기본  ◈ 자바스크립트로 키로거 코드 짜기키로거 : 사용자가 키보드에 입력한 모든 내용을 기록.              반드시 악의적으로 사용되는 것은 아니지만 그런 목적으로 사용되는 경우가 많음. 1) 로직이벤트 리스너로 입력 감지   ->   입력한 문자 공격자 서버에 보내기   ->   입력한 문자 서버에 저장   ->   문자 확인 *감지하자마자 서버에 데이터를 보내야 ㄹㅇ 찐 키로거가 될 수 있을 것 같다.  2) 결과 코드 html 코드 : 키보드 입력 받기, 데이터 가지고 GET요청 보내기 입력받을 input box와키보드가 눌릴 때 처리할 자바스크립트 코드가 적혀 있다. 인풋 박스에 키보드가..