일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Burp Suite Intruder
- 네트워크 포렌식
- 포렌식
- 웹해킹 실습
- 해커 팩토리
- 리버싱 기초
- ftz
- 레나 튜토리얼
- 파일 다운로드 취약점
- 게시판 만들기
- 테이블명 수집
- 해커팩토리 7번
- CTF-d
- 로그 분석
- Burp Suite
- 보안
- 부트스트랩
- SANS
- 웹 해킹
- python flask
- 리버싱
- 시스템 해킹
- SQL Injection
- 해커팩토리 10번
- 해커팩토리 8번
- 디스크 포렌식
- 해커팩토리
- 해커 팩토리 6번
- union sql injection
- Blind Sql Injection
- Today
- Total
목록전체 글 (41)
Cha4SEr Security Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btn3cT/btrmac0lM1N/w3x6c0ctBTCgJpGXpfwfw0/img.png)
지난 포스팅에서 빈 글쓰기 페이지를 만들어 그쪽으로 호출하는것 까지 했었는데, 이번엔 페이지를 제대로 만들어서 글이 반영되도록 해보겠습니다. 우선 글쓰기 화면 틀부터 잡아야하기 때문에 write.html먼저 보도록 하겠습니다. 가장 기본적으로 글쓰기 화면에 필요한 입력란은 1. 제목 2. 작성자 3. 내용 이렇게 3개가 핵심이기에 이 3개부터 만들도록 하겠습니다. * 저번처럼 코드공개 후 설명하는방식으로 하겠습니다. ( 부분 생략) 제목 작성자 내용 작성 태그의 action 속성에는 /write_action 이라는 임시 페이지(?) 를 지정해주고, method를 post 방식으로 선언해줍니다. 그 밑에는 제목, 작성자, 내용 입력란을 만들었습니다. 제목과 작성자는 한줄짜리 태그를 사용하였고, 내용 입력란..
![](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..