일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- python flask
- 해커팩토리
- 웹해킹 실습
- 포렌식
- 리버싱 기초
- Burp Suite
- 웹 해킹
- 리버싱
- 보안
- Burp Suite Intruder
- 네트워크 포렌식
- 시스템 해킹
- ftz
- 게시판 만들기
- SANS
- Blind Sql Injection
- 부트스트랩
- 디스크 포렌식
- 로그 분석
- CTF-d
- SQL Injection
- 해커팩토리 7번
- 해커팩토리 10번
- 해커 팩토리
- 레나 튜토리얼
- 테이블명 수집
- union sql injection
- 해커 팩토리 6번
- 파일 다운로드 취약점
- 해커팩토리 8번
- Today
- Total
목록Web (18)
Cha4SEr Security Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bibE4t/btq0AHUyQjF/Q4m5tWIQa4uPXwROlI9Wg1/img.png)
이번엔 글쓰기 페이지를 만들어서 Flask에서 페이지 이동하는 것을 다뤄보도록 하겠습니다. 우선 저번시간에 메인화면에서 코드를 보면 Cha4ser's Free Board! 번호 제목 글쓴이 조회수 {% for i in data_list %} {{ i[0] }} {{ i[1] }} {{ i[2] }} {{ i[3] }} {% endfor %} ◀ 1 2 3 4 5 ▶ 글쓰기 여기서 밑에서 두번째 줄인 태그를 보시면 "글쓰기" 라는 것이 보일겁니다. 실제로는 돌려보면 이렇게 생겼습니다. 하지만 저희는 저 버튼을 눌렀을 때 어떤 html 파일로 가야하는지, 어떤 데이터를 넘겨주어야 하는지 등 아무것도 정한게 없기 때문에 글쓰기 버튼을 누르더라도 어떠한 변화도 일어나지 않습니다. 이제부터 하나씩 바꿔봅시다. 정..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfSVIK/btqFP9QvrcY/gQEKjreO3AdZv2EEtXL3Ok/img.png)
지난시간에 다뤘던 Blind Injection 공격 예상 루트는 다음과 같습니다. 1. information_schema.tables 에 존재하는 테이블 수를 파악한다. 2. DB버전을 수집했을때와 유사하게 substr을 이용해 전체 테이블의 이름을 수집한다. 3. 테이블명이 user, users, admin 등 대표적으로 많이 사용되는 테이블명을 대상으로 공격을 시도한다 1번에 대한 포스팅은 아래 링크에서 볼 수 있습니다. https://cha4ser.tistory.com/entry/Web-Hacking-Blind-SQL-Injection2-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%AA%85-%EC%88%98%EC%A7%911 2. ascii와 substr을 이용해 information_..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHb3wv/btqFMHgNn7l/ePAikXykQHk7DJfmQFYRqK/img.png)
지난시간에 이어 Blind SQL Injection을 통해 수집할 수 있는 데이터에 대해 알아보도록 하겠습니다. (Blind SQL Injection 개요 : https://cha4ser.tistory.com/entry/Web-Hacking-Blind-SQL-Injection1-DB-%EB%B2%84%EC%A0%84-%EC%88%98%EC%A7%91) 2) 테이블명 수집 웹 서버에서는 대표적으로 user, users, admin, login, employees 등 과 같은 테이블명을 자주 사용합니다. 이런 특성을 이용해 게싱으로 테이블명을 바로 찾을수도 있는데 (SELECT 1 FROM 'users' / SELECT 1 FROM 'user' 등을 입력해서 오류가 나지 않을 때 성공) 사실상 그렇지 않은 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/3hIhc/btqFND5xhdh/6IAPklsrEut1kZhKpRrbN1/img.png)
저번시간에 이어서 이번엔 메인 페이지를 Python Flask에서 서버를 구동시켜보겠습니다. (부트스트랩 연동 포스팅 : https://cha4ser.tistory.com/entry/Web-%EB%B6%80%ED%8A%B8%EC%8A%A4%ED%8A%B8%EB%9E%A9%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0) Pycharm을 키고 정말 간단한 코드를 작성해봅시다. Pycharm 프로젝트는 이전 포스팅에서 작성한 html과 같은 폴더로 설정하는 것이 좋습니다. from flask import Flask, render_template app = Flask(__na..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pEZvB/btqFOhU1fsh/nmBOMDo971CQoLK4WhrR9K/img.png)
이번 포스팅에서는 부트스트랩을 이용한 기본적인 게시판을 구축하는 방법에 대해 알아보겠습니다. 사용할 도구 및 툴은 부트스트랩, vscode, Python Flask, Pycharm 입니다. 부트스트랩 공식 사이트는 여기입니다. https://getbootstrap.com/ Bootstrap The most popular HTML, CSS, and JS library in the world. getbootstrap.com 들어가서 Download 탭에 들어가시면 직접 다운로드 해서 쓰는것도 있지만 우리가 사용할 부분은 CDN입니다. 다운로드 받아서 직접 폴더에 넣어주는 방식이 아니라 저기 있는것들을 복사해서 html 코드에 붙여넣기만 하면 부트스트랩에 정의되어 있는 css와 js를 사용할 수 있기때문에 좀..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dsoiiD/btqFKCzPwdB/CKvqmrHcTpP60lrbg45Xxk/img.png)
Union Based SQL Injection에 이어 Blind SQL Injection에 대해 알아보도록 하겠습니다. Blind SQL Injection 은 데이터베이스 조회 후 결과를 직접적으로 확인할 수 없는 경우 사용하는 공격 기법입니다. 흔히 사용자로부터 입력받은 데이터를 비교해 참/거짓을 구분 짓고, 참/거짓의 결과에 따른 특별한 응답을 생성할 때 시도해 볼 수 있습니다. 이해하기 쉽게 실습 사이트에서 직접 해보면서 설명하겠습니다. 실습 사이트 : http://testphp.vulnweb.com/listproducts.php?cat=1 pictures The shore Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec molest..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxnNwP/btqFAPFXDxP/0xVmxHXjjXefKEKgR8wTpK/img.png)
쿠키/세션을 이용한 인증방법과 함께 JWT를 이용하는 방법도 있습니다. JWT(Json Web Token)는 인증에 필요한 정보들을 암호화 시킨 토큰을 의미합니다. 쿠키/세션 방식과 유사하게 토큰을 HTTP 헤더에 실어서 서버에 보내게 됩니다. https://jwt.io 사이트에서 jwt의 형태를 볼 수 있습니다. * jwt 토큰의 구성요소 - Header - Payload - Verify Signature 각각 들어있는 데이터는 Header : 서버로 보내기 전 인코딩할 방식과 타입 Payload : 서버에 전송할 데이터(ID, 유효기간 등) Verify Signature : Base64로 인코딩한 Header,Payload, Secret_Kye) 입니다. 실제로 토큰을 보낼 때는 Encoded Hea..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bCSGiP/btqFA5IzXDR/16HFNXVwXrmauBpjMAUz90/img.png)
웹해킹을 하기 위해서는 웹 상에서의 여러가지 특성에 대한 이해가 중요합니다. 이번시간에는 쿠키와 세션에 대해 알아보도록 하겠습니다. 우선 Web이 다른 시스템과의 가장 큰 차이점은 접근성이 좋고 HTTP 프로토콜을 사용한다는 것 입니다. HTTP (HyperText Transfer Protocol) 란 인터넷 상에서 서버와 사용자 사이에 문서를 주고 받기 위한 통신 규약을 의미합니다. 사용자가 서버에 요청을 보내는 것을 HTTP Request 받은 요청에 대한 서버의 응답을 HTTP Response 라고 합니다. HTTP Request와 Response의 각각 부분이 어떤 것을 의미하는지는 다른 포스팅에서 알아보도록 하고 이번에는 HTTP 특징에 따른 쿠키와 세션에 대해 알아보겠습니다. 우선 HTTP의 ..