이 문제는 보안문자를 300번을 풀면 FLAG가 출력되는 문제다! import re import base64 import requests import pytesseract from PIL import Image URL = 'https://captcha1.uctf.ir' cookies = { 'PHPSESSID': '7ecgsnlicl442qiu4veej63m1i', '926835342a210d84823968c8328cc3c8' : 'fa98c47354cfa95fd353ea8395ed0ae6' } image = re.search(r'data:image\/png;base64,([^"]*)"', requests.get(URL + '/', cookies=cookies).text)[1] with open("ima..
이 문제는 관리자 패널(http://admin-panel.local/)에 접근해야 하는 문제다! 관리자 패널을 바로 접속하면 "연결할 수 없음"이라고 뜬다. 문제에서 블로그 링크(https://ecorpblog.uctf.ir)를 주었다. 4개의 post가 존재하는데 각각 들어가보면 위와 같이 글만 적혀있다. 프록시로 잡아서 "/api/view.php"로 file:///posts/Azita 를 보내는 것을 확인했다. 관리자 패널 URL을 값으로 보내 보았다. 성공적으로 FLAG를 구했다! FLAG uctf{4z174_1n_urm14}
htaccess를 우회하고 flag 파일을 확인하면 되는 문제다! part one과 part two 페이지로 이동하면 access 할 수 있는 권한이 없다고 나온다. one/flag.txt의 .htaccess 파일은 위와 같다. Host의 헤더가 "localhost" 와 일치하지 않으면 접근하지 못한다. -k: SSL 인증서 확인에 실패하더라도 curl이 요청을 수행하도록 허용하는 옵션. 자체 서명된 SSL 인증서를 사용해 서버에 요청할 때 자주 사용. -X $'GET': HTTP 요청 방법을 "GET"으로 지정. $'GET'은 쉘 이스케이프를 사용하여 GET 메서드를 지정하는 방법. -H $'Host: localhost': "Host" HTTP 헤더를 "localhost"로 설정. HTTP 요청을 보낼..
이 문제는 admin의 비밀번호를 찾으면 FLAG를 구할 수 있을 것이다! answer=if((select length(pw) from member where user_id='epsilon')=0, pow(~0, ~0), 0) answer 인자에 0~10까지 숫자를 늘려나가면서 비밀번호의 길이를 찾는다. 비밀번호의 길이는 7임을 알아냈다! answer=if((select substr(pw,1,1) from member where user_id='epsilon')=0, pow(~0, ~0), 0) 0~9까지 늘려가면서 비밀번호를 알아낸다. 첫 번째 비밀번호를 구했으면 (pw,2,1)로 두 번째 비밀번호를 알아내면된다. 마찬가지로 0~9까지 늘려나간다. if((select substr(pw,1,1) from..
숨겨진 table을 찾아서 그 table의 column 이름을 찾으면 FLAG를 찾을 수 있을 것 같다! 먼저 hi%' UNION SELECT '', SCHEMA_NAME, '', '', '', '', '', '' FROM INFORMATION_SCHEMA.SCHEMATA -- 구문으로 데이터베이스에서 스키마를 찾아냈다! 다음은 hi' UNION SELECT '', TABLE_NAME , '', '', '', '', '', '' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA =' sqli102 ' -- 구문으로 finde me라는 table 명을 찾았다!!! 마지막으로 hi' UNION SELECT '', COLUMN_NAME, '', '', '', '', ''..
페이지에 접속하면 /welcome으로 이동하라고 나온다 /welcome 으로 이동하면 Login 을 할 수 있는 페이지가 나온다. 문제에서 비밀번호는 pasword123 라고 제공했다. 그래서 비밀번호를 password123으로 로그인을 해보았다. 로그인을 하면 페이지가 여러 번 이동하게 된다! 그 찰나에 URL을 보게되었는데 "/there_might_be_a_flag_here" 가 지나간 것을 볼 수 있었다. 바로 프록시 걸어서 버프스위트로 로그인하는 과정을 확인해 보았다! HTTP history를 확인했는데 URL에서 FLAG로 의심되는 문자열을 발견했다!! FLAG LITCTF{0k4y_m4yb3_1_l13d}
페이지로 이동하면 로그인 버튼이 나오게 된다. 로그인 버튼을 클릭하면 로그인을 할 수 있다. 제공된 파일에서는 login.php 파일이 눈에 띈다. 코드를 확인해보면, valid_password를 주는데 이 valid_password와 사용자가 입력한 비밀번호가 동일하면 FLAG를 출력해주는 코드다! username은 아무거나 입력해주고 password에 valid_password를 입력해주면 FLAG가 출력된다! FLAG LITCTF{oOps_sh0uld_h4v3_us3d_str1ct_c0mp4r1sons}
Docker 파일과 app.py 파일이 주어졌다. FROM python:3.10-slim-buster RUN pip3 install flask COPY flag.txt / WORKDIR /app COPY app/* /app/ copy app/templates/* /app/templates/ copy app/themes/* /app/themes/ EXPOSE 5000 ENTRYPOINT ["python3", "app.py"] flag.txt는 / 디렉토리에 있다. from flask import Flask, render_template, request import sys app = Flask(__name__) def factorial(n): if n == 0: return 1 else: try: retur..
웹 방문 시 just wait an eternity가 출력된다. burp suit로 response를 확인해 보았다. /secret-site?secretcode=5770011ff65738feaf0c1d009caffb035651bb8a7e16799a433a301c0756003a 페이지가 있음을 확인할 수 있었다. 해당 url로 이동해 보면 내가 얼마나 기다렸는지 출력해 주고 있다. 새로 고침을 해봐도 초만 늘어났고, 별 다른 건 없었다. 그리고 이 페이지에는 time이라는 쿠키 값이 존재했다. 쿠키 값을 조작하면, flag가 출력될 것 같다!! 쿠키 값을 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999..
- Total
- Today
- Yesterday
- MISC
- mongodb
- 스테가노그래피
- 인시큐어뱅크
- web
- dreamhack
- 리버싱
- 모바일
- forensics
- Android
- 포렌식
- cheatengine
- networking
- SQLi
- AssaultCube
- FTKImager
- Fiesta
- sqlinjection
- md5
- 해킹
- CTF
- reversing
- Steganography
- Cookie
- forensic
- rev
- 안드로이드
- 드림핵
- 취약점
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |