분류 전체보기 (80) 썸네일형 리스트형 겨울 웹해킹 2주차 Carve party10000번 눌러서 호박을 까야한다. 한 번 클릭할 때 10000이 찍히도록 하니이런게 떴다 코드에 while(counter blind-command들어가면 이런 게 뜬다 원래 있던 GET을 지우고 HTTP옵션을 사용해본다. Allow가 HEAD, GET, OPTIONS라고 뜬다. 저 저중에서 HEAD를 사용할 것 이다. 드림핵 툴에서 bin을 만들고 링크를 사용해 두번째 사진 처럼 만든다. POST는 불가능하기 때문에 HEAD를 사용하는 일종의 우회하는 방식이라고 생각하면 된다. curl -d 옵션을 사용한다. 겨울 C언어 2주차 Branch브랜치(branch)란 공간을 별도로 작업하는 방식을 말한다. 머지(Merge)는 브랜치로 따로 작업하던 공간을 합치는 것이다.기본적으로 branch명은 main을 쓴다. 해당 사진처럼 각각 개리, 빙키가 중간에 branch로 별도의 공간을 사용하도록 해보겠다. 전처럼 git clone으로 다운을 받아온다. README파일을 수정하며 개리 1부터 개리 3까지 add, commit, push를 하며 만들어준다. git branch 이름:이름"으로 만들어진 브랜치를 만들어준다 git checkout 이름:이름으로 이동한다. 해당 사진에서는 Gary라는 브랜치를 만들고, Gary라는 브랜치로 이동하는 것이다. 영상을 따라서 해당화면처럼 브랜치를 2개 더 만들어준다. 개리가 처음에 생성아 안됐기에.. 웹페이지 기획서 조:3조웹페이지 주제: 영화 리뷰제공할 서비스: 회원가입 및 로그인 등 siss웹 프로젝트에 필수적으로 들어가야 할 사항들.추가로 넣을 기능: 단순한 일반 사용자와 운영자 모드를 분리(로그인 할 때 정해진 아이디와 비번을 넣으면 2차 비밀번호를 확인하는 페이지로 이동), 일반 사용자가 삭제한 리뷰는 운영자만이 볼 수 있는 곳으로 이동됨, 운영자는 일반 사용자의 리뷰를 숨김 처리 가능. 해당 사항들은 조원의 역량에 따라 달라질 수 있음작업공간: organization 겨울 C언어 1주차 간단한 실습과 공부 방향깃허브에서 레파지토리를 생성해준다, 그 뒤 create new file로 index.html이라는 파일을 만든 뒤 commit change를 눌러서 다음과 같은 정보를 저장해준다. 다른 사람에게 자신이 만든 github의 페이지를 보여주려고 한다면 Setting->page를 클릭 후 branch부분에서 None을 main으로 바꾼 뒤 save를 눌러준다.이후 만들어진 page를 url부분에 넣으면 다음과 같이 나온다. .수정 수정하려면 키보드에서 .을 누른다. 그럼 이런 창이 뜬다. dev부분에 dev가 아닌 다른 게 있다면 com이 있다면 바꿔준다. com으로 바꾸면 아까의 레파지터리 화면으로 돌아간다. 이와 같이 수정한 뒤 왼쪽의 소스제어를 누르고 칸에 내용을 써준 뒤 체크표.. 겨울 웹해킹 1주차 Server-side Request Forgery(SSRF)웹 서비스는 외부에서 접근할 수 없는 내부망의 기능을 사용할 때가 있다. 내부망의 기능은 백오피스 서비스를 예로 들 수 있다. 웹 서비스는 의심스러운 행위를 탐지하고 실시간으로 대응하기 위해 백오피스의 기능을 실행할 수 있다. 이용자가 입력한 URL에 요청을 보내는 경우 분석아래 코드는 이용자의 입력값이 포함된 URL에 요청을 보내는 예제 코드입니다. 코드를 살펴보면, 두 가지의 엔드포인트가 존재합니다.# pip3 install flask requests # 파이썬 flask, requests 라이브러리를 설치하는 명령입니다.# python3 main.py # 파이썬 코드를 실행하는 명령입니다.from flask import Flask, requ.. C언어 9주차 #include #include #define max 100000int arr[max + 1]; // 소인수를 저장할 배열void min(int N) { for (int i = 2; i max_P) ? arr[num] : max_P; num /= arr[num]; } return max_P;}int main() { int N, K; scanf("%d %d", &N, &K); min(N); int count = 0; for (int i = 1; i 1.N, K에 해당하는 값을 입력받고 arr로 소인수를 저장할 배열을 만듭니다. 2. min함수에서 각 숫자들의 최소 소인수들을 저장합니다. 이때 사용되는 건 에라토스.. 웹해킹 9주차 Path Traversal파일 업로드 취약점(File Upload Vulnerability)은 웹 서비스를 통해 이용자의 파일을 서버의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점이며, 이용자가 업로드될 파일의 이름을 임의로 정할 수 있을 때 발생합니다. 파일 업로드 취약점은 크게 Path Traversal과 악성 파일 업로드로 분류됩니다. 파일 업로드를 허용하는 대개의 서비스는 보안을 위해 특정 디렉터리에만 업로드를 허용합니다. Path Traversal 취약점은 업로드에 존재하는 이러한 제약을 우회하여, 임의 디렉터리에 파일을 업로드할 수 있는 취약점을 말합니다. from flask import Flask, requestapp = Flask(__name__)@app.route('/file.. 웹해킹 8주차 Command Injection 인젝션(Injection)은 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법을 말합니다. Command Injection은 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생합니다. `` - 명령어 치환은 ``안에 들어있는 명령어를 실행한 결과로 치환됩니다.$ echo `echo theori`theori $() - 명령어 치환은 $()안에 들어있는 명령어를 실행한 결과로 치환됩니다. 이 문자는 위와 다르게 중복 사용이 가능합니다.$ echo $(echo theori)theori && - 명령어 연속 실행은 한 줄에 여러 명령어를 사용하고 싶을 때 사용합니다. 앞 명령어에서 에러가 발생하지.. 웹 8주차 PHP & MySQL13JOIN등을 이용하여 테이블을 합칠 수 있습니다. PHP & MySQL14기존에 있던 데이터가 이상하게 출력되어서 새로 만들어줬습니다 author table을 만들어준 뒤값을 입력하여 확인해봅니다author_id값을 메겨준 다음에 topic과 author을 id값을 기준으로 하여 auhor가 왼쪽으로 가도록(LEFT JOIN)합쳐줍니다. PHP & MySQL15 내용을 새로 추가할 수 있게 합니다. id값이 없는 WEB의 경우 오류가 나지 않도록 $author = '';를 써줍니다. PHP & MySQL16process_create파일을 수정해서 author_id값도 받도록 수정해줍니다 PHP & MySQL17~20 (내용이 쓰던 중 날아가서 하나로 합쳤습니다...) 각 요소를 t.. C언어 8주차 #include int main() { int num, N, M; long long x; scanf("%d", &num); for (int i = 0; i 1.테스트 케이스의 횟수를 받을 num과 N과 M에 해당하는 변수를 만들어줍니다. 2.수가 매우 커질 수 있으므로 결과를 계산한 값은 long long으로 저장합니다. 3. for(int i = 0; i4.안에 있는 for문은 조합을 간략화한 식으로, 이를 이용해 다리가 얼마나 연결될 수 있는지 계산합니다.4-1.원래는 각각 따로 계산했지만 오버플로우가 일어나서 4번의 방식으로 바꿨습니다....5.출력합니다. #include #include int main() { char N[1000000]; int count[10.. 이전 1 2 3 4 ··· 8 다음