
يوضح أداة استعلام تعداد حسابات Gitea: طلب PUT /api/v1/user/following/{username} الموثق يعيد 204 للحسابات المخفية و404 للأسماء غير المعروفة، مع مختبر loopback.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · gitea-follow-existence
Gitea 1.27.3 - Gitea
GetInfo يُرجع بالفعل 404 للمستخدمين المخفيين ويكذب بشأن السبب: fake ErrUserNotExist error message to not leak information about existence. PUT /user/following/{username} يحمّل الهدف عبر UserAssignmentAPI() ويستدعي Follow. لا يوجد IsUserVisibleToViewer. اسم غير موجود: 404 user redirect does not exist. اسم مخفي موجود: 204.
204 يعني أن الحساب موجود. 404 يعني أنك خمّنت اسمًا غير موجود. يبقى JSON الملف الشخصي مغلقًا.
| ID | لا يوجد CVE بعد |
| CWE | CWE-203 |
| CVSS | متوسط: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N |
| المنتج | Gitea |
| المتأثر | حتى v1.27.3 (146cc3e) |
| المصادقة | حساب مسجّل الدخول |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
تسجيل الدخول (التسجيل المفتوح الافتراضي رخيص). إثبات أن حسابًا مخفيًا أو محدودًا موجود حتى عندما يُرجع API الملف الشخصي 404. لا استخراج للملف الشخصي. لا git خاص. بالاقتران مع unauth stargazers، يمكنك العثور على تسجيل دخول مخفي على مستودع عام ثم تأكيد أنه لا يزال موجودًا بعد إخفاء الملف الشخصي.
Check و Unfollow يقعان على نفس المجموعة. نفس الفحص المفقود.
نفس تمرير الرؤية مثل stargazers. عندما يعمل معالج بهذا الجهد للكذب، تنظر إلى كل مسار آخر يأخذ {username}. Follow لا يفعل ذلك.
سجّلت مهاجمًا مقيّدًا، تابعت الاسم المخفي، تابعت اسمًا غير موجود، وقارنت رموز الحالة. من المفترض أن يُرجع المستخدمون العامون 204. هذا ليس SUCCESS. مخفي 204 مقابل غير معروف 404 بينما GET يُرجع 404 هو SUCCESS.
المنعطفات الخاطئة المسجّلة بالفعل: Follow المخفي يُرجع 404 (إذن الرؤية مفعّلة على هذا المسار)؛ JSON الملف الشخصي للمستخدم المخفي (GetInfo يُرجع بالفعل 404 - هذا الخطأ هو فئة الحالة، وليس استخراجًا)؛ اعتبار Follow 204 على مستخدم عام SUCCESS؛ reverse shell. مسرح.
cd lab
./run.sh
استهدف فقط http://127.0.0.1:18134. يسمح Compose برؤية public,limited,private.
get-hidden status=404
follow-hidden status=204
follow-unknown status=404 user redirect does not exist
oracle hidden=204 unknown=404
SUCCESS GITEA-FOLLOW-ORACLE
استدعِ IsUserVisibleToViewer في Follow (و Check/Unfollow) قبل FollowUser. يجب أن تُرجع الأسماء المخفية 404 بنفس الطريقة التي يفعلها GetInfo بالفعل.
follower.go · api.go following group · GetInfoGNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. لا ضمان.