목록SQL Injection (9)
겉바속촉
이번에는 배워도 배워도 어려운 SQL Injection을 실습하려고 합니다. python 코드를 이용해서 해보도록 할게요!! @Attacker 가상머신 1. 우선 gedit이 없기 때문에 설치해주도록 하겠습니다. ┌──(kali㉿kali)-[~] └─$ sudo apt-get update ┌──(kali㉿kali)-[~] └─$ sudo apt-get install gedit 2. 파이썬파일을 사용할 것이기 때문에 또 설치해줄게요. ┌──(kali㉿kali)-[~] └─$ sudo apt-get install python3-pymysql 3. search.py 파일을 작성해보도록 할게요. ┌──(kali㉿kali)-[~] └─$ sudo gedit search.py search.py를 다음과 같이 작성했..
파일 다운로드 취약점 공격 1. 개념 직접 객체 참조를 하면 개발자가 파일, 디렉터리, 데이터베이스 기록 혹은 키 같은 내부 구현 객체에 대한 참조를 URL 또는 매개변수로 노출 시킬 때 발생합니다. 공격자는 이러한 참조를 조작해서 승인없이 다른 객체에 접근하고 다운로드를 통해 정보를 획득할 수 있는 것입니다. 다운로드 경로 이외의 디렉터리 접근시도가 가능합니다 --> 웹 애플리케이션 소스코드, 비공개 자료..... 보통 호출하는 파일들을 알아볼까요?~ 1. index.html 2. web.xml 이 두가지입니다. index.html을 호출하는 이유는 웹 루트 경로가 따로 설정되어있는 데요. root에 꼭 존재하는 파일이 바로 index.html입니다. ../../../../index.html 이런 식으..
SQL Injection을 알려면 1. 데이터 베이스 기본 구조 2. SQL 문법 이 두가지를 반드시 알아야합니다:) 우선 DBMS를 보면 여러가지 DB들이 함께 있습니다. 그럼 우리가 뽑아올 때 일단 DB명을 가지고 와야합니다. 그 DB 내부에는 또 여러개의 테이블들이 존재합니다. 또 TABLE 내부에는 칼럼, 레코드 값들이 들어있습니다. 우리가 이제 내부 값들을 가져오려면 1. 데이터베이스 -> 2. 테이블 -> 3. dump로 내부 값 가져오기 순서로 해주는 것입니다. 그래서 DBMS 관리명령은 --> DDL, DCL, DML 들을 사용해서 명령을 줄 수 있쥬!! (으... 정보처리기사 준비하면 많이 나오는 것들....) 하지만 데이터베이스의 특정 값만 가져오는 것이기 때문에 DDL, DCL, DM..
sqlmap을 먼저 설치해주세요. http://sqlmap.org/ sqlmap: automatic SQL injection and database takeover tool Introduction sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of database servers. It comes with a powerful detection engine, many niche features for the ultimate p sqlmap.org 위 사이트 접속해서 다운 받으시면 됩니다:) zip파일 설치..
지난번에 SQL Injection에 대한 개념을 익혔는데요. 이제 DVWA 에서 연습해보도록 할게요!! 2021/01/29 - [IT 일기 (상반기)/네트워크 및 시스템 보안] - [보안] SQL Injection 개념 [보안] SQL Injection 개념 SQL Injection 웹 서버와 db 서버가 연동되는 웹 서비스 중 사용자의 입력을 받는 화면이 존재 입력받는 문자열에 별도의 처리 없이 db 조회를 위한 sql구문이 사용될 경우 정상적인 sql 구문 인자 값의 2-juhyun-2.tistory.com SQL Injection 연습 Metasploitable 리눅스 켜서 ifconfig명령으로 ip주소 확인해주기 웹 브라우저에서 확인했던 ip주소로 접속!! DVWA 들어가서 admin, pass..
SQL Injection 웹 서버와 db 서버가 연동되는 웹 서비스 중 사용자의 입력을 받는 화면이 존재 입력받는 문자열에 별도의 처리 없이 db 조회를 위한 sql구문이 사용될 경우 정상적인 sql 구문 인자 값의 변조를 통해 데이터 베이스 접근 및 임의의 sql 쿼리 문을 실행 할 수 있음 1. 위험성 가. 사용자 인증을 우회, 정상적인 사용자의 인증권한 획득 가능. 보통 개발할 때 관리자 즉 admin을 많이 넣어주기 때문에. 나. 데이터베이스 획득 의도적으로 DB 에러메시지 유발, DB 구조파악 가능 다. 관리자 권한 명령 실행 SQL Query가 내장 프로시저를 이용항 시스템 명령 실행이 가능하다면 --> XPcmd 관리자 권한 명령을 실행할 수 있는 권한 획득 가능 --> 실질적인 시스템 장악..
지난번에 봤던 Blind Numeric SQL Injection에 이어서 2021/01/21 - [IT 일기 (상반기)/네트워크 및 시스템 보안] - [보안] Blind Numeric SQL Injection [보안] Blind Numeric SQL Injection Blind Numeric SQL Injection 계좌 번호의 유효성을 체크해 주는 서비스 문제 ) The goal is to find the value of the field pin in table pins for the row with the cc_number of 1111222233334444. The fi.. 2-juhyun-2.tistory.com Blind String SQL Injection 에 대해서 보도록 하겠습니다. 문제)..
SQL Injection 개념 외부 입력값을 검증하지 않고 SQL문을 생성 및 실행에 사용하는 경우에 발생 쿼리의 원래 의미와 형태가 변형되어 실행 예상 피해 권한 밖 데이터에 대한 접근이 가능, 인증 우회, DB서버 또는 서버군의 제어권을 탈취하는 등의 피해가 발생 방어 기법 입력값 검증 --> SQL문을 조작할 수 있는 문자열 포함 여부를 확인 정적 쿼리를 사용 --> 항상 일정한 형태의 쿼리가 실행되는 것을 보장 DB 사용자에게 최소 권한을 부여 --> 애플리케이션에서 사용하는 DB 사용자의 권한을 필요한 만큼만 부여 에러에 대한 안전한 처리 --> 오류 메시지를 통해서 시스템 내부 정보가 노출되지 않도록 오류 메시지를 처리 입력되는 값의 형태(유형)에 따라 다양한 SQL Injection 유형 s..
OWASP 인젝션(injection) = 삽입 입력 → 처리 → 출력 입력값을 조작해서 처리로 전달 --> 그럼 처리가 잘못 수행되겠죠. 즉, 입력값에 대한 검증을 수행하지 않고 사용하여 처리가 원래 의도와는 다르게 동작하게 됩니다. 이게 바로 인젝션!!!! 확인해볼까요?~~ @Attacker 지난번에 proxy 설정해두었기 때문에 끄고 시작하겠습니다. @Attacker에서 @WindowsXP의 OpenEG로 접속 (http://WINDOWS_XP_IP:8080/openeg) @Attacker에서 @WindowsXP의 OpenEG로 접속 후에 로그인을 해보곘습니다. 사용자 입력이 다음과 같이 되게 해준다면 id: a pw: b 서버로 전달은 다음과 같이 되겠네요 http://windowsxp_ip:808..