전체 글 49

XML/Xpath injection - Search

밑에 박스에서 장르를 고르면 URl의 genre가 변하면서 해당 장르의 영화 목록들이 나오는 구조 취약점 확인을 위해 ' ' 혹은 " "을  주입해본다.   취약점이 존재하는 것 같다 아마 추측해보면 $result = $xml->xpath("/heroes/hero[contains(genre, '$genre')]") 이런식으로 코드가 구성 되있을건데 ') or 1=1][('a 를 입력해보면   이렇게 장르 상관없이 모든 영화들이 출력이되는데 어떻게 작용이 되냐면실제 쿼리 - xpath("//hero[contains(genre, '$genre')]/movie")] 실제 쿼리가 이렇게 되어있는데 모든 hero 태그안에 genre 값이 $genre(변수 값)인 태그를 찾고 그 태그의 movie 태그를 출력한다...

모의해킹 2025.02.23

XML/XPath Injection (Login Form)

XML 이란 ? Extensible Markup Language 로 데이터를 저장하고 전송하기 위한 마크업 언어이다.HTML 과 비슷하게 태그를 사용하지만 XML 은 데이터를 표현하는 데 초점을 맞추고 있고 사용자가 원하는 태그를 직접 정의 할 수 있다. XML은 사용자가 직접 태그를 정의할 수 있어 다양한 데이터를 표현할 수 있다.EX) 김완섭 이런식으로 데이터를 구분한다. XPath : XML 문서 내에서 특정 요소(노드)를 찾기 위한 경로 언어 특정 태그를 선택(찾기)하기 위한 언어   [login='" . $login . "' and password='" . $password . "']  이런식으로 ID와 비밀번호를 한번에 받고 두 값이 모두 참이여야 하는 방식 [login='" . $login ..

모의해킹 2025.02.20

SQL Injection - Blind - Time-Based

이전 글과 같은 blind sql 방식이다. 안의 박스에 내용을 입력하면 영화가 있는지 없는지를 e-mail로 전송해 주어서 바로 내가 입력한 값이 참인지 거짓인지 구분할 수 없다. 따라서 sleep()이라는 함수를 사용할 것인데 sleep() 함수는 ()안에 들어간 초만큼 출력 결과가 지연된다. 'or 1=1 and sleep(1)# 처럼앞 부분이 참 이이면 sleep 함수가 실행되어서 이메일 전송이 살짝 지연이 되고 'or 1=0 and sleep(1)# 처럼뒷 부분이 거짓이면 sleep함수는 실행 되지 않으므로 지연 없이 바로 출력값이 나오게 될 것이다.  이 방식으로 참과 거짓을 구분하여 blind 인젝션 방식을 사용한다 ' or 1=1 and length(database())=5 and slee..

모의해킹 2025.02.13

페이로드

보통 it 쪽에서 페이로드란 전송되는 데이터를 페이로드라고 부르고보안 쪽에서 페이로드도 전송되는 데이터는 데이터인데 원래의 의도와 다르게 쿼리의 구조나 논리를 변경하는 실질적인 악의 적인 코드나 데이터를 페이로드라고 한다.  "페이로드(payload)"란, 공격자가 SQL Injection을 시도할 때 입력하는 악의적인 SQL 코드나 데이터를 의미해. 즉, 웹 애플리케이션의 입력창에 넣는 문자열 그 자체인데, 이 문자열이 원래 의도한 데이터가 아니라 쿼리의 논리나 구조를 변경하기 위해 삽입되는 코드를 말해. **페이로드(Payload)**는 공격자가 목표 시스템을 침해하거나 악성 코드를 실행하기 위해 사용하는 코드 또는 데이터의 조각을 의미해. 쉽게 말해서, 페이로드는 공격을 수행하는 "실제 공격 내용"..

모의해킹 2025.02.12

SQL injection - blind (Boolean-Based)

Blind SQL injection : 쿼리의 결과를 참 or 거짓으로 출력하는 페이지에서 데이터베이스의 내용을 참 or 거짓으로 추측하는 공격 기법그림처럼 DB에 해당 영화가 있으면(참) 존재한다(1)라고 출력되고그 외 내용을 검색하면(거짓이면) 존재하지 않는다(0)라고 출력된다   ' or 1=1 을 입력하니(무조건 참이니) 영화가 존재한다고 출력   @@@@@@@@@ 모든 SQL에 해당하는 내용인데 갑자기 헷갈려서 다시정리@@@@@@@@@@@@@@@@@ 사이트의 구성방식을 생각해보면 SELECT * FROM movies WHERE title = '사용자입력값' 이런식으로 값을 받아서 나올 것 이다.이때 1) ' or 1=1 and length(database())=1# 를 입력할경우 SELECT *..

모의해킹 2025.02.12

XSS - Stored (Blog)

XSS(Cross Site Script) - Stored (Blog) 이 취약점이 발견 되었을 때 처음에는 한 페이지에서 다른 페이지에게 악의적인 요청을 보내는 방식인 Cross site와 관련되어 있는 줄 알고 이렇게 이름이 붙혀졌지만  XSS는 사이트 간 요청이 아니라, 웹사이트에서 악성 스크립트를 실행하는 공격이다. 그래서 CSS 라고 불려야하는데 html의 CSS랑 이름이 겹쳐서 C가 X로 변경되었다고 한다. 보통 XSS 공격의 유형에는 Reflected(반사) 기법, Stored(저장) 기법이 있는데 Stored는 댓글이나 게시글 형식으로 스크립트를 저장? 게시? 해두고 다른 사용자들이 이 필터링 되지 않은 댓글이나 게시글을 접하면 그 스크립트가 실행되어서 악의적인 코드가 실행되는 방법이다.  ..

모의해킹 2025.02.12

SQL Injection

SQL InjectionSQL 인젝션이란 인젝션 공격중에 SQL DB 사용중에 SQL쿼리를 오염시켜 데이터베이스와 상호 작용할 수 있는 공격 방법이다. 이 공격으로 DB에서 민감한 정보를 수집하거나 수정, 삭제 까지 가능할 수 있다.   SQL Injection (GET/Search)search 를 누르면 DB에있는 영화 정보들이 나타난다. 아마 입력창에 원하는 영화를 입력하면 SELECT * 테이블명 WHERE 컬럼명 LIKE '%입력한내용%'; 이런 구조로 작동 할 것이다 그러면  ' 혹은 "를 입력해보자     작은 따옴표를 입력했을때 SQL 문법오류가 나오는 것을 확인할 수 있다.  SELECT * 테이블명 WHERE 컬럼명 LIKE '%입력한내용%'; 형식에 대입해보면 SELECT * 테이블명 ..

모의해킹 2025.01.24

Server-Side Includes (SSI) Injection

Server-Side Includes (SSI) InjectionSSI 란 웹서버에서 HTML 파일 내에 동적 콘텐츠 를 삽입하는 기능으로 보통 서버가 HTMl 문서를 처리할 때 서버 측에서특정 명령 이나 파일을 실행하여 HTML 페이지에 동적 콘텐츠를 포함시키는 방식이다 . 주로 확장자명이 .shtml인 파일에서 사용된다. 여기서 동적 콘텐츠란 HTML 내에 실시간 시계, 방문자수 등 값이 고정적이지 않고 계속 변하는 동적인 값을 나타내는 것을 동적 콘텐츠라고 한다. SSI 인젝션이란 이러한 SSI 코드가 HTML 페이지를 구성하는 과정에서 발생하는 취약점이다.  웹이 사용자로부터 입력받은 데이터를 직접 SSI 명령어로 할 경우 혹은 SSI 처리가 제대로 제한되지 않은  경우에 취약점이 존재할 수 있다..

모의해킹 2025.01.21

OS Command Injection

글쓰기에 앞서 이 블로그는 개인이 공부한 것을 기록해 놓는 용으로 틀린부분이나 잘못된 표현이 있을 수 있습니다.문제가 틀린 부분을 발견 하면 댓글 부탁드립니다.OS Command InjectionLookup을 클릭하면 입력 창에 적힌 주소의 ip정보가 출력되는것 같다.   서버에 들어가서 내용을 확인해 보면위와같은 형식으로 작동한다  $_POST["target"] target 이라는 변수를 POST 메소드로 받고isset(???) = 안에 들어가는 파라미터(변수)의 값이 null 값이면 false 값이 있으면 true로 반환한다shell_exec(" ???") php 파일에서 터미널 명령어를 실행하는 명령어ex) shell_exec(" nslookup") == nslookup 명령어 실행    nsloo..

모의해킹 2025.01.21