Web Security/web hacking(20)
-
blind sql injection
blind sql injection의 경우, error sql injection 과 union base sql injection에 비하면 너무 많이 걸린다. 하지만, 결과값을 확인하기 힘든 경우 time base blind sql injection 혹은 blind sql injection을 사용할 수 있는다. 또한, blind sql injection은 error, union base 보다 환경적으로 더 발생활 확률이 높다. 이에 blind sql injection을 설명 해보고자 한다. 아래 영상은 blind sql injection 버그바운티 영상이다. 궁금하신분들은 한번 구경해보세요 https://www.youtube.com/watch?v=bhPV7Mmp66o 일단 blind sql injecti..
2024.10.29 -
sql injection CTF vs real world. finger print
sql injection을 통해서 인증 우회, 정보 탈취, 서버권한 탈취 등등 많을 것을 할 수 있다. 그런데 대부분의 CTF의 환경에서 sql injection의 경우 서버 코드 및 DB의 스키마를 알고 있는 상태에서 공격한다, 하지만 진짜 웹 사이트는 그러한 정보가 주어지지 않는다. 이에 진짜 웹 사이트를 공격할 때 어떤 방식으로 진행되는지 설명하고자 한다. sql injection 정보탈취 시 error base attack, union base attack, sub query base attack, blind attack, out bound attack 등등 많다. 그 중에 대표적으로 union base attack을 처음부터 어떻게 진행되는지 설명해보도록 하겠다. 대표적으로 이런 검색창이 대부분..
2024.10.27 -
SQL injection 취약 부분 찾기
웹 CTF를 풀다가 실제 웹 사이트의 취약점을 찾을 때, 취약한지 취약하지 않은지 빠르게 확인하는 절차가 필요하다. 아무래도 CTF의 경우 SQL injection 문제의 경우 확실히 input 요소에 sql 구문을 잘 넣기만 하면 된다는 것을 알고 있다. 하지만 버그 바운티 등 실제 사이트는 아니다. 또한 소스코드의 유무에서 차이가 난다. 그렇다면 어떻게 빠르게 취약점의 존재여부를 확인할 수 있을지가 문제가 된다. 만약 ?indexPage=1이라는 파라미터가 존재한다면 2-1과 같이 산술연산을 통해서 확인을 할 수 있다. 에러가 발생하지 않고 page=1를 반환한다면 취약한 점이 존재하는것이다. ?indexFind = hello의 처럼 문자를 넣는 경우 hel' 'lo처럼 연결연사자를 사용할 수 ..
2024.10.24 -
NO-SQL injection
파일의 저장방식은 아래 사진처럼 발전하였다. NoSQL은 전통적인 관계형 데이터베이스 관리 시스템(RDBMS)과는 다른 방식으로 데이터를 저장하고 관리하는 데이터베이스 유형을 의미합니다. **스키마(Schema)**는 데이터베이스에서 데이터 구조와 그 구조에 대한 제약 조건을 정의하는 것을 의미합니다. 쉽게 말해, 데이터베이스 스키마는 데이터가 어떻게 조직되고 저장될 것인지를 나타내는 청사진 또는 설계도와 같습니다. NO-sql에서는 스키마가 정해져 있지 않으며 key-value와 같은 형식으로 값을 저장합니다. 또한, JSON 형식으로 쿼리를 만들 수 있습니다. 대표적으로 몽고 DB와 REDIS 가 존재합니다. 그렇다면 NO-SQL injection은 어떤 방식으로 진행되는지 몽고DB 통하여 설명하도..
2024.10.02 -
sql injection
sql injectioninjection 공격이라고 한다면 대표적으로 SQL injection을 떠오를 것이다. SQL Injection이란 SQL 문법 상의 빈틈을 통하여 서버의 권한을 탈취하거나 정보를 탈취하는 공격이다. SQL injection을 알기 위해서 SQL 문법을 알야한다.DDL, DML ,DCL - DMLSQL에서는 Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL) 총 세 가지의 질의 언어를 제공합니다. 이중 사용자는 DML을 이용하게 됩니다. 그렇기에 DML에 어떻게 이루어져 있는지 알아야 합니다. DML은 SELECT, INSERT, UPDATE, DELET 문으로 ..
2024.10.02 -
CSTI injection
CSTI(Client-Side Template Injection)은 공격자가 Template 코드를 기존 template에 include 시켜서 원하는 액션을 수행하도록 하는 공격입니다. 이 때 template injection이 발생하는 위치가 client-side인 경우 CSTI라고 부릅니다. CSTI 가 발생되기 위해서는 템플릿 엔진이 존재해야 합니다. 템플릿 엔진으로는 VueJS, AngularJS, React이 존재합니다.CSTI가 존재하는지 확인하기 위해서는 산순연산자를 넣어보는 것도 방법이다 {{ 1+1 }} 를 넣었을 때 2가 나온다면 csti 취약점이 존재한다고 판단할 수 있다. JS 코드는 생성자에 접근하여 코드를 실행 시킬 수 있다. VueJS의 경우{{_Vue.h.constr..
2024.09.23