본문 바로가기

Web Hacking

(91)
[Webhacking.kr] old-01 write up uesr_lv 쿠키를 1로 설정해주고 화면에 출력하고 있다. 만약 쿠키값이 3 ~ 4의 사이값이라면 문제는 해결된다. 개발자 도구의 Application탭에서 쿠키를 변경해준다.
[Webhacking.kr] old-16 write up 작은 별? 꽃?이 존재한다. 소스코드를 살펴보니 키보드 입력에 따라 어떤 행동을 처리하고 있다. 이때 키보드 입력 값이 124일때를 주의깊게 봐야한다. location.href함수로 페이지를 이동 시키고 있다. 아마 문제 해결이 될거 같다. 124는 '|'를 의미하므로 파이프를 입력하면 문제가 해결될거 같다.
[Webhacking.kr] old-26 write up 웹개발하면서 Webhacking.kr을 조금씩 풀어볼 생각이다. 젤 쉬운 것부터 간단하게 해당 페이지 로직을 처리하는 코드를 보여주는 것 같다. php로 작성된 코드이며 GET요청 시 id로 들어온 값을 필터링 하고있다. preg_match 함수는 정규 표현식을 검사하는 php 내장 함수이며 /admin/ 을 통해 admin이란 문자열을 정규표현식 객체로 만들어 필터중이다. 이 문제는 id에 admin이 올바르게 전달되면 끝난다. 취약점 분석 url로 전송된 문자는 모두 url encdoing이 되어 서버로 전송되며 서버가 해석하기전에 url decoding을 수행 후 해석하게 된다. 그러나 서버측에서 또 url decoding을 불필요하게 하고 있기 때문에 이를 통해 우회가 가능하다. %61%64%6d..
[Dreamhack] DOM XSS write up #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) nonce = os.urandom(16).hex() try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cook..
[Dreamhack] XS-Search write up #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium.common.exceptions import TimeoutException from urllib.parse import urlparse from selenium import webdriver from selenium.webdriver.chrome.service import Service from hashlib import md5 import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("..
[Dreamhack] Relative Path Overwrite Advanced write up 이전 Relative Path Overwrite과 vuln의 코드만 다르다. vuln.php filter.js가 로드 되지 않으면 param에 "nope !!" 문자열이 들어가게 된다. 000-default.conf RewriteEngine on RewriteRule ^/(.*)\.(js|css)$ /static/$1 [L] ErrorDocument 404 /404.php 아파치 서버의 URL Rewrite를 정의한 파일이다. /로 시작하고 .js로 끝날 경우 404에러를 반환하며 /404.php로 리다이렉션 시킨다. 404.php 요청 URL을 가져와 not found라는 문자열과 함께 반환한다. 문자를 raw하게 그대로 리턴하기 때문에 스크립트가 삽입 시 실행될 확률이 있어 보인다. 취약점 분석 fi..
[Dreamhack] Relative Path Overwrite write up index.php Relative-Path-Overwrite Home Vuln page Report 기본적으로 page의 인자로 오는 값에 따라 페이지를 렌더링 하고 있다. index.php에서는 '..', ':', '/'를 필터링 하고 있기 때문에 path Traversal로 인한 LFI 취약점은 일어나지 않는다. vuln.php filter.js를 로드하고 있다. filter.js에서는 'script', 'on', 'frame', 'object' 키워드 필터링을 통해 XSS 공격을 막고 있다. vuln.php에서는 DOM객체로 html에 접근하여 param이라는 ID를 갖는 태그에 param에 입력받는 값을 html로 추가하고 있다. report.php / http://127.0.0.1/ Report..
[Dreamhack] CSS Injection write up 지금까지 푼 웹해킹 문제 중 가장 오래 걸렸다.. CSS Injection인 만큼, 사용자 입력 값이 CSS 값으로 들어가는 부분을 눈여겨 봐야한다. 코드가 긴 만큼 핵심 코드만 살펴볼 생각이다. #!/usr/bin/python3 import hashlib, os, binascii, random, string from flask import Flask, request, render_template, redirect, url_for, session, g, flash from functools import wraps import sqlite3 from selenium import webdriver from selenium.webdriver.chrome.service import Service from sel..