- [ Dreamhack/워게임 ]보호글 입니다.2024-11-28 12:10:37보호되어 있는 글입니다.
- [ Dreamhack/워게임 ]Tomcat Manager [web]2024-11-28 12:00:11문제 설명드림이가 톰캣 서버로 개발을 시작하였습니다.서비스의 취약점을 찾아 플래그를 획득하세요.플래그는 /flag 경로에 있습니다.문제 분석문제 페이지에 접속하면 이런 화면이 뜬다. 딱히 뭔가 기능이 구현되어있지는 않는 것 같다./flag를 입력해봤다. 설명을 보니 flag 리소스는 없다고 한다. conf 디렉토리 하위에 user.xml 파일을 만들어 username이 tomcat인 유저를 등록하는 과정이다. url에 /manager이라고 치면 /manager/html 페이지로 넘어간다. user 파일에 username은 적혀있으므로, password를 찾으면 될 것 같다. tomcat에서 지원하는 배포된 프로젝트를 view 단으로 관리할 수 있..
- [ Dreamhack/워게임 ]webhacking.kr: old-502024-10-01 23:42:331. 문제 풀이사용자의 입력이 그대로 쿼리문에 포함된다. SQL Injection 공격에 취약한 사이트같다. id : pw : |"); if($result['lv']==2) echo("level : 2"); } if($result['lv']=="3") solve(50); if(!$result) echo("Wrong"); }?> foreach($_GET as $ck) if(preg_match("/from|pw|\(|\)| |%|=|>|-> old-27과 같이 특정 문자들을 필터링한다. from, pw, (, ), %, =, >, $result = mysqli_fetch_array(mysqli_query($db,"select lv from cha..
- [ Dreamhack/워게임 ]webhacking.kr: old-272024-10-01 20:45:511. 문제 풀이제출 칸에 soooooo를 입력하고 제출했다. 쿼리문에 내가 작성한 문자열이 그대로 입력되는 것을 확인할 수 있다. SQL Injection 공격에 취약한 웹 페이지이다. 이제 페이지 코드를 살펴보자. if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack");->preg_match() 함수는 주어진 정규 표현식 패턴을 사용하여 문자열 내에서 일치하는 부분을 찾아내는 함수이다. 일치하는 패턴을 문자열에서 처음으로 발견하면 검색을 중단한 뒤 1을 반환한다. 그렇지 않은 경우에는 0을 반환한다.-> #, select, (, 공백, limit, =, 0x중 하나라도 발견되면 'no hack' 메시지를 출력한다.$r=m..
- [ Dreamhack/워게임 ]Dreamhack: simple_sqli_chatgpt2024-10-01 19:55:511. 문제 설명#!/usr/bin/python3from flask import Flask, request, render_template, gimport sqlite3import osimport binasciiapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'DATABASE = "database.db"if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpas..
- [ Dreamhack/워게임 ]Lord of Injection: germiln2024-10-01 16:39:551. 문제 설명query : select id from prob_gremlin where id='' and pw=''query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("gremlin"); highlight_file(__FILE__);?>2. 문제 풀이?로 쿼리의 시작을 알리고 id값으로 germmmmm을 넣어봤다. 그랬더니 아래의 query 부분이 내가 입력한 문자를 그대로 출력하는 것을 볼 수 있었다. 웹 페이지가 어떻게 동작하는지 알게되었다. 쿼리를 조작할 수 있다는 것을 알아냈으니, 인젝션 공격이 가능하다. query : select id from prob_greml..
- [ Dreamhack/Web Hacking ]DreamhackWeb Hacking_File Vulnerability2024-09-29 03:03:061. 서론많은 현대 웹 서비스에는 글 만으로 전달하기 힘든 정보를 전달할 수 있도록 이미지나 문서 등의 파일 업로드 기능이 존재한다. 예를 들어, 이용자 간에 사진을 공유할 수 있는 이미지 공유 서비스들은 이미지 파일을 업로드할 수 있는 기능과 업로드 된 이미지를 다른 이용자들이 다운로드 받을 수 있도록 하는 기능을 갖추고 있다. 이러한 파일 공유 서비스를 개발할 때, 이용자가 업로드한 파일을 DB에 저장하는 것보다는, 서버의 파일 시스템에 저장하는 것이 개발하기 쉽고 관리 효율도 높다. 그러나 임의 파일이 다운로드 되는 취약점이나, 악성 웹셸 파일을 업로드하여 임의 코드를 실행할 수 있는 취약점을 발생시키기도 한다. File Upload Vulnerability는 파일 업로드와 관련해서 발생하는 취약점..
- [ Dreamhack/워게임 ]Web Hacking_command-injection-1🚩2024-09-28 21:29:011. 문제 설명2. 문제 풀이시작 페이지, ping 페이지가 있는 간단한 웹 사이트다.전 강의와 마찬가지로, Host IP를 입력하면 정상적으로 동작한다. 그럼 이제 코드를 살펴보자.#!/usr/bin/env python3import subprocessfrom flask import Flask, request, render_template, redirectfrom flag import FLAGAPP = Flask(__name__)APP.route('/')def index(): return render_template('index.html')render_template를 통해 index.html 페이지를 렌더링한다. 뭐 별건 없다.@APP.route('/ping', methods=['GET', 'P..