web웹
-
[Dreamhack] sessionweb웹/Dreamhack wargame 2022. 7. 26. 13:27
이번에도 로드맵을 참고해서 풀어봤다. Background: Cookie & Session | Dreamhack 로그인 | Dreamhack dreamhack.io 문제에서 제공하는 app.py의 일부분이다. 세션아이디가 할당되는 부분을 보면, hex값으로 설정되는 것으로 추측해볼 수 있다. def login(): if request.method == 'GET': return render_template('login.html') elif request.method == 'POST': username = request.form.get('username') password = request.form.get('password') try: pw = users[username] except: return '' if..
-
[Dreamhack] session-basicweb웹/Dreamhack wargame 2022. 7. 26. 10:09
@app.route('/') def index(): session_id = request.cookies.get('sessionid', None) #세션아이디 저장 try: # get username from session_storage username = session_storage[session_id] # session_storage의 key 중 session_id가 존재하면 username에 session_storage[session_id]를 저장 except KeyError: return render_template('index.html') return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if usern..
-
-
[Dreamhack] error based sql injection(+문제해결 완)web웹/Dreamhack wargame 2022. 7. 14. 22:29
init.sql 파일 위 sql문으로 추측할 수 있는 것은 'user'이라는 이름의 테이블이있고 각 튜플은 다음과 같은 값으로 채워진다는 것이다. idx uid upw admin DH{**FLAG**} guest guest test test app.py 이용자 입력값이 별다른 검사 없이 SQL 쿼리에 포함되어 SQL Injection 취약점이 발생함도 알 수 있었다. error based sql injection은 문법적 오류가 아닌 논리적 오류가 포함된 쿼리를 작성해야 가능한 공격이다. 문법오류는 아예 컴파일이 되지 않을 수 있기 때문이다. 다음은 문법오류를 발생시켰을 때의 결과입니다. 고민을 하다가 드림핵 로드맵의 도움을 받기로 하였다. 나는 다음을 참고하여 문제를 풀어보았다. [WHA] Exploi..
-
-
퀴즈 오답노트 0707web웹/bwapp 실습 2022. 7. 10. 21:15
SQL - 함수 : COUNT, LIMIT, SUM, AVG, MAX, MIN (tistory.com)
-
-
[Bee-box] blind sql injection 블라인드 인젝션 실습web웹/bwapp 실습 2022. 7. 7. 17:56
id/pw - bee/bug 입력 후 SQL injection - blind - boolean-based 선택 칼럼의 숫자를 늘려가면서 syntax error가 나지 않을 때까지 공격을 시도한다. 숫자를 7까지 늘렸을 때 해당 문구가 출력되었고 따라서 해당 페이지는 총 7개의 칼럼을 호출함을 알 수 있었다. 지금부터는 데이터 베이스명을 추측해나가는 과정이다. 데이터베이스 명을 추측하기 위해 항상 참인 문장과 database 이름의 길이를 출력하는 length함수를 and 연산자로 연결하한다. 숫자를 1부터 늘려서 계속 공격을 시도한다. 숫자를 5까지 늘렸을 때 결과 값이 참이 됨을 알 수 있었다. 다음으로는 데이터베이스명을 한 글자씩 추측해보는 과정이다. substring(database(), 시작 인덱..