전체 글 249

XSS CTF 정리 3번 문제

이번엔 XSS CTF 3번 문제를 풀어보겠습니다. 목표는 alert를 띄울 수 있는 Reflected XSS 취약점을 찾는 것입니다. 처음 로그인 창이 뜨는 것은 2번 문제와 같습니다. 아마 계정이 연동될테니 그대로 로그인 하겠습니다. 예상대로 로그인 되었습니다. 마이페이지를 들어가 보겠습니다. Burp Suite로 어떤 파라미터가 들어있는지 분석해봅니다. 이 페이지는 user라는 파라미터를 GET 방식으로 보내고 있는데, 저 인코딩된 문자를 디코딩해보면 내 이름이 나오는 것을 알 수 있습니다. 검색 기능에 hi를 넣고 user 파라미터에 hi로 바꿔 send를 눌렀더니 match가 되는 것을 확인할 수 있습니다. 실제 페이지에서 테스트를 해봐도 placeholder의 값이 잘 적용됩니다. 럭키입니다. ..

XSS CTF 정리 2번 문제

XSS CTF 2번째 문제를 풀어보겠습니다. 링크로 들어가면 로그인 버튼과 문의 게시판 버튼이 보입니다. 로그인 창은 간단히 이메일과 비밀번호 입력란으로 구성되어있습니다. 1번에서 회원가입을 해놔서 다시 해야하려나? 했는데 제 아이디가 이미 가입되어있다고 뜹니다. 3번과 7번도 그대로 이용하면 되는 것 같습니다. 이 창은 로그인 안 한 상태로 문의 게시판에 들어갔을 때 나온 창입니다. 제목을 쓰고 내용을 입력할 수 있게 되어있습니다. 일단 로그인을 해보겠습니다. 마이페이지를 누르면 나오는 창입니다. 공지 사항을 누르면 나오는 페이지입니다. Burp Suite로 히스토리를 살펴보면서 이곳저곳 탐험해줍니다. 회원 정보 수정에서 GET방식으로 user라는 파라미터가 전송되고 있는걸 볼 수 있습니다. Repea..

[7주차] 해킹 스터디 정리 - Reflected XSS, DOM XSS

cookie or board=test 5 ) 세션 탈취 코드를 파라미터에 삽입한다. board=test 6 ) 이 코드 URL을 사회공학기법을 이용해 사용자들에게 누르게 하면 사용자의 세션을 탈취할 수 있다. ex ) 연봉 재협상, 긴급공지 등 궁금증을 자극해 눌러볼수 밖에 없게 만듬 -- DOM Based XSS DOM (Document object Model) : 객체를 제어하는 과정에서 발생하는 XSS 공격. DOM은 자바스크립트에서 접근할 수 있도록 각종 API를 제공해 개발자에게 굉장히 편리한 기능인데, 이를 잘못 사용할 경우 XSS나 개발자가 의도한 동작과 다르게 동작시킬 수 있는 취약점이 발생할 수 있다. 이 공격도 서버에 저장 하지 않고 공격하는 기법이면서 서버로 요청을 보내지 않아도 스크..

해킹/Web Hacking 2023.05.13

SQL 뷰 (VIEW) 정리

오늘은 테이블 말고 뷰 (VIEW)라는 주제에 대해서 정리해보자. 뷰는 가상의 테이블이다. 또는 DB의 SELECT 문을 저장한 OBJECT라고 할 수 있다. 말 그대로 데이터는 없고, SQL만 저장되어있는 OBJECT를 말한다. 뷰는 기본 테이블과 같이 행과 열로 구성되지만, 다른 테이블에 있는 데이터를 보여줄 뿐이며, 실제 테이블과 달리 데이터 자체를 포함하고 있는 것은 아니다. 뷰를 사용하면 여러 테이블이나 뷰를 하나의 테이블인 것 처럼 볼 수 있다. VIEW를 SELECT 하게 되면 VIEW가 가지고 있는 SQL문이 실행이 되는 것과 같다. 데이터가 실제로 없기 때문에 ORDER BY 구문은 뷰의 정의에서 무의미하다. view를 사용하는 이유 테이블을 쓰면 되는데 왜 굳이 view라는 object..

카테고리 없음 2023.05.12

XSS CTF 정리 7번 문제

이번에는 XSS CTF 7번 문제를 풀어보겠습니다. 이 페이지도 똑같이 계정이 적용될 거라 예상해 로그인을 했습니다. 2번문제에서 게시판 검색창에서 취약점 발견 3번문제에서 마이페이지 username에서 취약점이 발견되었으므로 이번엔 글쓰기 버튼이지 않을까 예상해봅니다. 제목과 내용을 입력할 수 있는 창입니다. Burp Suite로 한번 분석해봅니다. 이런식으로 특수문자가 어떻게 출력되는지 보기 위해 입력하고 글 작성을 눌러줍니다. notice_write.php 에서 글을 쓰면 notice_write_process.php로 넘어가서 검증하는 것을 볼 수 있습니다. 작성된 글을 보면 그대로 출력되고 있는데, 그런데 수정을 눌렀을 때, notice_update.php로 넘어가고 내용란에는 특수문자가 그대로 ..

WebSocket - 간단한 설치 및 세팅법

이 코드는 https://www.youtube.com/watch?v=yXPCg5eupGM 이 강의를 참고하여 작성되었습니다. 차후 채팅서비스 구현 시 참조 사이트 https://cocoder16.tistory.com/62 90년대까지는 HTTP 요청만으로 모든 웹 서비스를 만들 수 있었다. 하지만 요즘의 웹 서비스는 꽤나 복잡하다. 그 중 하나가 웹소켓이다. 기존의 HTTP 통신은 서버가 먼저 클라이언트에게 전송을 할 수가 없었다. 일방적인 관계였던 거다. 하지만 그러기엔 복잡한 웹 서비스를 구현할 수 없었기 때문에 다른 통신들이 생겨났다. HTTP 통신의 단점을 보완한 예시로 대표적인 2가지를 꼽을 수가 있다. 1. Server-Sent Event > HTTP 통신을 끊기지 않고 유지할 수 있음 2. ..

해킹 라이브 정리 - 다크웹, 딥웹, 프록시 서버

Tor Network > The Onion Routing > 익명. 암호화 통신이 가능 > 미국 정부, 군대 퍼블릭 웹사이트에 접속하려고 하면 Tor 브라우저가 각 노드를 돌면서 key를 받아옴 그럼 보낼 데이터를 Exit Relay부터 역순으로 차근차근 암호화한다 그리고 각 노드들의 서버는 세계 곳곳에 있음 그러다보니 엄청 느림 ** 토르 네트워크를 쓰는 이유 (1) IP 우회 서버가 여러 곳에 있기 때문에 내 IP주소가 바뀜 그래서 국내 IP가 막힌 여러 곳에 접속 가능 ->IP 주소 세탁 (2) 언론, 표현의 자유 > 검열을 피하기 위해서 (3) 자신을 숨기기 위해, 익명성 > 정부의 검열, 모니터링 (4) 범죄를 일으키기 위해서 VPN : 가상 사설망 다크웹 / 딥웹 딥웹 : 특정 검색 엔진을 써..

XSS 공격 정리 (Cross-Site Scripting)

XSS는 웹 상에서 가장 기초적인 공격 방법이다. 왜냐하면 서버가 아닌 사용자들을 공격하는 기법이기 때문이다. 사이트에 접속한 사용자는 삽입된 악성 스크립트가 실행되고 쿠키나 세션같은 개인정보가 탈취당할 수 있다. 여러 사용자가 접근 가능한 게시판이나 메일과 같은 매체를 통해 전파되기도 한다고 한다. 또, {{{#!html HTML}}} 을 이용해서 HTML 태그를 사용할 수 있다고 한다. 원치 않는 페이지로 리다이렉트 악성코드 감염 개인정보 탈취 javascript 기능이 먹히는 순간 javascript로 구현가능한 모든 것이 가능해진다. 여기선 크게 3가지 XSS를 정리해볼 것이다. Stored XSS Reflected XSS DOM XSS 1. Stored XSS 사용자가 게시판에 글을 작성하면 그..

XSS 대응 방안 - htmlspecialchars 함수

저번에 풀었던 XSS CTF 문제에서 제목란에 script 태그를 넣으면 먹히고 내용에 태그를 넣으면 먹히지 않았었다. 대응 방법도 연구할 겸 이유가 뭘까? 분석해보았다. 제목은 먹힌다는 걸 알았으니, 일반 텍스트를 넣고 내용에 간단한 경고창을 띄우는 script 태그를 입력했다. 작성 성공 게시판에 잘 등록이 되었다. 이제 이걸 클릭하면?? ...아무 변화가 없이 script 태그가 그냥 글자처럼 출력이 되었다. F12를 눌러 개발자 도구를 살펴봐도 평범하게 적혀있다. 라는 게 찍히는 걸 보면 strip_tags() 함수를 쓴 것도 아닌 것 같다. strip_tags()는 모든 태그를 없애는 함수이다. script 라는 태그가 필터링 되어있는 것은 아닐까? 해서 javaScript는 대소문자를 상관하지..