본문 바로가기

전체 글69

WEB 이란? WEB 이란? 월드 와이드 웹의 줄임말이다. 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간을 의미한다. 인터넷 상에서 텍스트나 그림, 소리, 영상 등과 같은 멀티미디어 정보를 HyperText 방식으로 연결하여 제공한다. 사용 방법에 따라 Static Pages, Dynamic Pages로 분류한다. HTML 이라는 언어를 사용하여 누구나 자신만의 문서를 작성할 수 있다. HTML로 작성된 문서에 HTTP라는 프로토콜을 사용하면 누구나 검색하고 접근할 수 있다. * 하이퍼텍스트(Hyper Text) ? 하이퍼링크를 집어 넣음으로써 웹 상에 존재하는 여러 문서끼리 참조할 수 있는 기술을 의미한다. * 하이퍼링크(HyperLink) ? 문서 내부에서 또 다른 문서로 연결되는 참조이다. WEB.. 2021. 11. 16.
Rest API란? Restful API란? Rest API vs Restful API REST 란? Representational State Transfer의 약어이다. 웹에 존재하는 모든 자원(문서, 이미지 등)에 고유한 URI를 부여해서 활용하는 것으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법론이다. 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있다. HTTP 메소드를 통해서 CRUD(Create, Read, Update, Delete) 연산을 수행한다. 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나로 자원을 요구하는 쪽이 클라이언트이고, 자원을 가지고 있는 쪽이 서버이다. URL? URI? URL은 웹 주소라고도 하며, 실제 파일의 위치를 나타내는 주소를 의미한다. URI는 특정 리소스를 식별하는 통합 자.. 2021. 11. 2.
[Lord of SQLInjection] Level04 write-up LOS Level 04번 문제를 풀어보자. 풀이 과정 1. $_GET[pw] 를 통해 pw를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[pw]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack ~_~ 화면으로 넘어간다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 3. 다음 문장은 입력받은 pw와 id가 admin인 값을 찾아서 $query 변수에 저장하는 쿼리문이다. $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 4. 값을 찾은 쿼리문을 출력하고,$result['id'].. 2021. 10. 14.
[Lord of SQLInjection] Level03 write-up LOS Level 03번 문제를 풀어보자. 풀이 과정 1. $_GET[no] 를 통해 no 변수를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[no]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack ~_~ 화면으로 넘어가고, '(싱글쿼터), "(더블쿼터), ` 값이 있을 시 No Quotes~_~ 화면으로 넘어간다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 3. 다음 문장은 입력받은 no와 id가 guest인 값을 찾아서 $query 변수에.. 2021. 10. 14.
[Lord of SQLInjection] Level02 write-up LOS Level 02번 문제를 풀어보자. 풀이 과정 1. $_GET[id] 와 $_GET[pw] 를 통해 id와 pw를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[id]와 $_GET[pw]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack~_~ 화면으로 넘어가게 된다. 그러므로 필터링되는 값을 우회해서 공격해야 한다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 3. 다음 문장은 입력받은 id와 pw를 값을 찾아서 $query 변수에 .. 2021. 10. 14.
[Lord of SQLInjection] Level01 write-up LOS Level 01번 문제를 풀어보자. 풀이 과정 1. $_GET[id] 와 $_GET[pw] 를 통해 id와 pw를 사용자 입력값으로 받고 있다. 2. preg_match() 함수는 $_GET[id]와 $_GET[pw]로부터 입력받은 값에서 'prob', '_', '.', '\' 값이 있을 시 No Hack~_~ 화면으로 넘어가게 된다. 그러므로 필터링되는 값을 우회해서 공격해야 한다. 문제에서 입력값을 GET 방식으로 받는다. GET 방식으로 받게 되면 URL에 입력값이 그대로 노출된다. → 그래서 GET 방식은 입력값에 대해 보안이 필요없거나 빠르게 전송 시 사용한다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(.. 2021. 10. 14.