본문 바로가기

Web Hacking

(91)
[Dreamhack] php-1 write up 문제 화면이다. 코드를 바로보면 index.php는 GET요청으로 받은 파라미터를 include 시키고 있다. 바로 LFI 취약점이 보인다. 그래도 양심상 view.php 까지 보면 flag가 파라미터로 넘어오면 Permission denied가 뜬다. 따라서 index.php에서 발생하는 LFI로 우회하라는 것 같다. 보니 flag echo가 안된다. php wrapper로 우회할 수 있다. 디코딩
[Dreamhack] proxy-1 write up Raw Socket Sender가 구현되어 있다고 한다. 음 위와 같이 되어 있다. 코드를 보면 위와 같이 되어 있고 raw socket 프로그래밍은 아니지만 그런 일반 소켓 프로그래밍으로 효과를 줄 수 있는 것 같다. 아무튼 내가 입력한 호스트와 포트에 데이터를 전송하고 있다. flag가 어디서 나오나 확인하니 admin 경로에 POST 요청을 보내면서 위의 조건들을 만족하면 flag가 응답된다. 즉 구현되어 있는 소켓 통신 서비스를 통해 admin ip로 POST요청을 보내면 된다. POST /admin HTTP/1.1Host: host3.dreamhack.games User-Agent: Admin Browser DreamhackUser: admin Cookie: admin=true Content-T..
[Dreamhack] random-test write up 드림이를 위해 문제를 풀어보자! 바로 코드를 보면 #!/usr/bin/python3 from flask import Flask, request, render_template import string import random app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() # flag is here! except: FLAG = "[**FLAG**]" rand_str = "" alphanumeric = string.ascii_lowercase + string.digits for i in range(4): rand_str += str(random.choice(alphanumeric)) rand_num = random.randint(100, 2..
[Dreamhack] Type c-j write up 올바른 ip와 pw를 입력하면 flag가 나온다. Type c-j Index page 코드를 보게되면 사용자가 입력한 ip를 int로 형변환하여 랜덤 생성된 문자열과 비교를하고 있다. 직접 php로 문자열을 int로 형변환해보니 0이 나온다. 따라서 a 10개를 id에 입력하면 0이될거고 if문에서 길이비교는 통과할 것 같다. 입력해보니 ? 패스가 된다. 일단 비밀번호는 sha1함수를 통해 1을 해시화한 값이다. 해보니 위와 같은 값이 나온다. 마찬가지로 int로 형변환을 해본다. 356만 나온다. 뒤에 a값 5개를 넣으면 어차피 인식이 안될거니 자리수를 채워준다. ㄷㄷ if문에서 앞 조건이 형변환 하니 강제 형변환 돼서 뒤 조건도 int형이 되어 조건이 성립된 것 같다.
[Dreamhack] baby-union write up sqli 문제이다. 코드를 바로 보자! CREATE DATABASE secret_db; GRANT ALL PRIVILEGES ON secret_db.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass'; USE `secret_db`; CREATE TABLE users ( idx int auto_increment primary key, uid varchar(128) not null, upw varchar(128) not null, descr varchar(128) not null ); INSERT INTO users (uid, upw, descr) values ('admin', 'apple', 'For admin'); INSERT INTO users (uid, upw, d..
[Dreamhack] BypassIF write up 드림핵 웹해킹 워게임 level 1 다 풀어보자! 첫 문제 BypassIF 서버에 접속하자 입력폼이 하나 존재한다. 코드를 보자. #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect, url_for import string import os import hashlib app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" KEY = hashlib.md5(FLAG.encode()).hexdigest() guest_key = hashlib.md5(b"guest").hexd..
[suninatas] 웹해킹 8번 / Burp Suite Intruder 실습 서버에 접속하면 입력폼이 나온다! 코드를 보면 Password가 0 ~ 9999인 것을 알 수 있다. python으로 브루트포싱 하면 빠르지만 Burp Suite의 기능을 실습하는게 목적이므로 해당 기능을 이용해보자. 먼저 패킷을 잡고 우 클릭을 누른다. Send to Intruder을 누르고 해당 탭으로 이동해준다. brute forcing을 할 데이터를 선택해준다. 다음은 payload 탭으로 이동 후 위와 같이 설정해준다. 해당 기능이 좀 많이 느려서 정답 근처에서 수행해준다. 마지막으로 setting 탭에서 매칭시킬 문자열을 입력한다. 공격 시 7707에서 Authkey가 발견되었다.
[H4CKING GAME] Smuggling 1-day 분석을 하기로 마음 먹고 주제를 Http Request Smuggling으로 잡았는데 공부하다 보니 전에 Smuggling 문제가 있던게 생각나서 풀어보려한다. 해당 워게임 사이트는 팀 H4C에서 운영하는 사이트라고한다. 서버에 접속하면 위와 같은 문자열만 리턴하고 끝이다. 문제에서 주어진 코드 파일을 살펴보자.. main.py main 코드이다. from flask import Flask app = Flask(__name__) flag = open("FLAG").read() @app.route('/', methods=['GET', 'POST']) def main(): return 'Hello! Our Team is TeamH4C' @app.route('/guest', methods=['GET..