본문 바로가기

분류 전체보기322

AngularJS 시작하기 - 환경 구성 (1/3) 지난 포스팅에서 AngularJS에 대한 간략한 설명을 드렸는데요. 해당 포스팅이 궁금하신 분들은 아래의 링크를 참고해주세요. AngularJS에 대하여 알아보자 SPA(Single Page Application) AngularJS는 SPA(Single Page Application) Framework 입니다. Single Page Applicaiton(SPA, 스파)는 서버로부터 완전한 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로.. hacksms.tistory.com AngularJS 환경 구성하기 먼저 저는 현재 TypeScript를 위한 환경 구성이 완료된 상황입니다. 관련 내용은 아래의 포스팅을 참고해주세요. TypeScript 시작하기 - 환경 구성 (1/3) 지난 포스팅에서 Typ.. 2022. 10. 9.
AngularJS에 대하여 알아보자 SPA(Single Page Application) AngularJS는 SPA(Single Page Application) Framework 입니다. Single Page Applicaiton(SPA, 스파)는 서버로부터 완전한 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로 재사용함으로써 사용자와 소통하는 WEB Applicaiton을 의미합니다. SPA 사용 이전까지는 페이지 요청 시 Server에서 HTML을 생성 및 Rendering하여 Client로 전송하면 Client는 그 결과를 화면에 보여지도록 처리만 했습니다. 그러나 웹 사이트가 고도화됨에 따라 한 페이지에 해당하는 용량이 커져갔고, 매번 새로운 페이지를 전달하는 게 버거워졌습니다. 이를 해결하기 위해 나온 것이 SPA인데요. S.. 2022. 10. 9.
Docker를 이용한 Redis 환경 구축하기 Docker 관련 포스팅 링크 Docker 명령어 정리 Mac에서 도커 설치 $ brew install --cask docker Docker Hub에서 이미지 가져오기 docker pull [docker images] 이미지 목록 확인하기 # 일반 명령어 docker images docker image ls # 이미지 id만 보기 docker i.. hacksms.tistory.com docker Image 설치 $ docker pull redis:alpine docker 실행 $ docker run --name my-redis -p 6379:6379 -v redisFolder:/data -d redis:alpine redis-server Host에서 Redis 접속 $ redis-cli -h local.. 2022. 10. 6.
TypeScript 시작하기 - 환경 구성 지난 포스팅에서 TypeScript에 대한 간략한 설명을 드렸는데요. 해당 포스팅이 궁금하신 분들은 아래의 링크를 참고해주세요. TypeScript에 대하여 알아보자 TypeScript가 필요해진 이유 초기 javascript의 경우 Web 환경이 이렇게 커질 것이라고 생각을 하지 못했기 때문에 짧은 형태의 간단한 코드들로 이뤄질 것이라고 생각하여 단순한 형태의 간단한 Scripti hacksms.tistory.com TypeScript 환경 구성하기 먼저 더 편하고 쉽게 코드를 입력하기 위해 Visaul Sutdio Code를 설치합니다. Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined a.. 2022. 10. 3.
TypeScript에 대하여 알아보자 TypeScript가 필요해진 이유 초기 javascript의 경우 Web 환경이 이렇게 커질 것이라고 생각을 하지 못했기 때문에 짧은 형태의 간단한 코드들로 이뤄질 것이라고 생각하여 단순한 형태의 간단한 Scripting Language를 만들려고 했습니다. 그렇기 때문에 언어의 복잡도를 최소화하고 Running Curve(습득 난이도)를 낮추기 위해 당시에 가장 유행 중이던 C++과 java의 문법을 빌려오는 방향으로 구성이 되었습니다. 이로 인해 Java 계열의 문법을 차용하면서도 type을 제거하고 class와 같은 복잡성을 야기할 수 있는 부분들도 제거하여 간결한 문법을 가지면서 Type 없이 객체지향도 함수형 프로그래밍도 할 수 있는 Prototype의 객체 기반 함수형 동적 타입 스크립트의 .. 2022. 10. 3.
Django 1-Day Directory Traversal 취약점, CVE-2021-3281 취약 환경 Djagno 2.2 ~ 2.2.18 Django 3.0 ~ 3.0.12 Dajngo 3.1 ~ 3.1.6 취약점 분석 해당 취약점은 django.utils의 archive 모듈을 이용하여 tar 파일을 압축 해제할 때 경로를 조작할 수 있는 취약점입니다. django.utils.archive.py 파일의 TarArchvie Class 내 Code에서 os.path.join 함수를 사용하여 filname을 정의하고 있기 때문에 해당 취약점이 발생하고 있습니다. class TarArchive(BaseArchive): def __init__(self, file): self._archive = tarfile.open(file) def list(self, *args, **kwargs): self._ar.. 2022. 10. 3.
SQL에서 "문자열"="문자열 "이 True인 현상 예전에 들어서 알고 있던 내용인데, 업무를 하다가 오랜만에 보게된 "test"="test " is True 현상... padding 과 관련된 내용이라는 것은 알았지만 정확한 개념이 기억나지 않아 정리를 한 번 해야될 필요성을 느꼈습니다. 먼저 아래와 같은 결과가 참이 나오는 이유는 두 문자열의 길이가 다른 경우 문자열의 길이를 같게 만든 뒤 공백을 추가하는 표준이 존재하기 때문입니다. CREATE TABLE minseok123(title varchar(10)); INSERT INTO minseok123(title) VALUES('test'); SELECT * FROM minseok123 WHERE title='test '; # Result -> title : test 이와 같은 내용은 SQL 표준을 명.. 2022. 9. 27.
[CCE 2022] blue archive Write Up 문제 Docker blue archive - web.zip Dropbox를 통해 공유함 www.dropbox.com 해당 문제의 경우 시간 안에는 풀지는 못했지만, 이후 Docker File을 이용하여 Flag를 획득한 문제 입니다. 돌이켜보면, 충분히 풀 수 있었던 문제인데 조급하게 다가갔던 것 같습니다. ㅠㅠ 1. 해당 문제는 URI를 입력하면 headless Browser로 접속을 시도한 뒤, Rendering된 화면을 캡쳐 후 보여주는 서비스가 구현되어 있습니다. 2. 이때 사용자가 입력한 URI는 반드시 http 또는 https로 시작해야 합니다. router.post('/archiveSave', async (req, res) => { const { url } = req.body; if (typ.. 2022. 9. 25.
[CCE 2022] BabyWeb Write Up 문제 Docker 1. 입력 창에 url을 입력하여 전송할 경우 url.parse 함수를 통해 hostname을 추출한 뒤, hostname이 flag.service일 경우 Not allow를 리턴하고 아닐 경우에 valid_ip 함수를 통해 해당 도메인이 내부 IP인지 확인하고 있는 것을 확인하였습니다. def valid_ip(ip): try: ip = socket.gethostbyname(ip) is_internal = ipaddress.ip_address(ip).is_global if(is_internal): return False else: return True except: pass try: url = request.form['url'] result = urllib.parse.urlparse(u.. 2022. 9. 24.