From 4deb032708767099e167bfb88fad2fe9495fc0f7 Mon Sep 17 00:00:00 2001 From: "tv0924@icloud.com" Date: Thu, 26 Jun 2025 15:35:12 +0900 Subject: [PATCH] [Docs] api docs --- addon/csrf_check.py | 35 ++++++++++++++++++++++++++++----- lib/false_true_varifing_task.py | 1 + runner/backend/__init__.py | 4 ++-- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/addon/csrf_check.py b/addon/csrf_check.py index c64ec98..91b7e4e 100644 --- a/addon/csrf_check.py +++ b/addon/csrf_check.py @@ -76,10 +76,20 @@ class CsrfChecker: resp_nonce = self.get_query_param(loc, param) if param else None if resp_nonce is None: - report_vuln(title="CSRF Risk", desc="Missing nonce in redirect response", status="CRITICAL", uri=flow.request.url) + report_vuln( + title="CSRF Risk", + desc="Missing nonce in redirect response", + status="CRITICAL", + uri=flow.request.url + ) return 1 if orig_nonce != resp_nonce: - report_vuln(title="CSRF Risk", desc="Nonce mismatch request↔response", status="HIGH", uri=flow.request.url) + report_vuln( + title="CSRF Risk", + desc="Nonce mismatch request↔response", + status="HIGH", + uri=flow.request.url + ) return 1 return 0 @@ -103,7 +113,12 @@ class CsrfChecker: if new_nonce is None: return 0 if new_nonce == orig_nonce: - report_vuln(title="CSRF Risk", desc="Nonce reused without cookies", status="CRITICAL", uri=flow.request.url) + report_vuln( + title="CSRF Risk", + desc="Nonce reused without cookies", + status="CRITICAL", + uri=flow.request.url + ) return 1 # (2) 두 번의 리다이렉트 비교 @@ -120,7 +135,12 @@ class CsrfChecker: and urlparse(req1.headers.get("location", "")).path == urlparse(req2.headers.get("location", "")).path ): - report_vuln(title="CSRF Risk", desc="Identical redirects on nonce swap → potential CSRF", status="NOT-VERIFIED-HIGH", uri=flow.request.url) + report_vuln( + title="CSRF Risk", + desc="Identical redirects on nonce swap → potential CSRF", + status="NOT-VERIFIED-HIGH", + uri=flow.request.url + ) return 1 return 0 @@ -130,7 +150,12 @@ class CsrfChecker: # 1) 요청에 nonce 없으면 if is_oauth_uri(flow.request.url) and not self.check_nonce_in_request(flow): - report_vuln(title="CSRF Risk", desc="Missing nonce in OAuth request", status="CRITICAL", uri=flow.request.url) + report_vuln( + title="CSRF Risk", + desc="Missing nonce in OAuth request", + status="CRITICAL", + uri=flow.request.url + ) return # 2) 리다이렉트에서 nonce 검사 diff --git a/lib/false_true_varifing_task.py b/lib/false_true_varifing_task.py index 62865e1..45fa782 100644 --- a/lib/false_true_varifing_task.py +++ b/lib/false_true_varifing_task.py @@ -29,6 +29,7 @@ class FalseTrueVarifingTask: self._is_verifing = False self.task_queue.clear() + # 각 addon의 검증 로직에서 해당 함수를 호출하여, 추후 오탐 검증을 위한 작업을 추가할 수 있습니다. def add_task(self, task_name: str, data: Any): """ Add a task to the task queue. diff --git a/runner/backend/__init__.py b/runner/backend/__init__.py index 1410f52..a279cf5 100644 --- a/runner/backend/__init__.py +++ b/runner/backend/__init__.py @@ -42,8 +42,8 @@ async def start(url: str = Query(..., description="The URL to target for vulnera "/start-false-true-verifing", summary="시스템에 False-True 검증 작업 시작을 알림", description=""" -이 엔드포인트는 시스템에 False-True 방식의 검증 작업을 시작하도록 지시합니다. -또한 검증을 위해 준비된 작업 목록을 반환합니다. +이 엔드포인트는 시스템에 False-True 방식의 검증 작업이 시작되었음을 알립니다. +또한 시스템은 미리 준비된 오탐 검증 작업 목록을 반환합니다. """, tags=["2nd STEP"] )