본문 바로가기

전체 글40

nc 사용법 서버에서 특정 포트를 통해 서비스를 동작시키는 환경을 구성한다. 클라이언트가 이 프로그램과 통신하기 위해서 nc(netcat)을 사용한다. $ nc usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl] [-m minttl] [-O length] [-P proxy_username] [-p source_port] [-q seconds] [-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [destination] [port] $ 여기서, 가장 간단한 사용 방식은 nc hostname(ip) .. 2023. 11. 29.
[Dreamhack] phpreg 문제 풀이 문제 파일을 받고, 웹 서버로 접속한다. 우선, Nickname과 Password를 입력해야 할 것으로 보인다. 앞서, 다운받은 문제 파일에서 step2.php 파일에서 Nickname과 Password와 관련된 부분을 확인해 보자. 2023. 11. 28.
[Dreamhack] ex-reg-ex 문제 풀이 문제 파일을 받고, 주어진 웹에 접속한다. Regex : email + dream과 같은 정보를 통해 정규 표현식에 관한 웹임을 알 수 있고, 무언가를 입력하고 submit 하면 input에 따른 Flag를 얻을 수 있음을 알 수 있다. 이제, 문제 파일을 보자. #!/usr/bin/python3 from flask import Flask, request, render_template import re app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() # flag is here! except: FLAG = "[**FLAG**]" @app.route("/", methods = ["GET", "POST"]) def index(): input_.. 2023. 11. 28.
정규 표현식(Regex) 보안에서 공격은 이용자가 값을 자유롭게 입력할 수 있는 지점에서 발생한다. 이러한 취약점을 줄이기 위해서는 사용자의 입력 값을 절대 신뢰해서는 안 되며, 항상 검증하여(Never Trust, Always Verify) 서버에서 올바른 데이터만 다루도록 강제해야 한다. 이러한 검증을 위해서는 정규 표현식이 사용된다. 간단하게 특정 형식의 문자열을 표현하고, 형식이 일치하는지 검증할 수 있다. 정규 표현식 : 특정한 패턴으로 문자열을 표현하는 식이다. 정규 표현식에 부합하는 문자열의 경우, 정규 표현식 혹은 패턴에 '매치한다'라고 표현한다. 아래는 이메일 형식을 표현하는 정규 표현식의 예시이다. ^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$ 매우 긴 문자열에서 원하는 형식의 문자열을 검색하여 추.. 2023. 11. 27.