본문 바로가기

web

PHP로 구현한 파일 캐시 클래스 앞선 글에서 캐시가 무엇인지와 캐싱을 사용하는 이유에 대해서 알아보았다.이 게시물에서는 PHP를 이용해서 파일 캐시를 직접 구현한 클래스를 소개하고자 한다. <?php class Cache { // 실제 파일이 저장된 폴더 private $real_file_dir; // 캐시 파일이 저장될 폴더 private $cache_file_dir; // 캐시 만료 시간 (초 단위) private $timeo..
캐싱을 하는 이유 캐싱은 동일한 요청이 여러 번 들어 왔을 때 매 요청마다 계산을 한 다음에 보여주는 것이 아닌 기존에 한 번 계산했었던 내용을 저장해서 해당 내용을 보여주는 것이다. 그렇기 때문에 웹서버의 부하를 줄일 수 있는 기술이라고 할 수 있다.   아래는 캐싱을 하지 않았을 경우에 사용자 - 웹서버 - DB 사이에서 사용자에게 요청이 들어왔을 때의 실행 과정이다.   사용자가 웹서버에 요청을 보내면(1), 웹서버는 해당 ..
suninatas 공지사항 글쓰기 성공 Suninatas에 있는 공지사항에 게시글 작성 성공 2018. 06. 16.
제로보드의 위험성 아직까지 제로보드를 홈페이지로 사용하는 경우가 있는데, 그 경우 매우 위험하다는 것을 보여주기 위해 찍은 영상이다. 영상에 나온 버전은 비공식 패치버전인 pl9인데, 다른 버전의 경우에서도 비슷한 취약점이 있다.이외에도 XSS 취약점도 있기 때문에 제로보드를 사용하는 것은 해커에게 '사이트를 해킹해주세요'라고 말하는 것과 같다.실제 운영되고 있는 사이트에 대해서는 시도해보지 않았지만 따로 패치를 해주지 않았다면 똑같이 취약점이 있을 것이라고 생각한다..
[Web] Level 6 문제 링크 : http://suninatas.com/Part_one/web06/web06.asp게시판의 글을 읽는데 3번째 글의 경우에는 암호가 걸려져 있다. 그리고 암호를 입력하는 창이 뜨는데, 문제를 보면 자연스럽게 SQL Injection 문제라는 것을 알 수 있다.=와 #(주석) 문자를 필터링하기 때문에 1' or '1'>'0 방식으로 우회할 수 있다.그러면 경고창에서 "Congratulation!! auth_key i..
[Web] Level 5 문제 링크 : http://suninatas.com/Part_one/web05/web05.asp 소스코드 보기를 하면 아래와 같은 자바스크립트가 있는 것을 확인할 수 있다. eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e..
[Web] Level 4 문제 링크 : http://suninatas.com/Part_one/web04/web04.aspHint를 보면 50점이라는 것과 SuNiNaTaS가 힌트라는 것을 알 수 있다.plus 버튼을 누르면 값이 1씩 증가하는 것을 알 수 있고, 값이 25이상인 경우에는 "I like the SuNiNaTaS browser!"라는 경고창이 뜬다.따라서 User-Agent를 SuNiNaTaS로 설정해주면 잘 작동할 것이라고 추측을 하고 아래의 Pyth..
[Web] Level 3 문제 링크 : http://suninatas.com/Part_one/web03/web03.aspNotice Board에 글을 쓰는 것이 목표이다.먼저 Notice Board의 목록을 보는 주소가 http://suninatas.com/board/list.asp?divi=notice 이고, 글 내용을 보는 주소가 http://suninatas.com/board/view.asp?idx=469&num=40&page=..