본문 바로가기

전체 글

(302)
[ 1-Day ] Takeover an account that doesn't have a Shopify ID and more 본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다. -분석 레포트-https://hackerone.com/reports/867513 Summary Shopify 사용자 계정의 일부 하위 집합에 대해 Shopify의 이메일 확인을 우회할 수 있는 것으로 나타났다. 그렇게 하면, 사용자가 자신이 소유하지 않은 계정에 액세스할 수 있게 된다.  Details pos-channel.shopifycloud.com/graphql-proxy/admin 경로를 통해 이메일 확인 없이, 직원 이메일을 업데이트 할 수 있고, partner dashboard를 사용하면, accounts.shopify.com에 Shopify ID 계정이 없는 스토어를 생성할 수 있다. 위 두가지..
[ 1-Day ] url that twitter mobile site can not load 본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다. -분석 레포트-https://hackerone.com/reports/500686 Summary 트위터 모바일 사이트가 로드할 수 없는 URL은 해당 URL을 포함하는 모든 페이지를 깨트린다.  Description 잘못된 16진수 문자로 인해 트위터 모바일 사이트가 손상된다. 예를 들어, mobile.twitter.com/%xx 로 이동하면, 로드되지 않는다.  1) 해당 URL을 다이렉트 메시지로 보내면, 트위터는 더 이상 대화를 로드할 수 없다.  2) 해당 URL을 트윗 하면, 당신을 follow하는 누구든지 트윗을 로드할 수 없다.    추측하건대, 클라이언트 측 Twitter에서 %xx 값을 찾으려..
[ 1-Day ] Cross origin resource sharing misconfiguration 보호되어 있는 글입니다.
WP Automatic WordPress plugin hit by millions of SQL injection attacks 출처  https://www.bleepingcomputer.com/news/security/wp-automatic-wordpress-plugin-hit-by-millions-of-sql-injection-attacks/#google_vignette WP Automatic WordPress plugin hit by millions of SQL injection attacksHackers have started to target a critical severity vulnerability in the WP Automatic plugin for WordPress to create user accounts with administrative privileges and to plant backdoors for l..
[ 1-Day ] Upload profile photo from URL 본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다. 분석 레포트 : https://hackerone.com/reports/713 Summary이 취약점을 이용하면, 사용자는 모든 이미지 URL에 대한 이미지를 업로드 할 수 있다. html elements 요소에서, input type을 file 에서 url로 변경해 업로드 유형을 바꾼다. 그후, 텍스트 필드에 URL을 넣고, Enter 키를 누르거나, 프로필 업데이트를 클릭한다. 프로필 사진이 URL의 사진으로 변경된다.  Steps to Reproduce  해당 보고서를 통해서는 파일 업로드 기능도 SSRF 취약점에 악용될 수 있음을 알 수 있었다.
Dreamhack : CSRF Advanced Write-Up @app.route('/login', methods=['GET', 'POST'])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 pw == password: resp = make..
Dreamhack : csrf-2 Write-Up @app.route("/flag", methods=["GET", "POST"])# flag 페이지 라우팅 (GET, POST 요청을 모두 받음)def flag(): if request.method == "GET": return render_template("flag.html") elif request.method == "POST": param = request.form.get("param", "") session_id = os.urandom(16).hex() # 무작위 세션 ID 생성 후 16진수 문자열로 변환 session_storage[session_id] = 'admin' # 세션 ID를 키로 사용..
Dreamhack : csrf-1 Write-Up @app.route("/vuln")def vuln(): param = request.args.get("param", "").lower() xss_filter = ["frame", "script", "on"] for _ in xss_filter: param = param.replace(_, "*") return param@app.route("/admin/notice_flag")def admin_notice_flag(): global memo_text if request.remote_addr != "127.0.0.1": return "Access Denied" if request.args.get("userid", "") != "a..