본문 바로가기

전체 글

(226)
성공적인 SQL Injection을 위한 SQL 문법 - 조건문, 서브쿼리 CASE WHEN 구문 기본 틀 CASE WHEN [조건문] THEN [참] ELSE [거짓] END ex ) select * from member where seq=(case when 1=1 then 1 else 2 end); ex ) select case when 1=2 then 'test1' else 'test2' end; ------------------------------------------------------------------------- 서브쿼리 개념 메인쿼리 안에 또 하나의 select 구문이 들어가는 형태 형태를 보자면 SELECT (SubQuery) FROM (SubQuery) a WHERE [COLUMN] = (SubQuery) 인데 어떤 위치에 오냐에 따라서 서브쿼리의 명칭..
성공적인 SQL Injection을 위한 문법 - 문자열함수 SQL Injection 공격시에 문자열 함수는 아주 유용하게 사용될 수 있다 MySQL은 총 3가지의 문자열 함수를 사용할 수 있는데, 아래 함수와 같다. substring substr mid 사용법은 함수 (문자열, 시작위치, 길이) ex) substring('test', 3, 1 ) ; substr ('test' , 3, 2) ; mid('test',3, 2 ) ; 이런식으로 쓸 수 있음 다른 데이터베이스 종류에 따른 문자열 함수 문자, 아스키 코드 변환 함수 사용법 select ascii('a'); 이렇게 입력하면 알파벳 a 에대한 아스키 코드 값을 알려준다 select ascii(substring('test',2,1)); 로 substring과 결합해서 사용도 가능하다 select concat(..
[3주차] 스터디 정리 - SQL Injection response 패킷도 데이터를 변경할 수 있다 result : fail -> ok로 바꿀 수 있음 script 태그로 감싸진 javascript 코드도 response에서 변경할 수 있음 intercept is on 잡아서 Do intercept -> do response ~~ 클릭하기 브루트 포스 문제 취약점: 로그인 인증 횟수를 제한하고 있지 않음 **유명한 프록시 툴 burp suite - GUI 방식 fiddler (window에서만 돌아감) -> 쓰기 어려움 mitmproxy - CLI 방식 ** SQL ** DB : 엑셀 그 자체임 database ex : 이름 컬럼 / 전화번호 컬럼 / email 컬럼 SELECT id FROM member column : 열 row : 행 2행 3열에 해..
AJAX와 JSON - PHP와 javascript를 동시에 사용할 수 없을까? php파일을 코딩하다가 머릿속에서 javascript와 php 코드가 혼동되면서 동시에 쓸 수 있는지 코딩해보다가 안되었었다. 인터넷을 찾아보니 ajax를 사용해야 된다고 한다. ajax가 대체 뭔지 알아보니 javascript는 클라이언트 측에서 사용하는 언어이고 php는 서버에서 다루는 언어이다 보니 결국 php와 javascript를 동시에 사용한다는 것은 서버 통신을 한다는 의미이다 ajax는 서버 통신 방법이었다 AJAX (Asynchronous JavaScript and XML) 약자는 이렇게 되지만 브라우저 내에서 비동기 기능을 제공하는 모든 기법을 통칭한다. 이용자가 서버를 통해 데이터를 전해 받을 때 전해주는 여러가지 형식이 있다 XML, CSV, JSON 등등이 있는데 AJAX의 X가 ..
HTTPS란 대체 뭘까? 대칭키와 비대칭키 HTTP를 User와 서버에서 주고 받을 때 네트워크 상에서 어떤 누군가가 신호를 인터셉트하면 소중한 개인 정보가 유출될 가능성이 있다. 이러한 취약점을 해결하기 위한 프로토콜이 HTTPS이다. HTTP에 S (Secure Socket)가 추가된 형태이다. 기본 골격은 HTTP와 거의 동일하지만 데이터를 주고 받는 과정에 '보안'요소가 추가되었다. 웹페이지를 돌아다니다 보면 나오는 이 자물쇠 표시가 안전하게 HTTPS를 통해 보호되고 있다는 뜻이다. 어떻게 보안할까? 그것은 바로 대칭키와 비대칭키라는 요소를 사용한다. SSL이나 TLS 프로토콜을 사용하여 세션 데이터를 암호화한다. TLS : Transport Layer Security의 줄임말. SSL에서 발전하여 변경된 이름이지만 아직도 SSL이란 이..
[2주차] 로그인 구현 #2 - 세션을 이용한 PHP 로그인 기능 구현 https://seahippocampus.tistory.com/13 [2주차] 로그인 기능 구현 / 메인 페이지 /로그아웃 기능 구현 로그인 기능을 구현해놓은 결과만 있는 것이 아니라 여러 시행착오와 과정들에서 보완점과 느낀점이 함께 적혀있습니다 읽을 때 고려해주세요! ------------------------------------------------------- 로그 seahippocampus.tistory.com 저번에는 조건문같은 기본적인 코드의 구조를 통해 GET 방식으로 페이지를 옮겨가면서 로그인을 만들었지만, 쿠키나 세션 등을 전혀 이용하지 않았다 그래서 이번에 세션을 이용한 PHP 로그인 기능을 구현해 보려고 한다 세션에 관한 정보는 https://teserre.tistory.com/8 ..
[2주차] 로그인 구현 #1 - 메인 페이지 /로그아웃 기능 구현 로그인 기능을 구현해놓은 결과만 있는 것이 아니라 여러 시행착오와 과정들에서 보완점과 느낀점이 함께 적혀있습니다 읽을 때 고려해주세요! ------------------------------------------------------- 로그인 기능을 구현해볼 것이다 디자인 같은 건 일단 논외로 하고, 지정된 아이디와 비밀번호가 아니면 메인페이지로 들어갈 수 없는 페이지를 만들려고 했다 그리고 만약 틀린 아이디를 입력했을 경우는 다른 창으로 넘어가는 게 아닌 로그인 페이지에 그대로 머물렀으면 했다 처음은 간단하게 form 태그를 이용해서 get 방식으로 id와 password를 logincheck.php로 보내는 코드로만 페이지를 구성했다. login.php 2주차 로그인 기능 구현 과제 loginchec..
[2주차] 미스테이크 문제 풀이 CTF 이번에 풀어볼 문제는 미스테이크이다 로그인 우회와 마찬가지로 admin 계정으로 로그인해야하는 문제이다 문제는 같을지 몰라도 구성 페이지의 데이터가 다를 것이다 링크로 입장하면 로그인 화면 창이 뜬다 새로고침을 한번 하면 다음과 같은 페이지들을 불러오는 것을 알 수 있다 mario 계정으로 로그인을 한 번 해보자 다음과 같은 창이 뜬다 로그인 프로세스를 살펴보았을 때, 넘어가는 듯한 페이지가 없으므로 login.php -> index.php로 간다고 볼 수 있다 그럼 intercept 만으로도 쉽게 변조가 가능할 것 같다는 판단이 선다 id 와 비밀번호까지 치고 Sign in 을 아직 누르지 않은 상태로 intercept를 on 시키자 그럼 보낸 데이터가 담긴 패킷이 날라올텐데, 여기의 UserId를 m..