[Webhacking.kr] NotSQL
·
Wargame/Wargame site
https://webhacking.kr/chall.php Webhacking.kr webhacking.krhttp://webhacking.kr:10012/ http://webhacking.kr:10012/ webhacking.kr:10012처음에 문제 이름만 대충 보고 NoSQL Injection 문제인 줄 알았다.. 하지만 GraphQL Injection 문제이기에 해당 공격 기법에 대해 모른다면 아래의 글을 통해 개념을 익히고 풀어보면 좋을 것 같다. GraphQL InjectionGraphQL Injection이란?GraphQL Injection이란 GraphQL 쿼리가 담긴 요청을 조작하여 악의적인 요청을 보내는 기법입니다.API와 GraphQL에 관한 설명은 다른 포스팅을 참고해 주세요 (API..
GraphQL Injection
·
Web/Web Hacking
GraphQL Injection이란?GraphQL Injection이란 GraphQL 쿼리가 담긴 요청을 조작하여 악의적인 요청을 보내는 기법입니다.API와 GraphQL에 관한 설명은 다른 포스팅을 참고해 주세요 (API란? / GraphQL이란?) 아래의 사진과 같이 상품의 정보들을 불러오는 요청에 대한 응답으로 id값이 1, 2, 4인 상품만 반환될 경우 id값이 3인 상품이 숨겨져 있을 수 있다는 추측을 할 수 있습니다.이러한 경우 인자 값으로 id값에 3을 포함시켜 요청해 주면 아래와 같이 비공개 정보를 불러올 수 있습니다.또한 GraphQL에서 스키마에 대한 정보를 서버에서 쿼리할 수 있는 내장 GraphQL 함수를 통해 아래와 같이 GraphQL의 스키마 정보도 불러올 수 있습니다.공격을 위..
GraphQL이란?
·
Web/언어
GraphQL이란?GraphQL은 Graph Query Language의 약자로 이름에서 확인 가능하듯 SQL과 같은 쿼리 언어입니다. 이러한 쿼리 언어로 작성된 메시지를 통해 서버 또는 클라이언트의 작업을 수행해 주는 라이브러리가 존재하는데 이는 GrpahQL 공식 사이트에서 언어 및 환경마다 사용할 수 있는 라이브러리를 확인할 수 있습니다.클라이언트가 필요한 데이터에 대한 쿼리를 선언하여 GraphQL에 넘기면 GraphQL은 쿼리를 해석하여 서버에서 필요한 데이터를 가져온 후 클라이언트에 해당 데이터를 반환하는 방식입니다. GraphQL은 API 쿼리 언어일 뿐, SQL도 NoSQL도 아닙니다!Schema스키마는 데이터 구조를 정의한 것으로 어떤 데이터들이 사용될 수 있고, 어떤 요청 및 구독이 전..