Tweet Disematkan
الحربي
4.9K posts

الحربي
@az7rb
#Security Researcher & #bugbounty #eJPT #OSCP #OSWP
🇸🇦 Bergabung Mayıs 2014
362 Mengikuti13.6K Pengikut
الحربي me-retweet

كيف قدرت اكتشف ثغرات حرجة في اكبر شركة توصيل للطعام؟ فوق ال+20,000$
1- اختراق فوق ال380K الف مطعم
2- GraphQL Path Traversal Led to Modify Menu Price
3- سحب ارباح اي سائق في الشركه
حياكم الله ان شاء الله تستفيدون.
عند التعامل مع تارقت ضخم، اكبر خطأ هو انك تبدا مباشرة بالfuzzing او الريكون الغير مفهوم بدون فهم المنظومة. أول ما ركزت عليه هو اني افهم الـ Business Logic، لأن كثير من الثغرات الحرجة في المنتجات الكبيرة تكون منطقية اكثر.
الشركة عندها اكثر من نوع مستخدم: عميل يطلب (Customer)، سائق يوصل (Couriers)، مطعم يستقبل (Restaurant).
كل طرف له موقع وتطبيق خاص وAPIs مختلفه. عادة هذا يعني ان النظام معقد، ومع التعقيد تزيد الثغرات, وهذي افضل فرصة بالنسبة لك كبق هنتر انك تستعملهم كلهم عشان تطلع ثغره وهذا اللي صار.
-1 Stealing Money Allowing Withdrawal Of Couriers To Attacker. $3,000
زي ماهو واضح بالعنوان قدرت اني استغل الثغرة هذي بحيث ان فلوس سواق الشركه تتحول للبطاقتي.
بالبدايه بيجيكم تساؤل كيف قدرت القاها, للسواقين الشركه لهم تطبيق كامل قدرت اني ادخل على حسابي الي سويته وانا اتصفح التطبيق شفت شي غريب!
لفت انتباهي وجود ميزة مالية حساسة: “Fast Cash”. الفكرة بسيطة السائق يقدر يسحب أرباحه مباشرة على بطاقته بدل ما ينتظر التحويل المعتاد.
في اول ريكويست حاولت اسوي setup للمعلومات بطاقه بعدين جاني API غريب مربوط مع Stripe
عشان توضح الصوره Stripe يسوي Tokenize للبطايق للشركه هذي ويحفظها بسيرفر خاص ويعطي بطاقتك unique ID بحيث انها تكون محميه وهذا دايقرام بسيط يشرح الي يصير
زي ماهو موضح بالريسبونس عطانا توكن ايدي بناء على البطاقه طيب لو مشينا على الفلو حق التطبيق بنلاحظ الريكويست الثاني غريب جدا.




العربية
الحربي me-retweet

خضت تجربة مثيرة في مختبري الافتراضي: نفّذت هجمات محاكاة على طائراتٍ درونز داخل بيئة PX4 SITL — كل شيء داخل جهازي، بدون أي تأثير حقيقي أو بث لاسلكي.
لو عندك فضول تعرف أكثر عن الطريقة اللي طبّقتها أو نتائج التجربة بطريقة مبسطة، اقراء المقالة!
@z2.p/breaking-the-sky-px4-drone-hacking-for-beginners-%D8%A7%D8%AE%D8%AA%D8%B1%D8%A7%D9%82-%D8%A7%D9%84%D8%B3%D9%85%D8%A7%D8%A1-%D8%A7%D8%AE%D8%AA%D8%B1%D8%A7%D9%82-%D8%B7%D8%A7%D8%A6%D8%B1%D8%A7%D8%AA-px4-%D8%A8%D8%AF%D9%88%D9%86-%D8%B7%D9%8A%D8%A7%D8%B1-c2a1a1f9d7f4?postPublishedType=initial" target="_blank" rel="nofollow noopener">medium.com/@z2.p/breaking…

العربية

@W4L33Dx @THiddenCastle الف الف الف مبروك حبيبي وليد ابو خالد يتربى بعزك ❤️
العربية

الحمد لله على التمام
الفرحة صارت فرحتين
فزنا في سي تي اف #BHMEA25
وكل الشكر للتيم البطل @THiddenCastle
وجاني ولد بنفس الوقت يا ربي لك الحمد
اللهم انتبه نباتا حسنا واجعله من عبادك الصالحين
ما شاء الله تبارك الله

العربية

الحمد لله، فخور بتحقيقي المركز الأول كأفضل باحث سعودي في مسابقة مكافآت الثغرات ضمن فعاليات Black Hat 2025.
شكرًا للاتحاد السعودي للأمن السيبراني، وشكرًا لمنصة اكتشاف الثغرات على دعمهم الدائم للكوادر الوطنية.🇸🇦
القادم أقوى بإذن الله
#BHMEA2025

العربية
الحربي me-retweet

🛑 كيف اخترقت نظام نقاط الولاء في شركة اتصالات وحصلت على رصيد مجاني + مكافأة 41k 💰 🛑
السلام عليكم حياكم الله جميعًا
في مقالة اليوم راح اتكلم عن ثغرة لقيتها في احد جهات الاتصالات واللي الحمدلله بسببها حصلت على وحده من اعلى المكافآت بمبلغ 41 الف ريال.
—————————
بالبدايه هذا الابلكيشن كان عبارة عن موبايل ابلكيشن تابع لأحد اكبر جهات الاتصالات من خلاله تقدر تدير رقمك وفيه قسم مثل المتجر ومزايا ثانيه فا كان كبير نوعًا ما، وكانت حماية الابلكيشن لابأس بها والابلكيشن انفحص عدة مرات فا كنت متاكد موضوع انك تلقى ثغرة بسهولة صعب…
طبعاً كان فيه نسختين من الابلكيشن IOS/Android، فا بديت بال IOS وكانت من ضمن الحمايات فيه encryption لل request body على بعض النفكشنز فا كان عشان تعدل على قيم الباراميترز يتطلب منك تفك التشفير اول، فا تركتها على جنب وبديت بفهم الابلكيشن وكيف تشتغل الفنكشنز داخله.
بعد مافهمته زين بديت افحصه، طبعًا بحكم حجم الابلكيشن جلست قرابة الشهر بشكل شبه يومي افحصه، وطلعت كم ثغرة في اكثر من فنكشن ولكن فيه وحده من الفنكشنز شدتني اكثر واللي هي نقاط الولاء
بحكم انه ابلكيشن لجهة اتصالات، فا كانت احد المزايا الموجوده داخله هي نقاط الولاء الي من خلالها تقدر تشتري اجهزة/بطاقات …الخ، فا قررت اني اتعمق بفحص هذا الميزة، فا كانت احد الخيارات انك تقدر تشتري نقاط ولاء عن طريق انك تدفع مبلغ ويتحول هذا المبلغ الى نقاط ولاء بالتطبيق، طريقة عملها كانت كالتالي:
١- يطلب منك تكتب كم تبي تشحن نقطة ولاء
٢- بعدها يسوي عملية حسابية عشان يطلع السعر بحيث مثلا لو كتبت 100 نقطة راح تدفع 90 ريال.
٣- يحولك على صفحة الدفع، وبعد الدفع تنضاف لك النقاط لحسابك.
جربت تكنيكات كثير ولكن المبرمج كان حاسب حسابه ولا ضبط اي شي، ولكن فيه تكنيك رهيب واللي هو
E notation bypass
ولا اتوقع انه قد مر على الكثير لان نادر يصير، فا خلني ابسطه لك بشكل بسيط:
طبعا ال e notation هو مصطلح بالرياضيات (لاتسكب معليك مب كلاس كالك)، عشان تتضح فكرته لنفرض عندنا القيمة هذي:
كيف ممكن نكتبها بطريقة ثانية ولكن بدون علامة الضرب؟
هنا يجي دور ال E notation، والي تسمح لك تكتب نفس المعادلة ولكن بدون علامة الضرب فا تصير بهذا الشكل:
فا حرف ال E بهذي الحالة معناه = x10 واي شي يجي بعدها يصير كـ اُس للعشرة، فا بكذا تصير: اربعة ضرب عشرة اُس اثنين.
طيب ياناصر كيف استفدت من هذا الشي بحالتك؟
اللي صار ان بالخطوة الاولى لما يطلب مني اكتب كم نقطة بشحن، بدال ما اعطيه رقم عادي مثل 400 نقطة، بعطيه 4e2 (تساوي 400) واشوف كيف يتعامل معها
لكن واجهتني مشكلة بسيطة، لما جيت اجرب التكينك كان الابلكيشن لما يطلب منك تكتب عدد النقاط كان يطلع لك كيبورد ارقام بس + الريكوست body كان مشفر:
فا ماقدر اكتب حرف ال e،، وقتها لو بحاول افك التشفير ممكن الموضوع يطول وانا بس بجرب هذا التكنيك فا جتني فكرة وقتها اني انسخ 4e2 من اي تطبيق ثاني بعدها اسوي paste بال input، وفعلًا جربتها وضبطت وسويت submit.
الغريب ان الي صار ان الابلكييشن رجع لي error بالرسبونس ولكن حولني لصفحة الدفع ومكتوب:
--------
عدد النقاط المطلوب شحنها: 400
المبلغ الاجمالي المطلوب دفعه: error
--------
فا هنا نستنتج شيئين:
١- ان الابلكيشن قدر يتعرف على القيمة 4e2 ويحولها الى رقم 400
٢- الابلكيشن لما وصل عند العملية الحسابية عشان يحسب لي التوتل اللي بدفعه صار error، وماقدر يفهم القيمة اللي كتبتها
بما ان طلع لي error بالتوتل، فا قلت اجرب ادفع واشوف هل بيضبط الدفع او لا؟
وفعلاً جربت ولكن اللي صار ان مانجح الدفع وطلع لي error، فا بهذي الحاله حللت وش سبب انه ما ضبط الدفع وتوقعت انه ممكن يكون بسبب ان مافيه amount بدفعه فا منطقيًا بيطلع error.
فا رجعت لصفحة اضافة النقاط وسويت نفس الخطوات ولكن كبشرت الريكوست وعدلت على الريسبونس بدال ماكان التوتل = error، خليته التوتل=1 ،
وطلع لي بصفحة الدفع:
----------
عدد النقاط المطلوب شحنها: 400
المبلغ الاجمالي المطلوب دفعه: 1 SAR
----------
وفعلًا جربت ادفع، والمفاجأة ان الدفع ضبط وسحب مني ريال وانضافت لي النقاط (400 نقطة) (:
وبكذا قدرت اشحن رصيد بدون ليميت بشكل مجاني تقريبا، ومن خلال هذا الرصيد اقدر:
١- اشتري اجهزة
٢- بطاقات شحن
٣-احوله لرصيد برقم الجوال واستخدمه بالدفع ببعض المتاجر
فا كان الامباكت جددًا عالي من هذي الثغرة وتم تصنيفها كحرجة (critical), طبعًا تم ابلاغ الشركة وتصلحت الثغرة والحمدلله تمت مكافأتي بمبلغ 41 الف ريال.
بالنهاية شكراً على وقتكم وقراءتكم، وانتظروا القادم 🔥



العربية

Awarded $25,000 (max bounty) by Ubiquiti for a Remote Code Execution (RCE) in UniFi Access Application via @Hacker0x01.
CVE: CVE-2025-52665 (assigned).
Patch is live → community.ui.com/releases/Secur…
Huge thanks to the Ubiquiti security team.
Full research will be published by the Catchify team.
⚠️ Update your systems now.
الحمد لله
تم منحي أعلى مكافأة 25,000$ من Ubiquiti نظير ثغرة RCE في UniFi Access Application عبر @Hacker0x01.
رقم الثغرة (CVE): CVE-2025-52665.
البحث التفصيلي سينشره فريق Catchify قريبا.
⚠️ حدثوا أنظمتكم في نظام UniFi Access.
#InfoSec

English
الحربي me-retweet

الحمدلله ❤️، أخيراً جبنا شهادة من @offsectraining 😄,
بفضل الله حصلت على شهادة OSWA الخاصة بإختبار إختراق تطبيقات الويب من OffSec
Thanks @offsectraining

العربية

♦️كيف قدرت اخترق نظام شركة اتصالات واخذ رصيد مجانا♦️
السلام عليكم وحياكم الله،
هذا بارت 2، شيك على بارت 1 قبل نبدا (بأول كومنت)
بعد ماحصلت بعض الثغرات، كملت على الموقع وافحص اي ميزة ثانيه، اللي لاحظته كانت فيه ميزة تسمح لك تضيف رصيد لرقم جوالك، فا قررت اتعمق بهالميزة وافهمها اكثر:
١- عندك خيارين لإضافة رصيد يا تختار خيارات جاهزة مثل (20, 50, 100) او تحدد رصيد معين تشحنه.
٢- بعد ما تختار الرصيد راح يرسل ريكوست لصفحة الدفع + يضيف على الرصيد قيمة الضريبة المضافة.
٣- بيطلب منك تدفع وبعدها ينضاف لك الرصيد على رقمك.
بعد مافهمت كيف تشتغل، جيت اجرب اضيف رصيد معين جربت اكتب 0، ولكن منعني لازم الرصيد يكون اكثر من 10 ريال.
طبعا تخطيها ايزي عن طريق انه كان client side check فا عدلت على الريكوست وحطيت 0، ولكن المبرمج كان حاسب حسابه وطلع لي ايرور ان لازم تكون القيمة اكبر من 0 عشان تقدر تشحن.
جربت احط قيمة بالسالب، ونفس الايرور طلع لي…
تركت هذي الميزة على جنب وكملت فحص الموقع، ولاحظت شي غريب فيه بعض الباقات تكون مجانية مثل باقة تحجب المكالمات الدولية،
ضفتها للسلة وضغطت على زر checkout ولاحظت ان السعر كان صفر ومع ذلك حولني لصفحة الـcheckout، والغريب انه على طول لما شاف السعر صفر, بدون دفع على طول سوا لي confirm للطلب.
فا هنا استنتجت شيئين:
١- اذا كانت (باقة) وسعرها 0، ماراح يمنعك وراح يعدي الطلب عادي ✅.
٢- اذا كان سعر المنتج 0، مجرد ماتضغط على checkout "ماراح" يحولك لصفحة الدفع على طول بيسوي لك تاكيد للطلب.
الى الان كل شي ماشي صح وواضح، وقتها رجعت لصفحة اضافة الرصيد وفحصتها من جديد،،
تتذكرون الايرور الي يطلع لو حطيت 0، كانت اذا القيمة 0 يطلع ايرور طيب وش راح يصير لو عطيته 0.1؟
بعد تحليل طويل للابلكيشن، اللي وصلت هو كتالي:
١- التحقق كامل يكون على قيمة الشحن، انها لازم تكون اكبر من 0، بمعنى 0.1 راح تعدي التحقق ✅.
٢- المبرمج فقط يعتمد على اول خانتين بعد الفاصلة في عملية الدفع، واللي بعد الخانتين يتجاهلها، فا لو اجمالي الطلب 10.5544، اي شي بعد ال 55 ماراح يحسبه لما تجي تدفع… المطلوب تدفعه 10.55 .
٣- بمعنى، لو عطيته قيمة شحن، تكون بعد اضافة الضريبة الاجمالي حقها يبدا بـ 0.00XX، بصفحة الدفع راح يعتبر القيمة الاجمالية 0.
بعد مافهمته زين، قلت وش راح يصير لو عطيته هذي القيمة (0.005)؟
بعد محاولات معه وصلت لهذي النتيجة:
لو حطيت قيمة شحن الرصيد 0.005 ريال، بيزود الضريبه، فا راح يكون السعر النهائي (0.00575):
وبكذا حققنا الشرطين:
١- يكون السعر الاجمالي اكبر من صفر ✅
٢- اول خانتين بعد الفاصلة 00 ✅
واللي صار ان الابلكيشن بسبب طريقة التحقق اعتبرها لي 0، وبما انه صفر أكد لي الطلب مباشرة بدون دفع 🔥
وفعلًا قدرت اشحن 0.005 كرصيد، بشكل مجاني…
طبعًا بهذي الحاله كان مطلوب مني سكربت يثبت مدى خطورة الثغرة، وفعلا سويت سكربت يسوي automate العملية كاملة وخلال دقيقتين رصيدي زاد لـ 100ريال بدون ما ادفع شي.
طبعا الخطورة كانت حرجة لعدة اسباب، من ضمنها ان رقم الجوال كنت اقدر اضيفه واستخدمه كطريقة دفع في متاجر مثل app store وفيه طرق كثيره تقدر تسويها عشان بالنهاية تحول هذا الرصيد الى $$$ بحسابك بالبنك.
ووقتها تستطيع شراء ميسي اكيد 🤣
———————-———————-——————
♦️Account Takeover - logs leakage ♦️
طبعًا الشركة كان عندهم اكثر من سب دومين، احدهم كان sso الي هو مسؤل عن تسجيل الدخول، فا من خلال ال recon، طلعت ip السب دومين، طبعا بتسالني ليش سويت كذا ؟
هذا الشي يضبط معي مرات، ان يكون السيرفر عليه اكثر من ابلكيشن ولكن تكون موجوده على ال ip سواء بهوست نيم مختلف او بورت مختلف….
فا بحثت بـ shodan عن ال ip، وطلع لي ابلكيشن ثاني شغال على السيرفر، فا لما فتحت الابلكيشن كان يعطيني 403 error.
طبعا هنا كثير يغفل عن انه يسوي fuzzing، وفعلا سويت fuzzing وطلع معي احد الاندبوينتس واللي كانت
/logs/error
كانت صفحة فيه live logs لريكوستات الـSSO، وبما انه logs ال SSO، كان فيها ريكوستات موجود فيها ال Auth Token حق اي يوزر يسوي لوقن…
طبعًا اقدر اخذ هذا ال Auth Token، واستخدمه وادخل حسابات المستخدمين واتحكم بأرقامهم او احول ارصدتهم … الخ, فاكان الامباكت جدًا عالي.
يعطيكم العافية على وقتكم، وترقبوا القادم👀🔥
#bugbountytip #PenetrationTesting



العربية
الحربي me-retweet

Finally, with @hw16, we managed to bypass the @Cloudflare mTLS protection after around 5 days of work. I'd like to share a few golden tips for bug bounty hunters who might face something similar in the future. But first, here's a quick summary:
The target was a banking app with multiple security layers:
• Heavy Frida detection mechanisms
• Strong root detection
• Google SafetyNet/Play Integrity checks
• Runtime hooking detection
• APK tampering protection (crashed immediately if repackaged/modified)
At first, @fridadotre was detected and crashed the app on my device but strangely worked on another device even though both had the same Android version, root method, Frida server version, and architecture. After investigation, we discovered the app had anti-hooking detection that triggered when using aggressive Frida hooks on sensitive KeyStore operations.
The Solution:
We wrote a minimal Frida script that:
1. Passively monitored certificate operations without modifying behavior
2. Intercepted KeyManagerFactory.init() - the exact moment when mTLS certificates are loaded
3. Extracted the X.509 client certificate and RSA private key (4096-bit)
4. Encoded them using Android's Base64 encoder
5. Formatted as PEM files ready for use
Found the mTLS certificate with a unique UUID-based alias in the Android KeyStore. The certificate was being dynamically loaded during the SSL handshake initialization
Extracted Files:
• client_cert.pem → Client certificate (valid for 2 years)
• client_key.pem → RSA private key (PKCS#8 format)
We then created a PKCS#12 bundle using OpenSSL to combine the certificate and key into a single file, which could be imported into various tools and browsers for testing or @Burp_Suite
Key Takeaway:
When facing anti-tampering mechanisms, be surgical hook only what you need, when you need it. Aggressive hooking triggers detection; passive monitoring flies under the radar.
This was an awesome challenge and my first time encountering such strong ssl Pinning defenses
Attached some image from the mobile api and frida output the certificates
#bugbountytips #frida #Magisk #mtls



Tur.js@Tur24Tur
Did @Cloudflare just defeat @Burp_Suite and @CaidoIO? Cloudflare protection is becoming very common. This is the third app I’ve seen using it. Changing the user agent doesn’t help, and Burp TLS-fingerprint bypass plugin didn’t work. The app blocks any request when it detects traffic interception My target mobile app might be using a dynamic certificate based on my friend analysis. Back in Nov 2024, I tested a web app with Burp, but it blocked all traffic. Switching to Caido worked, maybe its signatures weren’t detected at the time. Can anyone share insights? thanks #BugBounty
English
الحربي me-retweet

مجانًا ولجميع السعوديين والسعوديات دون استثناء..
#سدايا تطلق مبادرة (مليون سعودي للذكاء الاصطناعي)، لتعلم مبادىء الذكاء الاصطناعي عبر برنامج متخصص يزود المتدربين من مختلف الأعمار بالمهارات اللازمة لمعرفة هذه التقنيات المتقدمة:
-تنفيذ البرنامج عن بُعد.
-يتم وفق أعلى المعايير الدولية.
-أريحية للراغبين في التسجيل للانخراط فيه بكل يسر وسهولة من أي مكان في العالم.
-مجانًا وباللغة العربية.
-لجميع المواطنين والمواطنات دون استثناء.
-المتدربون يحصلون بعد إنهاء ساعات التدريب على شهادة تدريب معتمدة من سدايا.
العربية











