일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해킹
- Webhaking
- network
- dreamhack
- bee-box
- 모의해킹
- 네트워크보안
- 알고리즘
- 시스템해킹
- 시스템
- 네트워크
- 순서도
- WarGame
- System
- CodeEngn
- 소프트웨어
- hacking
- 웹해킹
- 웹
- 소프트웨어보안
- 드림핵
- ftz
- reversing
- XSS
- webhacking
- 워게임
- 비박스
- Web
- TCP
- 리버싱
- Today
- Total
목록dreamhack (15)
Without a Break

[풀이] 개발자 도구의 Element에서 script 코드를 보면 jack-target(호박)을 클릭 시 counter가 증가하는 함수가 있다. 이 코드를 활용하여 console창에 호박을 10000번 클릭하는 코드를 작성해 플래그를 얻을 것이다. 다음과 같이 호박을 10000번 클릭하는 코드를 Console창에 작성 후 엔터를 누르면 플래그가 출력된다. 답 : DH{I_like3_pumpk1n_pi3}

[문제 파일] const BAN = ['admin', 'dh', 'admi']; filter = function(data){ const dump = JSON.stringify(data).toLowerCase(); var flag = false; BAN.forEach(function(word){ if(dump.indexOf(word)!=-1) flag = true; }); return flag; } 배열 BAN에 있는 문자열을 필터링한다. (admin을 쳤을 때 플래그가 바로 뜨지 않도록 한 코드) app.get('/login', function(req, res) { if(filter(req.query)){ res.send('filter'); return; } const {uid, upw} = req.qu..

VMware에 ubuntu를 설치하고 Ctrl+Alt+t로 터미널 창을 열어준 후 Hello Ubuntu!를 출력하였다.

[문제 파일] 데이터베이스 DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpassword char(100));') db.execute(f'insert into users(userid, userpassword) values ("guest", "guest"), ("admin", "{binascii.hexlify(os.urandom(16)).decode("utf8")}");') db.commit() db.close() 데이터베이스 파일이 존재하지 않는 경우 파일을 생성하고 연결한다. 유저 테이블을..

[문제 파일] vuln() @app.route("/vuln") def vuln(): param = request.args.get("param", "").lower() xss_filter = ["frame", "script", "on"] for _ in xss_filter: param = param.replace(_, "*") return param 이용자에게 요청(입력)받은 param의 값을 소문자로 변경한다. xss_filter에 저장된 문자열은 필터링하여 *로 치환한다. flag() @app.route("/flag", methods=["GET", "POST"]) def flag(): if request.method == "GET": return render_template("flag.html") el..

[문제 파일] vuln() def vuln(): return render_template("vuln.html") vuln.html을 렌더링한다. flag() @app.route("/flag", methods=["GET", "POST"]) def flag(): if request.method == "GET": return render_template("flag.html") elif request.method == "POST": param = request.form.get("param") if not check_xss(param, {"name": "flag", "value": FLAG.strip()}): return '' return '' GET method를 요청받았을 때, flag.html 페이지를 렌더..

해당 문제의 문제 파일은 다음과 같이 이루어져 있다. html 파일로 들어가면 타이틀 페이지로 들어가게 된다. 이제 여기서 개발자 도구로 들어가주면 (Ctrl+Shift+i / F12) 개발자 도구의 Sources 탭에서 소스 코드를 확인할 수 있다. 드림핵의 플래그 형태는 DH{..}로 구성되어 있으므로 소스 코드에서 드림핵의 플래그 형태인 DH를 검색하면 소스 코드의 main.scss 파일에서 플래그를 발견할 수 있다. 답 : DH{2ed07940b6fd9b0731ef698a5f0c065be9398f7fa00f03ed9da586c3ed1d54d5}