목록전체 글 (152)
김승현

문제 방화벽 우회 문제다. 풀이 접속하면 이렇게 뜨는 걸 볼 수 있다. 아무거나 입력해보자 hello를 입력했더니 {uid}가 hello로 바꼈다. 이번엔 guest를 입력해보자. guest로 바뀌면서 가운데 guest라고 표시가 생겼다. init.sql과 소스코드는 분석은 강의에 있으니까 그냥 중요해 보이는 것만 가져오겠습니다! keywords 변수에 union, select, from, admin... 등등을 저장하고 저장된 문자열들을 check_WAF함수를 통해서 포함된다면 True를 없다면 False를 반환한다. 그리고 포함되어있다면 true이기 때문에 if문이 실행됨녀서 WAF로 차단이 되며 종료가 되고 포함되지 않았다면 SELECT * FROM use WHERE uid='[uid변수]';를 정..

문제 앞선 강의에서도 나왔듯이 아스키코드와 UTF-8(한글)로 password가 구성되어 있다는 게 핵심인 것 같다. 풀이 접속해보면 생긴 건 저번과 같은 것 같다. guest를 입력해보면 guest가 존재한다고 뜬다. 혹시나 저번처럼 error를 이용하면 될까 싶어서 저번에 error based sqli를 풀 때 사용한 코드를 입력해봤다. 역시 안 된다. 코드를 대충 훑어보자. (분석은 강의에서 했으니 중요한 거만 보고 넘어갑니다) 이 양식에 맞춰서 입력된 uid가 들어가는 것 같다. 이외엔 저번 문제와 코드가 비슷하다. from requests import get host = "http://host3.dreamhack.games:22052" password_length = 0 while True: p..

문제 간단한 error based sqli라고 한다. 풀어보자 풀이 userid쪽의 sql 쿼리문과 uid를 입력하는 창이 있다. guest를 한번 입력해보자. 그냥 저 위에 출력만 바뀌나? 아무거나 입력해보자 아무거나 입력해봤는데 입력이 됐고 이번에는 '--도 입력해보자 error문이 발생했고 mariaDB를 사용하는 것 같다. 소스코드로 가보자. import os from flask import Flask, request from flask_mysqldb import MySQL app = Flask(__name__) app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost') app.config['MYSQL_USER'] = os.envir..

문제 이름부터 어려워 보인다... 접속해보자. 풀이 접속해보니까 별 게 없다.. 소스코드를 보자. #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET']) def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmd app.run(host='0.0.0.0', port=8000) 코드 초반부 flask와 os를 import 하고 플라스크 객체를 생성했다. @..