[web] WebShell 기초
·
보안/웹·모바일
WebShell 기초 웹쉘이란? 웹 페이지 상에서 원격지 서버의 시스템 명령어 실행을 할 수 있는 어플리케이션이다. 웹쉘의 주요 기능 1) 파일 시스템 조작 디렉터리 탐색, 파일 보기, 파일 생성 및 수정, 파일 삭제, 파일 다운로드 및 업로드 .. 2) 운영체제 명령 실행 웹 서버 권한으로 운영체제 명령 실행 가능 3) DB 연결 및 조작 DBMS에 접속하여 SQL 쿼리로 DB 조작 가능 웹쉘의 종류 - 일반 웹쉘 ex) C99웹쉘 - 한줄 웹쉘 Single-Line 또는 One-Line WebShell을 의미. CFI 스크립트 실행이 가능한 코드 한 줄로만 구현된 웹쉘이다. 파라미터로 전송 ex) 일구화목마, Chopper - 다중분할 웹쉘 Multi Division WebShe 명령 코드는 여러 개..
[web] 웹 모의해킹 도구들
·
보안/웹·모바일
간단하게 웹 모의해킹 공부할 때 칼리리눅스에서 사용할 것들 ZAP (OWASP Zed Attack Proxy) - OWASP 오픈 소스 프로젝트 일환으로 웹 어플리케이션 취약점 스캔 도구 Burp Suite - 웹 페이지의 요청, 응답 과정의 데이터를 변조하거나 조작할 수 있는 도구 Dirbuster - OWASP 오픈 소스 프로젝트 일환으로 웹 서버에 관한 디렉토리, 파일 그리고 무차별 대입공격(Brute Force)를 테스트 하기 위한 도구 SQLMAP - SQLi 공격을 위해 파이썬으로 개발된 오픈소스 침투테스트 도구이며, mysql, postgresql,oracle, mssql등을 지원 Nikto - 오픈소스 기반의 웹 취약점 스캔도구로 약 6700개의 잠재적인 항목을 통해 취약점을 스캔한다
SSRF(Server-Side Request forgery)
·
보안/웹·모바일
CSRF는 클라이언트 사이드임. 공격자가 사용자의 권한으로 악의적인 요청을 하도록 하는 것. ex) 사용자가 게시글 클릭 시 사용자의 패스워드를 '1234'로 변경하는 요청을 하도록 함. SSRF는 서버 사이드. 서버 측에서 요청을 위조하면서 발생한다. 주로 공격의 목표가 파괴보다는.. 정보 수집이다. Example. 내가 A서버의 내부네트워크 내에 있는 다른 서버 B에 접속하려고 하면, 당연히 못함. 그 서버의 내부주소를 알더라도.. URL에 검색하면 아무것도 안뜨지? 그런데 나와 통신하느 서버인 A는 B서버에 접근할 수 있단말이야. 그러니까 A서버를 통해 B서버의 정보를 수집할 수 있다.
파일 다운로드 공격 실습
·
보안/웹·모바일
업로드 기능이 있다면? 당연히 다운로드 기능도 있다. 다운로드 기능이 있다면? 당연히 업로드 기능도 있다. 실습 페이지의 다운로드 페이지는 shop_download.asp이다. strFileName으로 파일이름을 주고, f_path로 upload_file이라는 업로드 파일이 저장되는 경로가 주어진다. ../를 이용해서 상위 디렉토리에 있는 파일을 다운로드 할 수도 있다. 쿠키.asp 받아쳐먹기
파일 업로드 취약점 실습
·
보안/웹·모바일
파일 업로드 취약점 거의 웹쉘을 업로드하는게 목표임. 실습 페이지는 .asp로 작성되어 있다. active server page [실습] webshell.asp를 게시판에 업로드 업로드 하려니까 첨부파일 확장자필터링이 걸려있다. jpg, hwp, pdf, jpeg, txt 만 가능하다고 함. 파일업로드 확장자 우회 방법에 대해서 알아보자. ⓐ 종단 문자 우회 파일명.asp%00.jpg %00은 null byte. 문자열의 끝을 의미 파일명.asp로 업로드된다. ⓑ html encoding 통한 우회 파일명.as%112 %112 = html encoding 으로 p를 의미 ⓒ burpsuite로 Content-type 을 수정해서 포워딩 ⓓ 시그니처 수정 확장자가 아니라 파일 시그니처로 확인하는 경우 시작..
XSS (Cross Site Script) 실습
·
보안/웹·모바일
XSS (Cross Site Script) - OWASP '인젝션' 항목에 포함됨 - Reflected 방식과 Stored 방식으로 나뉜다. 1. Reflected (반사형) 구문을 입력하면 반사하듯이 바로 보여지는 것 (query) 이게 안먹힌다? (query) "> 스크립트로 돌아가는 페이지인가? 생각하고 있으면 시간만 오래걸림. 걍 두개다 해보셈. TIP. 반사형 점검할 때는 후자와 같이 그냥 막아주자. 저장형은 안막아도 ㄱㅊ 그래도 둘다 하는게 점검할 때 마음이 편하다.^^ 아무튼 여러 쿼리를 질의할 수 있음. "> "> ">
Blind SQL Injection 실습
·
보안/웹·모바일
Blind SQL Injection 실습 - DB 에러 페이지가 노출되지 않거나, 취약점 존재를 판단하기 어려운 경우. 방법: 참/거짓 쿼리의 반응이 서로 다름을 확인. 참 쿼리 대상의 반응, 거짓 쿼리의 대상의 반응이 다를 때. EX) Oyesmall 데이터베이스라고 치면.. DB_NAME()의 첫번째 글자가 'a'니? 점검 방법 True query: ' and 1=1 -- False query: ' and 1=2 -- [db_name] - DB 이름 확인(error_based): 'and db_name() > 1 -- - DB 이름 확인(blind_based): db_name()의 첫 글자 (a~z). substring 함수를 이용한다. ※ substring(원하는 문자열, 시작점, 글자수): 문자열..
특수문자 필터링, 정규표현식 for JavaScript
·
보안/웹·모바일
특수문자 필터링 for JavaScript 정규표현식 표현방법 1. 정규 표현식 리터럴 const match = /pattern/flag 2. RegExp 호출 const match = new RegExp(pattern) 검색패턴 [^문자] Not 문자 ^문자열 특정 문자열로 시작 문자열$ 특정 문자열로 끝남 | OR [] 괄호 내 문자열들 중 하나 {} 반복 횟수 () 괄호로 감싼 부분과 일치하는 부분 문자열을 기억. 나중에 불러와서 사용가능. 반복패턴 ? 최대 한번 반복 ( 0 or 1) * 0회 이상 반복 + 1회 이상 반복 . 정확히 1개 문자 매칭 {n} N번 반복 {n,} 최소 n번 반복 {n,m} 최소 n번 최대 m번 반복 확장문자 \s 공백 문자(스페이스,탭, FF, LF) \S 공백이 아..