일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리버싱 기초
- 디스크 포렌식
- SQL Injection
- 파일 다운로드 취약점
- 해커 팩토리 6번
- SANS
- 보안
- 네트워크 포렌식
- Burp Suite Intruder
- 로그 분석
- 부트스트랩
- ftz
- 해커팩토리
- 포렌식
- 리버싱
- 테이블명 수집
- 해커팩토리 8번
- 시스템 해킹
- 해커 팩토리
- 웹해킹 실습
- 해커팩토리 10번
- CTF-d
- 웹 해킹
- Burp Suite
- python flask
- 게시판 만들기
- 레나 튜토리얼
- Blind Sql Injection
- union sql injection
- 해커팩토리 7번
- Today
- Total
목록웹 해킹 (13)
Cha4SEr Security Study
![](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/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의 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/P0Mkq/btqFAqzxJsi/SK5VSka20YkFFEQUo5sNkK/img.png)
해커팩토리 초급 10번 문제입니다. 8번과 유사하게 개인정보 열람 페이지에서 관리자 계정 획득 후 관리자 계정으로 로그인하는 문제입니다. 들어가봅시당 로그인 화면이 나오고 guest1/guest1 로 로그인! 마이페이지 화면에 들어가면 8번문제와는 다르게 id를 입력받는 곳이 없습니다. F12를 눌러서 소스코드를 확인해봅시다. 자바스크립트 코드가 있는 부분이 있습니다. 하지만 특별히 수정하거나 얻을 정보는 없는것 같네요. 좀더 내려봅시당 계정의 고유번호에 대한 정보 처럼 보이는 곳이 있었습니다. 1~1000은 게스트 계정이고 5000~6000은 인가 계정이라고 합니다. 이런 정보가 있다는 것은 서버에 요청할 때 저 값을 함께 보낸다는 것을 유추해볼 수 있습니다. Burp Suite를 통해서 어떻게 전달하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bBQrWh/btqFBd6wYqR/v3ewPBuUKHLRXflbWw1dZ0/img.png)
해커팩토리 초급 8번 문제입니다. 개인정보를 조회할 수 있는 페이지를 통해서 관리자 계정 및 패스워드를 획득하고 관리자 계정으로 로그인하는 문제입니다. 들어가봅시당 로그인 페이지가 나오고 계정이 없을 경우 guest/guest 로 로그인 가능하다고 합니다. guest/guest 입력하고 들어가봅시당 메인페이지가 나와있고 MyPgae를 보니 아이디와 패스워드 정보가 있고, 수정은 불가능합니다. F12 눌러서 소스코드를 둘러봐도 별다른 내용은 없어보이는데 URL에서 힌트를 찾을 수 있었습니다. id = guest 이 부분이 눈에 띄었습니다. get 방식으로 id를 대놓고 보내고 있으니 저기에 admin을 넣고 별다른 필터링이 없으면 문제가 풀릴것으로 보입니다. 쨘 100점짜리 문제라 역시 별다른 필터링 없이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8ek6S/btqFz2EIYT6/lkH8MBdQYs6a2tLkAWwOrK/img.png)
이번 포스팅에서는 SQL 인젝션 중에서 Union Based SQL Injection 에서 알아보도록 하겠습니다. Union SQL Injection은 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION 이라는 SQL 연산자를 이용한 SQL 인젝션 공격 입니다. 원래의 요청에 한 개의 추가 쿼리를 사용해서 추가적인 정보를 얻어내는 것이 목적이며 Union SQL Injection을 하기 위해서는 두가지 쿼리문의 출력에 대한 칼럼의 개수와 데이터 형식이 같아야 합니다. 예를 들어서 SELECT id, password from table UNION SELECT email FROM table WHERE id='1' SELECT `id`, `password` from table UNION SELECT `emai..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sUzz9/btqFuiuXZec/q7B2wm16D4FAmZDiHGwGYk/img.png)
해커팩토리 초급 7번 문제입니다. 6번 문제와 유사하게 비밀 게시글을 읽어 인증키를 획득하는 문제입니다. 들어가봅시당 똑같이 비밀글이 보이고 암호를 입력하라는 창이 뜹니다. F12 눌러서 소스코드에 힌트가 있는지 확인해봅시당 var EncryptReadKey = "iRAJHaTRiRAJHaLLFBOwrXoLF6j2rSXC"; function trans() { if (document.PasswordTrans.idx.value == "") { alert("게시글 번호 값이 존재하지 않습니다."); exit; } if (document.PasswordTrans.password.value=="") { alert("게시글 암호를 입력 하세요."); document.getElementById("password")...