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 : 전..
이번 주차 강의의 주제는 레이아웃, props, state이다. props와 state는 RN의 꽃이라고 하신다. 1. Component에 스타일 입히기! rncs로 코드의 틀을 불러온다 style.prop안의 구조는 이렇다. 실습) 이런 식으로 텍스트에 style을 입혀주면 짠. 그 이외의 스타일들은 구글에서 react native change text color 등 알아서 검색해서 알아보자! 앞주차의 사진처럼 이렇게 인라인 방식으로 넣을 수도 있지만 가독성면에서, 효율성 면에서 위의 방식이 더 좋다. 레이아웃을 디자인할때 이렇게 퍼센트(%)로 크기를 지정해주면 이렇게 화면 전체를 기준으로 색을 입힐 수 있다. flex는 비율에 맞추어 화면에 색을 덮는 역할을 한다. 사용은 다음과 같다...
2주차 포너블 스터디는 구글 미팅으로 진행되었다. C언어의 기본적인 문법을 설명해주시고 어셈블리어라는 언어를 소개해주셨다. 어셈블리어는 기계어와 1대1로 대응되는 프로그래밍 언어이며 intel 형식의 문법을 기준으로 배울 예정이다! 어셈블리어는 [명령어][인자1][인자2] 의 형식이다. 어셈블리어는 레지스터를 사용하는데, 레지스터는 cpu 내에 있는 저장공간이고 접근 속도가 메모리보다 훨씬 빠르다. mov : 데이터를 복사하는 명령어 ( 레지스터를 통해서 복사한다. ) ex) mov[인자1][인자2] --> 인자2를 인자1에 복사한다. call : 함수를 호출하는 명령어 ex) call[함수] jmp : 특정 주소로 이동하는 명령어. je, jne, jle 등의 종류가 있다. ex)..