본문 바로가기

Web/Hacking7

Union SQL Injection 1. 취약점 개요 1.1. 정의 SQL Injection에는 여러 종류가 있다. Non Blind Sql Injection, Blind Sql Injection, Union Sql Injection 등... 이번 포스팅은 Union Sql Injection에 대한 내용이다. SQL Injection은 웹 어플리케이션에서 많이 발생하는 보안 취약점 중 하나다. Union SQLi는 다수의 SELECT 문을 하나의 결과로 합쳐서 출력하는 방법이다. 이를 사용하면 데이터베이스의 테이블을 병합할 수 있다. 1.2. 예시 다음과 같은 쿼리가 있다고 가정한다. SELECT id, password FROM user WHERE idx=1 위 쿼리를 Union SQL로 변환할 경우, 다음과 같이 작성할 수 있다. SEL.. 2023. 3. 1.
불충분한 인가 (IN) 목차 1. 취약점 개요 2. 점검 방법 3. 보안 방안 1. 취약점 개요 1.1. 정의 페이지 접근을 위한 인증기능이 구현되지 않을 경우, 해커나 인가되지 않는 사용자가 페이지에 접근 및 중요 정보의 변조를 할 수 있는 취약점이다. 1.2. 보안 위협 접근제어가 필요한 중요 페이지의 통제수단이 미흡한 경우, 비인가자가 URL 파라미터 값 변경 등의 방법으로 중요 페이지에 접근하여 민감한 정보 열람 및 변조 가능하다. 2. 점검 방법 - 마이페이지 등 본인만 접근 가능한 페이지에서 다른 사용자와의 구분을 일련번호 등의 단순한 값으로 하는지 확인한다. ex) https://example.com/mypage.html?post=111 (내 게시글) - 일련번호가 들어가는 파라미터의 값을 변조하여 다른 사용자의 .. 2022. 12. 11.
파일 업로드 취약점 | 악성코드 배포 | 보안 방법 파일 업로드(File Upload) 취약점이란? 파일 업로드 기능이 존재하는 웹 사이트의 확장자 필터링이 미흡할 경우, 공격자가 악성 파일을 업로드하여 시스템을 장악할 수 있는 취약점이다. 악성 스크립트가 업로드 된 후, 서버 상에서 스크립트를 실행하여 쉘을 획득하는 등의 행위로 시스템 권한을 획득하거나 서버를 변조시키는 등의 방법으로 웹 서버를 장악한다. 이 취약점으로 접근 권한 상승, 정보 유출, 악성코드 배포 등의 공격이 발생할 수 있다. 쉘: 사용자에게 받은 지시를 하드웨어 지식으로 변경하여 운영체제의 커널과 유저를 이어 준다. 웹 쉘: 웹 사이트를 통해 쉘을 여는 공격으로, 이 쉘을 통해 서버에 명령어를 수행하는 파일 업로드 취약점으로 많이 사용된다. 웹 서비스 구동 방법 Client : 웹 사.. 2021. 8. 9.
CSRF | XSS와 CSRF 차이점 | 보안 방법 CSRF 란? CSRF는 사이트 간 요청 위조라는 뜻으로, 사용자의 의지와 무관하게 웹 사이트에 요청을 보낼 수 있다. 공격자가 클라이언트에게 form이 담긴 html 코드를 보내면, 클라이언트는 해당 페이지로 연결되어 코드가 실행된다. 해당 form에는 악성 스크립트가 담겨있어, 자동으로 스크립트 값을 넘기게 되어 방문자가 원치 않는 동작을 하게 된다. 실습(burp suite 사용) 1. 기존의 로그인 정보는 아이디가 lyk00331이다. 2. 다음과 같은 코드를 동작시킴으로써, 다른 아이디인 csrf-lyk00331로 로그인할 수 있게 했다. value에는 기존 아이디인 lyk00331의 패스워드를 적어준다. 3. 확인해보면 csrf-lyk00331로 로그인된 것을 알 수 있다. XSS와 CSRF .. 2021. 8. 9.
XSS | 필터링 우회 | 보안 방법 XSS 이란? 웹 사이트 관리자가 아닌 사용자가 웹 페이지에 악성 스크립트를 삽입함으로써 개발자가 고려하지 않은 기능이 작동하여 발생하는 취약점이다. 클라이언트를 대상으로 사용자 세션을 가로채거나, 홈페이지 변조, 악의적인 사이트 이동 등의 공격을 수행할 수 있다. 종류는 Dom Based XSS, Stored XSS, Reflected XSS로 나뉜다. Stored XSS 저장형 XSS이다. 웹 서버에 스크립트를 저장하여 데이터베이스에 기록된다. 공격자가 미리 XSS 공격에 취약한 웹 사이트를 탐색하고 XSS 공격을 위한 스크립트를 포함한 게시글을 업로드함으로써 발생한다. 게시글의 URL을 클라이언트에게 노출하고 클라이언트가 게시글을 확인함으로써 URL에 대한 요청을 서버에 전송하게 된다. 웹 서버에서.. 2021. 8. 9.
Blind SQL Injection Blind SQL Injection을 정리하기 이전에, 알고가면 좋은 개념과 함수에 대해 먼저 정리한다. 이 공격기법은 일반적으로 ' or 1=1-- 와 같은 공격패턴을 사용하는 인증우회(Auth Bypass)기법의 상위 단계라고 할 수 있다. 1) substr substr 함수는 문자열과 자를 범위를 파라미터로 받아서 해당 부분의 문자열을 리턴해준다. 예를 들어, USERS 테이블에 id와 pw컬럼이 존재하고 id는 jungwoo, pw는 nct127 인 행이 존재할 때 substr((SELECT pw FROM USERS WHERE id='jungwoo'),2,2) 쿼리문을 DB에 보내게 되면 id가 jungwoo인 유저의 pw 컬럼을 조회하라는 명령으로 nct127이 뽑히게 된다. 그 후 ‘nct12.. 2020. 12. 30.
SQL Injection SQL Injection 공격이란? : 파라미터에 구문을 넣어 쿼리가 동작되는 공격기법 파라미터란? : URL에서 동적으로 결과를 생성하는 어플리케이션에 전달하는 값 웹 어플리케이션의 뒷단에 있는 DB에 질의(쿼리)하는 과정 사이에 일반적인 값 외에 내용을 변조하는 악의적인 의도를 갖는 구문을 함께 삽입하여 공격자가 원하는 SQL 쿼리문을 실행한다. 이런 과정을 통해 불법 로그인을 하거나, DB 데이터를 열람하거나, 시스템 명령을 하는 등등의 비정상적인 DB 접근을 시도하는 것이고, 이것이 대표적인 웹 해킹 기법인 SQL Injection이다. SQL Injection 로그인 인증 우회 정상적인 로그인 인증 과정 클라이언트가 웹 서버에게 다음과 같은 로그인 정보를 제공한다. 서버는 해당 정보가 DB에 존.. 2020. 7. 14.