정적 컨텐츠를 통한 웹 개발 : 파일을 그대로 전달하여 웹 개발 주소에 다음과 같이 치면 스프링 부트가 hello-static과 관련한 컨트롤러가 있는지 확인하고, 없으면 static 폴더에서 hello-static.html을 가져와 출력한다. MVC와 템플릿 엔진으로 웹 개발 : JSP, PHP MVC (Model, View, Controller) @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model){ model.addAttribute("name", name); return "hello-template"; 다음 코드를 helloController.java에 붙여준다. hello, e..
https://inf.run/iP76 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Java Spring MVC Spring Boot 온라인 강의 백엔드 개발자를 위한 스프링 입문 강의로, 실제 동작하는 간단한 웹앱을 빠르게 개발해봅니다. (Spring Boot, Web MVC, AOP, Back-end) inf.run 인트아이(학교 코딩 소모임)에서 진행하는 토이 프로젝트에 참여하기 위해 인프런 스프링 무료 강좌를 듣게 되었다. Java11과 intelliJ IDEA (Java 개발툴 IDE) ..
5주차 과제 마지막 문제이다! https://webhacking.kr/challenge/bonus-3/ Challenge 23 Your mission is to inject webhacking.kr 스크립트를 실행시키는 공격을 하라고 해서 일단 input 란에 저렇게 넣어봤다. no hack이 뜨는 것을 보니 단순 스크립트 코드에 대한 보안이 깔려 있는 것 같다. 소스코드를 분석해보니 submit 했을 때 index.php가 실행되고, 이 php문 안의 input name = "code"이다. index.php를 봐야 get에 뭘 넣어야할지 알 것같은데 index.php 코드가 주어져있지 않다. 어떻게 해야하지...? form태그를 이렇게 바꿔서 제출을 누르니 alert(1)이 실행되긴 하였다. ..
https://xss-game.appspot.com/ XSS game level 1 화면에 JS alert 창을 띄우는 문제이다. 검색창에 script 태그를 넣은 alert문을 넣어주면 해결. level2 alert 다음 코드를 삽입하여 alert를 눌렀을 때 경고창이 뜨도록 하였다. 반면에 script태그를 바로 삽입하였을 때는 글이 사라지고 alert창이 생기지 않았는데, 이 사이트에서는 script태그를 이용한 공격을 필터링 하고 있을 가능성이 있다. (정확한 이유를 다음 코드에서 찾아보자!) Chatter from across the Web. class MainPage(webapp.RequestHandler): def render_template(self, filename, conte..
이번 5주차 웹 해킹 스터디에서는 xss 관련 강의를 듣고 문제를 푸는 과제가 나왔다. 1. https://youtu.be/DoN7bkdQBXU xss공격은 특정한 자바스크립트를 취약점을 이용해 웹 사이트 내의 정보를 빼오는 작업이다. 이 강의에서는 xss보안처리가 되어있지 않은 사이트에서 게시글에 스크립트 문장을 넣어 실행하는 stored xss 공격의 예시들을 보여주고 있다. 2. https://dreamhack.io/learn/7#8 로그인 | Dreamhack 로그인 자동 로그인 비밀번호 찾기 로그인 드림핵이 처음이신가요? 회원가입 dreamhack.io Cross Site Scripting 에 대한 드림핵(dreamhack)의 강의. ● XSS(Cross Site Scripting)이란?..
* 첫번째 모듈 - I-Class데이터를 불러와 앱에서 게시판 카테고리 구현 : I-Class 에서 개발자도구로 내부 데이터에 접근한다. (입력) 과목 이름과 담당 교수님의 성함, 수강인원, 학수번호와 분반, 단원명 데이터를 Python을 이용해 가져온다. 그리고 이 python 변수를 sqlite를 사용해 데이터베이스에 INSERT한다. (처리) 데이터베이스에서 관련 테이블을 SELECT한 뒤 목록에 출력한다. (출력) 인하대 I-Class의 크롬 개발자도구를 분석해보면 자바스크립트 코드에서 Get한 noticeboardid가 사용자의 id라는 것을 알 수 있다. HTML 코드를 불러와 데이터를 얻기 위해 selenium이라는 모듈을 cmd창에서 설치한다. 1. 수강과목, 분반 정보, 학..
1. Webhacking.kr old 6 https://webhacking.kr/challenge/web-06/?view_source=1 php online compiler을 사용하여 워 게임 문제를 풀어보자. 먼저 코드는 이러하다. base64_encode 는 2진 데이터를 아스키코드 형태로 변경시켜준다. 예제 ) $str = "base64_encode"; echo 'base64_encode($str) : '.base64_encode($str).' '; 출력 : base64_encode($str) : YmFzZTY0X2VuY29kZQ== 코드에서 나오는 str_replace 함수는 문자열을 다른 문자열로 교체할 때 쓰이는 함수이다. str_replace ( 치환될 문자열, 치환할 문자열, 문..
저번 포스팅에서는 버퍼 오버플로우(BOF)에 대해 배웠다. 이번엔 The Lord of BOF라는 워게임을 통해 관리자의 권한을 획득하는 문제를 풀어보겠다. 문제 이름은 The Lord of BOF. gate에서 gremlin으로 통과하는 것이 목표이다. BOF는 버퍼 오버플로우, 프로그래머가 지정한 버퍼의 크기가 넘쳐서 취약점이 발생하는 것이다. gets()나 strcpy()는 경계검사가 없어 이런 취약점이 발생한다. 밑은 데이터 저장과 관련된 용어이다. - ESP(Extended Stak Pointer) : 현재 스택의 가장 위에 들어 있는 데이터를 가리키고 있는 포인터 - EBP(Extended Base Pointer) : 현재 스택에 가장 바닥을 가리키는 포인터 - payload : 전..