분류 전체보기 90

나만의 실습 페이지 만들기 (3.5편)

https://ilsancityboy.tistory.com/75 나만의 실습 사이트 만들기 (3편)https://ilsancityboy.tistory.com/74 나만의 실습 사이트 만들기 (2.5편)https://ilsancityboy.tistory.com/73#comment21545088 나만의 실습 사이트 만들기 (2편)지난글https://ilsancityboy.tistory.com/72 나만의 실습 사이트 만ilsancityboy.tistory.com지난 글에서는 게시판 기능과 글쓰기에 관련된 기능들을 구현했다.이번 글에서는 쿠키 세션을 활용해 게시판 글쓰기 기능의 작성자 부분을 회원정보의 아이디로 고정시켜 글 작성이 되게끔 만들어 볼 것이다.1. import  . . . session먼저 기존코..

창작물 2024.06.21

나만의 실습 사이트 만들기 (3편)

https://ilsancityboy.tistory.com/74 나만의 실습 사이트 만들기 (2.5편)https://ilsancityboy.tistory.com/73#comment21545088 나만의 실습 사이트 만들기 (2편)지난글https://ilsancityboy.tistory.com/72 나만의 실습 사이트 만들기 (1편)매번 sql injection 이나 XSS 등등 공격 기법을 사용해보기ilsancityboy.tistory.com지난 글에서는 sql을 연동하고 배경을 영상으로 바꾸기까지 완성했다.이번 글에서는 커뮤니티처럼 실제 게시판, 글쓰기 , 글 목록과 목록 나누기 기능을 구현 할 것이다.  1. 데이터베이스 모델 정의제일 먼저 게시판에 글을 작성하면 그 글이 저장되거나 , 저장된 글을 ..

창작물 2024.06.20

나만의 실습 사이트 만들기 (2.5편)

https://ilsancityboy.tistory.com/73#comment21545088 나만의 실습 사이트 만들기 (2편)지난글https://ilsancityboy.tistory.com/72 나만의 실습 사이트 만들기 (1편)매번 sql injection 이나 XSS 등등 공격 기법을 사용해보기 위해 가능한 주어진 사이트들을 돌아다니다가 나도 나만의 실습 사이ilsancityboy.tistory.com 지난 글에서는 회원가입 페이지와 데이터베이스 연동까지 끝마쳤다.다만 개인적인 욕심으로 배경의 이미지를 실제 롤 클라이언트처럼 영상으로 나오게 하고 싶어서 작성한다. 배경 이미지를 영상으로 기본적으로 css에는 영상을 넣을순 없다.따라서 html의 태그를 사용해야한다. 1.영상 다운로드먼저 유튜브에서..

창작물 2024.06.18

나만의 실습 사이트 만들기 (2편)

지난글https://ilsancityboy.tistory.com/72 나만의 실습 사이트 만들기 (1편)매번 sql injection 이나 XSS 등등 공격 기법을 사용해보기 위해 가능한 주어진 사이트들을 돌아다니다가 나도 나만의 실습 사이트를 하나 마련해놓으면 좋겠다 싶어서 기획하게 됐다.시작전 먼저ilsancityboy.tistory.com 지난 번에 이어 이번글에서는 총 2가지를 할 것이다. 1.회원가입 페이지 만들기2.sql (데이터베이스 연동하기) 1. register html{% extends 'layout.html' %}{% block title %}회원 가입{% endblock %}{% block content %} 회원 가입 ..

창작물 2024.06.18

나만의 실습 사이트 만들기 (1편)

매번 sql injection 이나 XSS 등등 공격 기법을 사용해보기 위해 가능한 주어진 사이트들을 돌아다니다가 나도 나만의 실습 사이트를 하나 마련해놓으면 좋겠다 싶어서 기획하게 됐다.시작전 먼저 간단하게 구성을 해보았다.1. 어떤 사이트를 만들 것 인가?ㄴ xss와 sql injection같은 여러가지 실습을 위해서는 로그인, 게시판 등등이 있으면 좋을 것이다.    따라서 커뮤니티 사이트를 하나 만들자.  2. 테마는?ㄴ 내가 좋아하는 "리그오브레전드" 테마로 가져와서 커뮤니티를 꾸며볼 것 3. 필요한 것?ㄴ 기본적으로  웹을 띄워주기 위한 편리한 Flask , SQL 인젝션까지 실습하기 위함이니까 간편한 Sqlite 3     Flask 를 사용하기 위해 python, 리그오브레전드 테마 css..

창작물 2024.06.17

Same Origin Policy (SOP)

쿠키에는 인증 상태를 나타내는 민감한 정보가 보관되며, 브라우저 내부에 저장된다.그리고 브라우저가 웹 서비스에 접속할 때 브라우저는 자동으로 쿠키를 헤더에 포함시켜 요청을 보낸다.이 덕분에 우리는 사이트, SNS 와 같은 웹 서비스에 한 번 로그인 한 후 일정 기간은 로그인하지 않고도 바로 서비스를 사용할 수 있다. 하지만 악의적인 페이지를 접속했을 때, 페이지가 javascript를 이용해 이용자의 SNS 웹 서비스로 요청을 보내거나 악의적인 행동을 할 수 있다.해당 악의적인 자바스크립트는 사용자의 계정으로 로그인하지 않고도 쿠키를 통해 사용자 권한으로 악의적인 행동을 하게끔 로직을 보내게 되고 해당 사이트에선 응답을 받게 되며 수락하게 되는 것이다. 이와 같은 문제를 방지하기 위해 동일 출처 정책 ,..

드림핵 정리 2024.06.14

webhacking.kr 02번 문제

먼저 2번문제를 들어가면 가장 먼저 보이는 문구이다.아무런 입력창이 없고 단순하게 저 상태로만 보인다. F12를 눌러 개발자 도구를 켜 웹 소스코드를 보면 주석처리 되어있는 부분들이 있다.시간이 보이고 admin.php 페이지를 들어가면 엉덩이를 차주겠다는 주석이 들어있다.admin.php를 들어가보자 들어가보니 password를 입력할수 있는 폼이 있는 페이지가 나온다.하지만 우린 패스워드를 모르는 상태.sql 인젝션 문제인가 싶어서 ' or 1=1 -- 을 입력해도 입력이 틀렸다고만 나온다. 소스코드에도 딱히 아무런 힌트가 들어있지 않다.  이것저것 뒤져본 결과 time이라는 쿠키값이 들어있는것을 확인할 수 있었다.admin페이지가 아닌 다시 index페이지로 들어가서 이 time 쿠키값을 수정해보자..

webhacking.kr 01번 문제

include "../../config.php";  if($_GET['view-source'] == 1){ view_source(); }  if(!$_COOKIE['user_lv']){    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");    echo("");  }?>  사용자의 쿠키를 설정해주는 부분이다. 'user_lv' 쿠키를 값 "1"로 설정하고, 유효기간을 30일로 설정한다.    if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;  if($_COOKIE['user_lv']>3) sol..

Lord of SQL Injection 11번 문제 - golem

if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); 이번 문제에서는 or과 and 그리고 substr( 과 = 을 필터링한다or 대체로는 ||and 대체로는 &&substr( 대체로는 mid, substring 이 있다.= 대체자로는 like가 있다. substr의 대체자인 mid와 substring은  약간씩 사용법이 다르다.https://ilsancityboy.tistory.com/67 Substr , Substring , Midsubstr, substring, mid 함수들은 문자열에서 일부분을 추출하는 데 사용된다. substrsubstr 함수는 주어진 문자열에서 지정된 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환한다.// ..

Substr , Substring , Mid

substr, substring, mid 함수들은 문자열에서 일부분을 추출하는 데 사용된다. substrsubstr 함수는 주어진 문자열에서 지정된 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환한다.// JavaScript 예시var str = "Hello world";var result = str.substr(6, 5); // "world" substringsubstring 함수는 문자열에서 두 인덱스 사이의 문자열을 반환합니다. 시작 인덱스가 끝 인덱스보다 클 경우에는 두 인덱스가 바뀐다.// JavaScript 예시var str = "Hello world";var result = str.substring(6, 11); // "world" midmid 함수는 주어진 문자열에서 시작 인덱스부터..

PHP, MYSQL 2024.05.15