Dagen | Security
747 subscribers
62 photos
14 files
100 links
هر سیستمی یک نقطه ضعف دارد و هر نقطه ضعف فرصتی است برای تولد یک افسانه.



persian books channel : @persian_b_sec

Writups channel : @pocofBugs

No message
Download Telegram
فرایند کشف آسیب پذیری PDF-based Stored XSS روی یک وبسایت فروشگاهی ایرانی

اول از همه بریم ببینیم اصلاً PDF-based Stored XSS چیه.

همون‌طور که می‌دونید Stored XSS جزو آسیب‌پذیری‌های خطرناک محسوب می‌شه، چون Payload روی سرور ذخیره می‌شه و هر کسی که بهش دسترسی داشته باشه، اکسپولیت می‌شه.

معمولاً برای پیدا کردنش سراغ پروفایل کاربری، احراز هویت، کامنت‌ها، تیکت‌های پشتیبانی و جاهایی که از کاربر ورودی گرفته میشه میریم.

ولی خیلی وقت‌ها WAF ( Application Firewall) اجازه نمیده Payload های مخرب xss  جواب بدن و باعث بلاک کردن پیلود میشن .


اینجاست که آپلود فایل PDF مخرب می‌تونه راه خوبی برای رسیدن به Stored XSS باشه، چون PDF می‌تونه javascript parsing داشته باشه و خیلی از سایت‌ها این موضوع رو جدی نمیگیرن.

چطور به این آسیب‌پذیری می‌رسیم؟

اول باید Payload یا کد کد مخرب جاوا اسکریپت رو داخل یک فایل PDF تزریق کنیم. بعد اون فایل رو توی بخش‌هایی که سایت اجازه آپلود فایل میده، آپلود می‌کنیم؛
مثل:
حساب کاربری، تیکت‌های پشتیبانی، ارسال مدارک، نظرات و موارد مشابه
وقتی فایل مخرب پشت صحنه آپلود می‌شه، اگه سایت فایل PDF رو مستقیم داخل مرورگر نمایش بده و محدودیتی روی محتوای فعالش نداشته باشه، مرورگر میاد کدهای JavaScript داخل PDF رو اجرا می‌کنه. Payload ما (مثلاً alert) اجرا می‌شه و یعنی به Stored XSS رسیدیم.

نکته مهم: این رفتار معمولاً روی مرورگر Chrome بهتر دیده می‌شه.

چه زمانی باگ حساب نمی‌شه؟

بعضی وقت‌ها بعد از آپلود فایل مخرب، مرورگر به‌جای اجرا کردن PDF، فایل رو دانلود می‌کنه یا اصلاً اجازه اجرای کد رو نمی‌ده. این یعنی سایت تنظیمات امنیتی بهتری داره و عملاً به Self XSS یا عدم بهره‌برداری می‌خوریم و باگ قابل سوءاستفاده‌ای وجود نداره.

چطوری این باگ رو کشف کردم؟

داشتم یکی از فروشگاه‌های اینترنتی ایرانی رو بررسی می‌کردم که دیدم توی بخش تیکت پشتیبانی امکان آپلود فایل PDF وجود داره. فایل PDF مخرب خودم رو اونجا آپلود کردم و به محض اینکه روی فایل کلیک کردم، Payload اجرا شد و به باگ رسیدم.

این آسیب‌پذیری روی یکی از Subdomainها بود. طبیعتاً اگه همین مشکل روی دامنه اصلی وجود داشت، شدت باگ خیلی بالاتر حساب می‌شد و پاداش بیشتری هم می‌شد گرفت.

@dagen_security
11👍1
👍75
چجوری یه sqli توی سرویس api تارگتم زدم !؟

داستان از این قراره که توی پرورگرم پابلیکی که سه ماه توش مشغول به کار بودم یه باگ خیلی خطرناک پیدا کردم. چجوری این باگو پیدا کردم ؟
پرورگرم هر اشکال امنیتی از سابدامین های خودش رو به عنوان یه باگ لجیت قبول میکرد .

به عنوان یه مهاجم همیشه دوس دارم برم و نقاط کور رو تست کنم و جایی مشغول به کار شم که هانتر کم تری به اونجا سر زده
پس من به عنوان اولین قدم خودم یه واید ریکان سنگین انجام دادم و یه سری سابدامین در اختیارم اومد , بعده دونه به دونه چک کردن همه سابدامین ها من به سابدامین سرویس ای پی آی رسیدم .!

برای مثال : api-prod.target.com


وقتی صفحه رو باز کردم چیزی به چشمم نخورد و با صفحه خالی مواجه شدم . چیزی که هر هانتری برای تست میره سراغش این مورداست :

1 - فاز معمولی و فاز با اکستشن های مختلف
2- وی بک
3 - گوگل دورکینگ با انجین های مختلف
4- سرچ توی گیتهاب یا بیت باکت و ..


همه اینکارارو انجام دادم و در اخر هیچ چیزی دست گیرم نشد و یه سری مسیر چرت رسیدم که بدرد من نمیخورد .
خب من میدونستم که قبل از من کلی هانتر اینکارو هزارن بار انجام دادن و شاید نتیجه ای نگرفتن و گفتن شاید این سابدامین باگی نداره و رهاش کردن

ولی من به شاید ها کاری ندارم , من باید به عنوان یه هانتر برم و باگو پیداش کنم و گزارشش بدم .

Time based SQL injection :

پکت رو توی برپ سوییت باز کردم و فقط به پکت نگاه کردم .

گوشه ذهنم میدونستم که وبسایت ها میتونن یه سری داده و اطلاعات رو از کاربر ذخیره کنن و یدونه از اون اطلاعات User-agent هستش و این User-agent ممکنه بشینه توی دیتابیس و یا نوعی insert بشه .
پس ترت مدل من این بود که برم یه time-base-sqli توی user-agent تست کنم و با خواب رفتن سرور متوجه این بشم که اسیپ پذیری وجود داره .

خب بیایم یه شبیه سازی تو ذهنمون داشته باشیم فرض بگیریم یه همچین چیزی(insert) توی دیتابیس وجود داره :

insert into table ('user-agent') VALUE ('$INPUT')


اگه همچین چیزی اون پشت داشته باشیم پس من باید با ' بریک کنم و کوعری sleep رو اجرا کنم . پیلودی که به ذهنم رسید رو تست کردم :

' + sleep(15) + '


اتفاقی که واسه پشت صحنه میوفته :

insert into table ('user-agent') VALUE ('$INPUT' + sleep(15) + '')


این دقیقا چیزی بود که من تستش کردم و کاملا منطقی بود, ما از پلاس توی sql استفاده میکنیم تا رشته ها رو به هم کانکت و به نوعی عملیات جمع انجام بدیم . تست کردم ولی هیچ اتفاقی نیوفتاد ✖️

سریع از لابراتور انلاین sql استفاده کردم و همین کد با همین فرضیه رو تست کنم و به یه خطای مهم رسیدم :
پارسر sql میگفت من گیج شدم و نمیتونم اینو اجرا کنم. چرا ؟ چون تو میخوای یه استرینگ خالی رو با استرینگ پر و یه اسلیپ رو با هم کانکت کنی ! همچین کاری رو نمیتونی انجام بدی !

اهاا. یه تریک ریز به ذهنم رسید. چی میشه اگه من مقدار User-agent رو پاک کنم و پیلود خودمو بزارم ؟

User-agent: ' + sleep(15) + '

insert into table ('user-agent') VALUE ('' + sleep(15) + '')


15 ثانیه رفت به کما و تمام. باگ تایید شد ☺️

تمام نکته این بود که باید رشته پاک میشد تا جواب بگیری . فقط کپی پیست پیلود کافی نیست باید تحلیل کنی .🫡

امیدوارم از این سناریوی باگ ریل ورد دید خوبی گرفته باشید انرژی فراموش نشه
⚡️

@Dagen_security
🔥1372
وقتی رایتاپ های هانتر هایی مثل اورنج , سم کری و فرنس روزن رو میخونی و از این هانترای فوق العاده یاد میگیری ناخود اگاه حس خوشحالی بهت دست میده چون هر تیکه ای از رایتاپ های این افراد لذت خالصه
بهت یاداور میشه که تو به عنوان یه هانتر کجای مسیرو توی تستایی که انجام میدی داری میس میدی و از کنارشون بی تفاوت میگذری ؟


+ رایتاپ رو مداوم بخون و اگه میخوای هانتر موفقی بشی حتما به تاپ صد هکروان رجوع کن ✔️
@Dagen_security
15👍4
👍8
Forwarded from Sec book Mind
Xss-methodology (2).pdf
231.8 KB
چیت شیت متدولوژی xss

#رایگان_برای_اعضای_چنل
9
Forwarded from Sec book Mind
node-serialize RCE (2).pdf
1 MB
آسیپ پذیری rce از طریق node serialize

#فارسی
#رایگان_برای_اعضای_چنل

@persian_b_sec
4
Forwarded from Sec book Mind
XSS_in_Next_Js(1) (5).pdf
362.2 KB
تزریق کد مخرب جاوا اسکریپت (Xss) در اپلیکشن های نکست جی اس

#فارسی
#رایگان_برای_اعضای_چنل
❤‍🔥5
اوضاع اینترنت هنوز بلاتکلیفه و امیدوارم که زودتر اینترنت (حق حیاتی ما) وصل بشه
نزدیک دو هفتر یا بیشتره که هیچ هانتی نکردم و دارم مطالعه میکنم
به بچهای هانتر پیشنهادم اینه که توی این روزا فارغ از احساستون مطالعه کنید و از گلدن تایم روزتون بیشترین استفاده رو ببرین تا از مسیر خارج نشدید و اپدیت بمونید

منم کنارتونم و سعی میکنم هر چیز ارزشمندی که باعث میشه به دانشتون اضافه کنه رو توی چنل قرار بدم

به امید روزای درخشان تر ⚡️
❤‍🔥10👍41
نظرتون راجب کوییز چیه رفقا ؟
8👍6👎1
سطح سوالا رو دوست دارید ؟ :)
سعی کردم سولایی بیارم که ذهنتونو مشغول کنه و ایزی نباشه , ادامه بدیم یا کافیه ؟

@Dagen_Security
👍192👎1
سوال 1 از دید فنی اشتباهه رفقا

میدونم که پیش خودتون گفتید مرورگر که jwt رو خودکار نمیزاره توی درخواست ها پس چجوری ممکنه csrf بشه ؟
مگه نباید اندپوینت با کوکی کار کنه ؟
درسته . csrf غیر ممکنه .
ولی یه شرطی داره اگه توی اون سایت xss داشته باشیم چطوریه داستان ؟
با تزریق کد جی اس ما میتونیم با وب سایت سیم اورجین بشیم و jwt رو از داخل لوکال استوریج بخونیم و یه درخواستی بنویسیم که هدر Authorization رو بگیره و اضافه کنه و ما با هویت کاربر درخواست بفرستیم و تیک اورش کنیم .

ولی باگ اصلی میشه Account Takeover via XSS
4
بریم سراغ کوییز امروز ☕️
ولی قبلش یه انرژی خفن بدید رفقا
8❤‍🔥4
فرض کن یه وب‌اپلیکیشن روی Cloud Deploy شده و S3 Bucket یا Blob Storage اون Public مونده. این مشکل بیشتر به چی برمی‌گرده؟
Anonymous Quiz
15%
Broken Access Control
28%
Sensitive Data Exposure
47%
Security Misconfiguration
10%
Insecure Design
یه وب‌اپلیکیشن ورودی کاربر رو فقط داخل Server-Side Template استفاده می‌کنه.
هیچ exec یا systemای در کار نیست و می‌گن «Sandbox فعاله».
کدوم حالت می‌تونه به RCE ختم بشه؟
Anonymous Quiz
12%
XSS که باعث اجرای JavaScript می‌شه
12%
SQL Injection بدون دسترسی به فایل
3%
تغییر محتوای HTML خروجی
73%
Template Injection که به Runtime یا ClassLoader برسه
Name : Evasive Malware ✍️


برای ترجمه بعدی نظرتونه ؟🔥

channel : @persian_b_sec
👍8