오랜만에 webhacking.kr wrietup이다 일단 이 문제는 뭐 딱히 주어진게 없어 공격 벡터 찾기가 힘들었다. 이 문제에서 주어진 페이지는 딱 두페이지 뿐이다.두페이지 모두 특별히 큰 수상한점은 없지만 굳이 찾아본다면 ip is logging하고 날짜가 주석처리로 나온다는 것이다.처음엔 ip logging으로 접근해서 user agent에 php코드도 넣어보고 했지만 모두 실패했다. 날짜는 cookie의 time값을 기준으로 나와주는 것 같은데 time 값 뒤에 and 1=1을 넣었을때와 and 1=2를 넣었을때 날짜값이 달랐다.이를 통해 True일땐 09:00:01, False일땐 09:00:00을 뱉는걸 확인 가능하다.그렇다면 딱 봐도 blind sql injection이다.하지만 db구조를..
Web Hacking
21번 문제 iron golem이랑 비슷한 문제이다.pw를 직접 입력해줘야하기 때문에 blind sql injection을 해야 하는데 admin으로 로그인 할때의 엔드포인트가 제시되어있지 않기 때문에 Time Based 혹은 Error based를 사용해야한다.Time Based는 sleep과 benchmark둘다 필터링 되어있기에 사용하기 힘들 것 같다. 따라서 Error Based 를 사용해주어야 한다.if문이 필터링 되어있기에 or문을 사용해주었다.위와 같이 입력하면 select 1 union select 1=1일때 error가 안나고 select 1 union select 1=2일땐 error가 난다.서브쿼리에서 결과값이 두개 이상 반환되면 에러가 나는데 1=1일 경우 True 즉, 1로 반환되..
보호되어 있는 글입니다.
#!/usr/bin/python3import hashlib, os, binascii, random, stringfrom flask import Flask, request, render_template, redirect, url_for, session, g, flashfrom functools import wrapsimport sqlite3from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import Byfrom promise import Promiseapp = Flask(__name__)app.secret_key = os.urandom(32)DAT..
Command Injection은 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생한다.아래는 여러가지 Command Injection 기법이다. 1. ``명령어 치환 `` 안에 들어있는 명령어를 실행한 결과로 치환한다.$ echo `echo a` => a 2. $()명령어 치환 $() 안에 들어있는 명령어를 실행한 결과로 치환한다.$ echo $(echo a) => a 3.&&명령어 연속 실행한줄에 여러 명령어를 사용하고 싶을때 사용한다.앞 명령어에서 에러가 발생하지 않아야 뒷 명령어가 실행된다. $ echo hello & echo hi => hello hi 4. ||이것도 연속실행인데 앞 명령어에서 에러가 발생해야 뒷 명령어가 실행된다.$ cat / || echo hi => /..