목록Study/Web Hacking (56)
촉촉한초코칩

코드 Online File Box Choose a file... No file uploaded 0 ) { ..

코드import osfrom flask import Flask, request, render_template_stringfrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost')app.config['MYSQL_USER'] = os.environ.get('MYSQL_USER', 'user')app.config['MYSQL_PASSWORD'] = os.environ.get('MYSQL_PASSWORD', 'pass')app.config['MYSQL_DB'] = os.environ.get('MYSQL_DB', 'user_db')mysql = MySQL(a..

코드"; echo "FLAG : ".$FLAG; }else{ echo "wrong.."; } }?>password : get source데이터베이스이름은 md5_password이고, DB_username과 DB_password는 데이터베이스의 사용자이름과 비밀번호이다. 그 안에 테이블명은 admin_password로, password의 값이 열로 들어있다.? select문에서 password가 md5로 생성한 값과 같으면(행이 있으면) flag를 출력한다. mysqli_real_escape_string(connection, escapestring); → connection과 escape형태로 만들어줄 string을 입력한다. → 필터링? md5에서 true인자는, ps 값을 binary로 ..

코드key == $key) { $ret = ["code" => true, "flag" => $FLAG]; } else { $ret = ["code" => false]; } die(json_encode($ret)); } function gen_key(){ $key = uniqid("welcome to wargame.kr!_", true); $key = sha1($key); return $key; }?> view-source key 값이 맞아야 flag가 출력된다. 공격php의 Type Confusion에 대해 알아보았다. → 문자열끼리 동일한..

sql 취약점을 이용해서 id에 admin' or 1=1#를 넣어 계정을 생성했다. 제대로 admin으로 로그인해야 할 것 같다.'를 쓰는 건 맞는 것 같다. 문제에서 create문으로 id 크기는 32까지 받고 있다. 만약 32를 넘어가면 자른다. 이걸 이용해서 풀어본다..? → "admin + 공백문자 27글자 + 아무 문자"로 뚫을 수 있다. https://jwcs.tistory.com/29회원가입할 때 id 최대길이를 늘려주어야 한다. (로그인할 때도 마찬가지) 위 방법이 안 먹혀서 그냥 maxlength를 삭제해서 계정을 생성하고 로그인을 해주었더니 flag가 떴다. 나는 32글자가 제한이길래 계정 생성할 때 32글자 이상으로 적었었는데 생성이 됐던 걸 보면 입력이 안됐던 것 같다. (제대로..

코드"; echo "FLAG : ".$FLAG; } }else{ echo "wrong.."; } }?>IDPW get source아이디랑 패스워드 입력 받음 id는 null값이 아니여야 하고, guest/blueh4g를 제외한 값을 찾아야 한다. select문을 리턴해주는 함수는 mysqli_fetch_array() 함수를 사용하고 있는데, 이 함수는 한번에 한 개의 데이터 행을 배열 형태로 가져온다. 더이상 배열의 형태로 반환할 데이터가 없을 때까지 true를 반환하여 조건문을 이용하면 모든 배열 값을 호출할 수 있다. 공격sql 취약점을 이용해서 id에 or 조건문을 넣어서 뒤에는 주석처리 되게 하려고 했지만 → 실패a' or 1=1--문제에 bypass filtering이라고 ..