목록정보보안 (13)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5TmPS/btrEE0NBsMH/D0Q767gsDD05b94ldkWex1/img.png)
프록시(Proxy) 클라이언트와 서버 사이에 있는 적을 프록시라고 한다. 클라이언트가 서버에게 특정 요청을 할 때 브라우저에 특정 Proxy 서버를 거쳐가게끔 설정을 해 놓아 패킷을 가로채서 클라이언트에 대한 정보를 파악한다. 이렇게 하면 프록시는 클라이언트의 아이디나 패스워드 같은 민감한 정보들을 알 수 있다. 인터셉트(Intercept) 인터셉트는 웹 서버와 사용자 사이에서 통신되는 요청과 응답을 가로채서 그 안의 내용을 확인하는 것을 뜻한다. 프록시가 인터셉트한다고 생각하면 된다. BurpSuite 클라이언트가 웹 서버와 웹 브라우저 간에 전달되는 모든 HTTP 패킷을 * 웹 프록시 를 통해서 확인하면서 수정하는 것이 가능한 툴이다. (* 웹 프록시 : 웹 환경에서 활동하는 프록시) 이 툴을 사용하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cf60NG/btrEyu9RfQc/KA1mKZ43RaKeDC2jSEyh4k/img.png)
다중 로그인 서비스 거부 공격 사용자가 사이트에 접속해서 서비스를 이용하려면 서버 내에서 DB를 연결해야한다.그래서 한 사용자마다 하나의 DB connection이 필요하다. multi login(다중 로그인)을 구현하려면 DB connection이 최대 접속자 수 만큼 있어야한다. 만약 최대 2명까지 멀티 로그인을 할 수 있는 사이트가 있다고 가정해보자. 사이트에 2명이 로그인을 한 다음 또 다른 사람이 로그인을 하고싶어한다. 하지만 DB 커넥션이 부족하기 때문에 나머지 한 사람은 로그인을 하고 싶어도 하지 못하고 계속 기다려야한다. 이런 점을 이용하여 공격을 하는 것을 다중 로그인 서비스 거부 공격이라한다. DB connection pool DB connection pool은 동시접속 문제를 해결 할..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EDwNs/btrEAAn7Lvi/4uxmDHtIVSKCtbMrK40q5K/img.png)
쿠키와 세션의 차이점 쿠키 세션 저장되는 곳 클라이언트 서버 저장형태 텍스트 형식 Object 형 만료기간 저장시 설정하는데 설정하지 않으면 브라우저 종료시 소멸 정확한 시점을 알 수 없음 자원 한 도메인에 20개, 쿠키당 4KB, 총 300개 서버가 허용하는 한 용량에 제한 없음 인증쿠키값 속이기(Spoof Authentication Cookie) -> 쿠키 에디터(Cookie Editor)를 사용해서 쿠키 값을 바꿔 로그인 세션을 변경한다. 절차 정리 1. ID:webgoat로 로그인하여 sessionID1를 생성한 후, sessionID1의 쿠키를 저장 2. 다른 사용자 ID:aspect로 로그인하여 sessionID2의 쿠키를 저장 3. 다시 ID: aspect로 로그인 4. 쿠키에디터를 이용하여..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cpATNm/btrCwHCnYF4/X8UKOh1el62x47b9akMrtK/img.png)
Blind numeric sql injection 쿼리가 참일때와 거짓일 때의 서버의 반응 만으로 암호 데이터(숫자)를 얻어내는 기술이다. 마치 장님(The blind)이 지팡이를 이용하여 장애물이 있는지 없는지를 판단하는 것처럼 공격코드를 찾아내는 것이다. 하나하나 짚어가면서 찾는 것이라고 생각하면 쉽다.` 공격 시나리오 예시 첫번째 범위 찾기 : 101 and 'pin번호 > 10000' -> false 두번째 범위 찾기 : 101 and 'pin번호 > 8000' -> true 마지막 범위 찾기 : 101 and 'pin번호 = 8001' -> false 마지막 범위 찾기 : 101 and 'pin번호 = 9000' -> true --> pin 번호가 9000인 걸 알 수 있음 일반 SQLInjec..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/czGct6/btrBMGd9Kpg/khaErQ0Z0sZQ4uNjiQ8xj1/img.png)
SQL 구분 데이터 조작어(DML) : select, insert, delete, update 데이터 정의어(DDL) : create, alter, drop 데이터 제어어(DCL) : GRANT, REVOKE 조원 사이트로 가서 관리자 해킹 1단계 : SQL Injection 공격을 통해 정확한 패스워드 없이 관리자(‘Neville’)로 로그인 injection flaws -> LAB : SQL injection -> Stage 1: String SQL Injection 클릭 Neville Bartholomew(admin)’을 선택하고 Password에 아무 값이나 입력 -> 로그인 실패(패스워드 틀림) 패스워드 창에다 'or''=' 입력 로그인 성공! (SQL Injection성공) 로그인이 성공하면 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzzKaR/btrBmwu4Kv9/TSQkBTfpLJE5bVeHQIs2O0/img.png)
오늘은 사용자 인증에 대한 웹 해킹에 대하여 공부를 해보았다. 포트 port = 항구 port란 IP 내에서 애플리케이션(또는 프로세스)을 상호 구분을 위해 사용하는 번호이다. 운영 체제 통신의 종단점이라고도 한다. 2000년 중반부터는 거의 모든 시스템이 방화벽으로 보호되어 80번 웹 포트 외에는 모두 닫혀 있는 경우가 많아져 웹 해킹이라는 주제가 많이 연구되고 있다. ‘인터넷의 바다’, ‘인터넷 항해’ : 한 시스템의 포트에서 데이터가 출발하여 인터넷이라는 바다를 건너 다른 시스템의 포트에 도달하는 흐름에서 생긴 말 웹 해킹 방법 웹 해킹 방법에는 2가지가 있다. 1. 취약점의 존재 여부를 확인한 후 그곳을 통해침투를 시도하는 방법 2. 발견 가능한 모든 공격 표면을 찾아서 매트릭스를 작성한 후 하나..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c18mrF/btrAV29l80t/sWgtdOHTu32VALYM1gcLf1/img.png)
지뢰찾기 게임 crack 제작 지뢰찾기 게임의 초 부분을 1초에 한 번 --> 0.1초에 한 번 씩 늘어나게 시간을 조작하여 crack 파일을 만든다. 1. 지뢰게임 파일을 Ollydbg에서 열고 command 찾기 Search for -> command해서 'bpx SetTimer' command를 찾는다. 2. 그 윗 부분에 PUSH 3EB라는 명령문을 찾기 3EB(16진수)를 10진수로 바꾸면 1000이다. 1초는 1000ms이므로 3EB는 1초를 나타낸다. 그러므로 PUSH 3EB '1초에 한 번 증가'하라는 명령문인 것을 알 수 있다. 3. PUSH 3EB --> PUSH 64 0.1초 = 100ms 100을 16진수로 변경하면 64이다. 0.1초에 한 번씩 증가하게 변경하기 위해서 PUSH 3..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdeC8d/btrAD9mZ1hD/tJlo6P7zUFTbdehZMYa71k/img.png)
우회 리버싱이란 틀려도 맞는걸로 처리하는 것이다. 우회리버싱에 익숙해지기 위해 실패메세지를 우회하는 크랙파일을 만드는 연습과 직접 키값을 찾는 연습을 해보았다. 실습1 성공 메세지를 출력하는 우회리버싱 -> 비교하는 부분 JMP 코드로 변경 C드라이브의 type이 CD-ROM이 아니지만 CD-ROM 타입으로 인식되도록 우회하게함 CMP명령어를 찾은 후 JE -> JMP로 수정하여 무조건 'HD is a CD-ROM'을 출력하는 문장으로 이동하도록 코드를 수정 성공 메세지 박스 출력하는 부분 시작 주소 : 0040103D 실패 메세지 박스 출력하는 부분 시작 주소 : 00401028 JE 40103D --> JMP 40103D로 변경하여 실패해도 성공 메세지 박스 출력하는 부분으로 JUMP하여 성공했다고 ..