해킹 6

Web Shell CTF #3 풀이

이번에는 WebShell #3 문제를 풀어보겠습니다. 링크의 lfi_1라는 텍스트를 보니 LFI 취약점을 이용하는 문제인 것 같습니다. flag.txt 의 파일 내용을 읽어내야 하는 문제입니다. 회원가입을 진행해주고 로그인을 합니다. 기존의 문제랑 달리 배치가 모양새를 띄고 있네요 ㅋㅋ 인사말 페이지에 취약한 파라미터가 있을 확률이 높을 것 같습니다. 게시판에 들어가 제목과 간단한 내용을 작성하고 간단한 이미지 파일을 업로드해서 패킷을 어떻게 주고받는지 살펴보겠습니다. Intercept 를 on 해줍니다. 대략 이런 패킷들이 주고받아지고 있습니다. 이상한 건 intercept 를 on 하고 Download를 눌렀는데도 다운로드가 받아졌다는 것입니다. 그래서 파일의 저장 위치를 알아내기 위해 개발자 도구를..

[12주차] 게시판 구현 #8 - 게시판 날짜 지정 검색 구현

이번에는 게시판에 날짜를 지정해서 검색하는 기능을 구현해보겠습니다. 다음 코드를 form 태그 안 쪽으로 넣어준다. noticeboard.php 이렇게 되면 예쁘게 input 태그가 생겼습니다. GET 파라미터로 첫 번째 INPUT 값에서 pre_date를 받고 이를 시작일로 인식하게 합니다. 두 번째 INPUT 값에서 end_date를 받고 이를 종료일로 인식하게 합니다. 그리고 페이징 구현 부분에서 전달되는 파라미터가 있는 모든 url코드에 pre_date와 end_date를 추가해줍니다. 각 URL마다 변형할 것 없이 똑같이 해주면 됩니다. 이렇게 파라미터가 전해지는 URL에 모두 pre_date와 end_date 파라미터 추가가 완료되었습니다. 그런데 내가 만든 웹사이트에서는 게시판 DB에 작성날..

개발/웹 개발 2023.06.09

XSS 대응 방안 - htmlspecialchars 함수

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

손 쉽게 웹페이지 꾸미는 법 #1 - Bootstrap 적용하는 법, 버튼 디자인

웹 페이지를 HTML로 실컷 만들어놓으면 기능은 문제가 없을지 몰라도 하나의 산이 더 존재한다. 바로 css로 꾸미기..... 아니 꾸미는 거 젬병인데 컴퓨터에서도 꾸며야한다고? 근데 css 안쓰기에는 기본 html 골격 자체가 너무 날것이다 이런 개발자들에게도 희망은 있다. 바로 BootStrap 이라는 사이트인데, 구글에 검색해서 쉽게 접속할 수 있다. getbootstrap.com 이라는 곳 누르면 접속이 된다. https://getbootstrap.com/ Bootstrap Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and com..

개발/웹 개발 2023.04.29

성공적인 SQL Injection을 위한 문법 - 문자열함수

SQL Injection 공격시에 문자열 함수는 아주 유용하게 사용될 수 있다 MySQL은 총 3가지의 문자열 함수를 사용할 수 있는데, 아래 함수와 같다. substring substr mid 사용법은 함수 (문자열, 시작위치, 길이) ex) substring('test', 3, 1 ) ; substr ('test' , 3, 2) ; mid('test',3, 2 ) ; 이런식으로 쓸 수 있음 다른 데이터베이스 종류에 따른 문자열 함수 문자, 아스키 코드 변환 함수 사용법 select ascii('a'); 이렇게 입력하면 알파벳 a 에대한 아스키 코드 값을 알려준다 select ascii(substring('test',2,1)); 로 substring과 결합해서 사용도 가능하다 select concat(..

Study/SQL 2023.04.15