18

يونيو

التحويل المفتوح – Open Redirection

الـ Open Redirection او فى رواية اخرى URL Redirect او Cross-site Redirect او Cross-domain Redirect او Unvalidated Redirects كلهم مصطلحات بيرموا على نفس التعريف واللى هوا ان موقع بيحولك لموقع تانى بدون التحقق من المكان اللى هيحولك ليه، بمعنى ان فيسبوك يرميك على جوجل بدون ما يتحقق من ان هل جوجل دا موقع خبيث او صالح للاستخدام، بالشكل دا هنستفيد ايه؟ ان اى موقع مصاب بالنوع دا من الثغرات ممكن يحول الضحيه\المستخدم لموقع تانى نسخه طبق الاصل منه بس مزيفه تقوم تقولك يابرنس انت معملتش login معلش دخل اليوزر نيم بتاعك والباسوورد من جديد، طبعا اليوزر مش واخد باله من ال URL بما انه ركز فيه فحت قبل ما يضغط عليه وبالتالى لقيه موثوق بالشكل دا
https://www.Trusted WebSite.com/redirect.php?tosite=http://www.Evil WebSite.com
فطبعا اليوزر مخدش باله غير من اول مقطع فقط ومبصش عالباقى خالص اذن هيتعامل مع الصفحه اللى قدامه زى بدون اى شك فهيدخل باسوورده واليوزر نيم الخاص بيه وشكرا تم اصطياده بنجاح دى بشكل عام ثغرات “التحويل المفتوح” او “التحويل الغير متحقق منه”.
­­
ثغرة زى دى بتتقبل ومبتتقبلش فى شركات كتيره منها الكبيره والصغيره، يعنى كمثال جوجل مش بتقبل النوع دا من الثغرات خالص مهما كانت خطورته الا فى حالات نادره هشرحها فى نفس البوست هنا بعدين، فيسبوك بتقبل النوع دا وش مهما كان صغر حجم تأثيره المهم ميكونش بيعدى على ال Link Protection System الخاص بفيسبوك واللى اسمه Linkshim ودا بردو هشرحه بعدين.
­­
[*] اسبابه؟
الاوبن رى دايركت غالبا بيبقى خطأ مبرمج ميعرفش او معندهوش علم بكم الكوارث اللى ممكن تحصل من ورا ثغرة زى دى، فهتلاقيه بيستسهل وهوا بيكتب الكود ومباشرة بيقوم بالتحويل بمجرد ما يستلم ال URL اما بيكون ثابت او من امداد اليوزر نفسه ، فبيقول لنفسه ياراجل يعنى هوا ايه اللى ممكن يحصل؟
­
اجاوبك انا على السؤال دا، اللى ممكن يحصل حاجات كيوت وبسيطه زى:
1- اى مهاجم هيستهدف مستخدم من مستخدمى موقعك “دا لو كان عليه القيمه يعنى وان اليوزر بيساويله كام دولار بالنسبالك” مش مبيساويش حاجه زينا كعرب كدا، بمجرد ما هيستهدفه هيقدر بسهوله انه يقنعه بأنه يدخل موقع مشبوه بشكل سلس جدا من خلال موقعك انت، يعنى بمعنى اصح موقعك اصبح بوابة دخول جهنم  ومع ان اليوزر مش حابب يدخل جهنم بس علشان ثقته فيك هيلبس فيها بسهوله.
2- ممكن يخترق حساب حد من مستخدمى موقعك بسهوله جدا لو توفرت شروط معينه هشرحها بردو بس بعدين
3- لو كنت حد فشيخ وموقعك مؤمن ضد ال CSRF وال XSS ففى تركاية ممكن تتعمل هنا هتخلى الاتاكر يقدر يسرق داتا مهمه من حساب احد مستخدميك
4- … دوروا انتوا شويه واتعبوا بقى ليها استخدامات كتيره.
­
[*] اشكال من الاكواد المسؤوله عن التحويل فى لغات البرمجة المختلفة “OWASP” :
-Java
response.sendRedirect(“http://www.mysite.com“);
­
-PHP
<?php
/* Redirect browser */
header(“Location: http://www.mysite.com/“);
?>
­
ASP.NET
Response.Redirect(“~/folder/Login.aspx”)
­
-Ruby on Rails
redirect_to login_path
­
طبعا الاكواد اللى فاتت بتوضح قد ايه مدى امان التحويل لأن ال URL او الموقع المحول إليه المستخدم بيبقى ثابت فى الكود، اما الامثلة اللى جايه دى هتوضح قد ايه الموقع ممكن يكون معرض لهجمات زى دى:
­
-Java
response.sendRedirect(request.getParameter(“url”));
­
-PHP
<?php
/* Redirect browser */
$redirect_url = $_GET[‘url’];
header(“Location: ” . $redirect_url);
?>
­
ASP.NET or C# .NET
string url = request.QueryString[“url”];
Response.Redirect(url);
­
-Ruby on Rails
redirect_to params[:url]
­
طبعاً كل اساليب التحويل اللى قبل كدا هيتم استغلالها برابط بسيط زى دا بإعتبار ان الباراميتر الخاص بالموقع المحول اليه هو url بالشكل دا:
http://example.com/example.php…
­
بالتأكيد انا مش هشرح كل شئ علشان لازم انت يبقى عليك جزء من المهمه وتتعب شوية وتدور، وضحت قبل كدا ياترى ليه ممكن شركتين كبار جدا زى فيسبوك وجوجل منهم اللى بيقبلها ومنهم اللى مش بيقبلها ؟!
­
[*] بالنسبه لفيسبوك بيقبلها لأنه شايف انها خطر جدا على مستخدمين واللى اغلبهم بيبقوا من متوسطى او عديمى الخبره فهيقع بسرعه وبشكل عام هوا شايف ان دى خطر على البزنس بتاعه فعمل شوية حركات صايعه شويه، عمل حاجه اسمها Linkshim ودا عباره عن سستم بيحمى مستخدمى الشبكه الاجتماعيه من انهم يقعوا ضحايا هجمات زى دى واللى بدورها ممكن تؤدى الى ضياع الحساب بالكامل لو كان الاتاكر برنس ف نفسه ودمج الخطأ البرمجى دا مع اى اسلوب من اساليب الاصطياد Phishing والهندسه الاجتماعية واللى كتير بنلاقى منها بلاوى على فيسبوك، فيقوم فيسبوك الحقيقى يحولك على فيسبوك تانى بس Fake وبالتالى انت واثق انك جاى “محول” من مكان امن فهتدوس مش هيهمك، نرجع ل Linkshim فيسبوك عمل السستم دا لسببين، اولهم هيتتبع اى لينكات Spam بسهوله وهيقدر يمنعها ويحذر المستخدمين منها ويسيطر على الوضع، تانى حاجه هيقدر يعمل Statistics System او نظام احصائيات ياترى اللينك الفلانى اتضغط عليه كام مره، وياترى اتضغط عليه منين، ومين اللى ضغط واتشير ازاى، واتشير من مين، و و و و الخ.. طبعا دا هيساعده فى انه يستهدف حضرتك بعدين لو كان مثلا دا لينك على امازون فهيقرا اللينك ويرشحلك منتجات من امازون دا على سبيل المثال يعنى، فهتلاقى اللينك على فيسبوك شكله كدا :
­
http://l.facebook.com/l.php…
­
لو هتلاحظ هنا الملف المسؤول عن التحويل هو l.php والباراميتر الموجود فيه الموقع هو u لو ركزت شويه هتلاقى باراميتر تانى موجود واللى هوا h ودا موجود جواه hash فيسبوك داخل الداتابيز بتاعته بيخزنها علشان يعرف ان الموقع ابو هاش 1AQE9wJ-J دا موقع كويس ومفهوش مشاكل ومش هيتشيك عليه كل مره بقى فبالتالى هيريح نفسه من عناء انه يفحصه دوريا لما كل مستخدم يضغط عليه، اخر باراميتر اللى هوا s حقيقة معرفش بيعمل ايه بس مش مهم فى مثالنا هنا، المهم عرفنا ان فيسبوك بيعرف يحمى نفسه من كل دا كويس، بغض النظر عن انى قدرت اتخطى دا قبل كدا وانشر اى موقع حتى لو فيسبوك مانعه شخصيا بطريقة ما وبلغت عنها و”الباونتى اتصرف تقريباً  علشان محدش يقول اعزمنى” الا ان فيسبوك فعلا قدر يسيطر على كل المشاكل دى، على ذكر فلترة المواقع الخاصه بالاسبام هنا فى تركاية كنت بلغت بيها فيسبوك قبل كدا بأن موقع زى Tinyurl بيقدر يقصر الروابط ويغيرها فى المستقبل بنفس الرابط القصير، فممكن حضرتك تقوم مقصر لينك Google.com وتنشره على فيسبوك بعدين ترجع لموقع Tinyurl وتغير الرابط لرابط فيسبوك مانعه من انه يتنشر، هنا رد عليا الاخ فى الله Neal من فريق Facebook Security وقالى انهم عاملين سستم دورى بيعمل تشيك على كل اللينكات المقصره والغير مقصره من فتره لفتره “تقريباً اسبوع” ويقوم بعمل Cache للردود ويحدثوا ال Records فى الداتابيز وبالتالى لو اللينك اتحول فى خلال الاسبوع هيكون اتوقف، بغض النظر عن انى مش مقتنع بالكلام الا انى مقداميش اى شئ اعمله غير انى احترم قراراتهم.
­
قبل ما اشرح ايه سبب رفض جوجل للنوع دا، فبالنسبه للناس اللى بيلاقوا Open Redirection فى فيسبوك وبيترفض فهو بيترفض لأنه مش Open Redirection مباشر بمعنى ان فى حالات بيتم الابلاغ عنها بالرغم من ان الهاش موجود، او مثلا ال URL بيمر على الفلتر اللى المفروض فيسبوك مخصصه لصد هجمات زى دى، بمعنى انك لازم تلاقى حاجه زى كدا علشان يقبلوها منك وش:
­
http://www.facebook.com/l.php?u=http://example.com
­
حاجه زى دى لو ربنا كرمك ولقيتها هتتقبل وش
­
[*] نيجى بقى لجوجل، جوجل بمجرد ما بتبص بس لل tittle بتاع الثغره اللى انت باعتها ولقت كلمة Redirect بتضغط زرار كدا بيرد عليك بشكل الى انها مرفوضه، حقيقة هما كاتبين دا فى الصفحة الخاصه بالمكافأت الخاصه بيهم وكاتبين تحديداً:
­
URL redirection. We recognize that the address bar is the only reliable security indicator in modern browsers; consequently, we hold that the usability and security benefits of a small number of well-designed and closely monitored redirectors outweigh their true risks
­
مش هترجمها ولا هضيع وقت فى ترجمتها بس بالبلدى ومن الاخر بيقول “فكك” لأنهم بيعتبروها ضعيفة التأثير “معرفش ازاى” بس هيا كدا. تقريباً دماغ واحد مصرى اثرت على فكرهم فى اللحظه دى، اللهم ان كان مثلا تقدر تطلع XSS من ال Open Redirection ساعتها هيسلموك ال 5000 دولار وهما مغمضين وهيشكروك كمان. استنى هوا انا اقدر اجيب XSS من ال Open Redirect ؟! اه هقولك دا بعدين ركز بقى.
­
[*] امثله من اكتشافى قبل كدا “منها اللى اتقبل ومنها اللى متقبلش” :
– فى ياهو:
https://clicks.beap.bc.yahoo.com/…/1/*htt…//www.EvilSite.com
­
-فى ياهو من خلال ملفات الفلاش swf المصابه
https://content-ssl.yield manager.com/…/76/01/ba/387601bac613df3a618148dd08a8d68b.swf…
­
-فى ياهو بس المره دى مكانش رابط واحد، لا دا كان عباره عن مولد روابط اكتشفته لضعف فى نظام تشفير الروابط عندهم “الفيديو طويل عباره عن 15 دقيقه هرى – تقدر تشوفه من هنا

­
-فى جوجل “بالرغم من وجود هاشز كتير جداً الا انه بيحولك على اى موقع من اختيارك” :
http://www.googlead services.com/pagead/aclk…
­
-فى تطبيق EverNote
https://www.eve rnote.com/HeaderLogin.action?redirectUrl=http://example.com
­
-فى ووردبرس:
https://wordpress.com/wp-login.php…
­
-فى فورسكوير:
https://redirect.f0ursquare.com/l/…
­
-فى T-Mobile: “تم الابلاغ عنها بس لسه متصلحتش فممكن تاخدوها كمثال للأغراض التعليميه فقط”
http://count.sho pping.t-online.de/RE?URL=http://www.example.com
­
-اخرى:
http://v2.subs cene.com/login.aspx?ReturnUrl=http://example.com
­
[*] ايه المصايب التانيه ياترى غير انى اوجة الضحية لموقع اصطيات Phishing واسرق الاكاونت بتاعه؟!
خد بالك علشان تقدر تستغل التحويل المفتوح فى هجمات الاصطياد، شرط اساسى انه ينخدع ويكتبهم، اما لو مكتبهمش فكأنك يابوزيد ما غزيت، فى هجمات وتكنيك تانى بقى تقدر من خلاله تفش* صاحب الحساب وليك بعض الاستغلالات:
­
1- تقدر من خلال ال Open Redirection انك تطلع ثغرة من نوع XSS
1-1 تخيل معايا الكود دا فى موقع من المواقع:
­
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”utf-8″ />
<meta name=”robots” content=”noindex”>
<title>Redirecting… please wait</title>
<script>
(function(i,s,o,g,r,a,m){i[‘GoogleAnalyticsObject’]=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,’script’,’//www.google-analytics.com/analytics.js’,’ga’);
ga(‘create’, ‘UA-**********’, {‘cookieDomain’: ‘************.com’});
ga(‘send’, ‘event’, {
‘eventCategory’ : ‘product’,
‘eventAction’ : ‘outbound-redirection-clientside’,
‘eventLabel’ : url,
‘hitCallback’ : function () {
window.location.replace(url);
}
});
</script>
</head>
<body>
Redirecting… please wait
</body>
</html>
­
من اول نظره كدا لو انت Developer بس عندك “Security Awarness” هتعرف ان الكود دا مصاب مش بس ب Open Redirection لا وب XSS كمان، فرابط الاستغلال هيكون بالشكل التالى: http://www.**********.com/redirect?url=javascript:alert%28document.domain%29 فى الحالة دى الموقع هيقوم بعمل Redirection بس مش على URL لا هيعمل الرى دايركت على البايلود Javascript:alert(document.domain) وبالتالى لو انت اخدت البايلود دا زى ماهوا كدا نسخ ولصق وانت جوا الموقع فهيرد عليك البراوزر بإسم الدومين الخاص بالموقع وبكدا تقدر تكتب JavaScript زى ما تحب داخل الكود بقى وعيش وابقى افتكرنى.
­
1-2 ليا صديق اسمه Paulos اكتشف Open Redirection فى الجزء الخاص بال Stickers فى فيسبوك، تخيلوا لو كان بلغها على انها Open Redirection كانت هتتقبل ومكافأته كانت هتبقى 1500 دولار فقط مثلا، بس هوا طور دا واستبدل الموقع بالبايلود اللى فات وضحته وبكدا اخد 7500 دولار لأن الهجوم اصبح ساعتها XSS فلك ان تتخيل حجم الكارثه، دا حصل بسبب ان المفروض بعد اختيار الاستيكر الفيسبوك يرجع للصفحه اللى فاتت واللى بالتالى بتكون متخزنه فى باراميتر متاخد من اول ما دخل المستخدم الصفحه ولسبب ما فيسبوك مكانش بيعمل فحص للباراميتر ياترى هيرجع على فيسبوك ولا هيروح مكان تانى.
­
1-3 هنا كان موقع Box.com مصاب ب Open Redirection وانا بتست ال Parameter لقيت نفسى اقدر احقن كود Javascript ودا بسبب ان الديفولبر كان سكران او سهران قبلها بيوم فمفكرش مش بس يتشيك على الويب سايت اللى هيروحله اليوزر، لا مفركش حتى يعمل Filteration للباراميتر redirect_url من انه يعكس اى اكواد خبيثة داخل الصفحه، والبايلود الخاص بالاستغلال كان كالتالى:
https://app.box.com/login?redirect_url=“><script>alert(0x0003ED)</script>
­
2- تقدر من خلال ثغرة Open Redirection حقيرة انك تسرق Access Token خاص بأى Web Application فى حالة ما ان تطبيق الويب دا بيستخدم بروتوكول Open Authrization ومش مظبطه بشكل كويس، طيب ياترى لو سرقت ال Access Token هتعمل بيه ايه؟ سؤال وجيه تقدر تتعامل مع الموقع كأنك انت اليوزر اللى وقع فى الثغرة بالظبط فلو انت على فيسبوك هتقدر تلايك او تشير او وات ايفر لأنه ساعتها هتبقى معاك كل صلاحيات الابلكيشن اللى انت اخدت التوكن بتاعه، او مثلا فى خدمات كتير جدا هتقدر تعمل Login بأكاونت الضحيه.
صديقى مصطفى قاسم اكتشف واحده من النوع دا فى موقع ASK.fm وبالتالى لو قدر ياخد التوكن بتاعك فهيقدر يخترق اليوزر على اسك ويفشخه عالفيس لأن موقع Ask.fm ساعتها كان مصاب بثغرة Open Redirect وبيباصى الاكسس توكن للموقع اللى هيحول المستخدم عليه تقدروا تشوفوا الفيديو الخاص بيها من هنا .
­
انا كشفت حاجه زى دى فى موقع مشهور جداً ومنتظر ردهم فبعد سدها ان شاء الله هنشر ال PoC Video ببلك علشان الناس تشوف قد ايه خطر كامن ممكن يطلع من حاجه هايفه زى دى.
­
3- احيانا بيكون فى مواقع عامله شوية حركات صايعه بأنها مثلا عامله حماية على صفحات معينه حساسه زى صفحات الادمن مثلا بأنه ميقدرش يأكسس الصفحه دى غير ايبيهات معينه ودا من خلال WAF او Web Application Firewall فلو الفايروول شاف ان الكونكشن جاى من حضرتك فهيرفض، تخيل بقى لو لقى الكونكشن جاى من نفس الموقع ؟!!! رد انت ياحسين ، او ممكن تأكسس بيها اى جهاز تانى على الشبكه المحلية الخاصه بالموقع بمعنى ان لو فى سيرفر تانى انت مش قادر من برا الشبكه تكونكت عليه، خلاص نخليهم يكونكتوا على بعض ويجيبولنا الرد وبكدا انت استخدمت الموقع المصاب كبوابه للأتصال بالعالم الداخلى “اخواته وولاد عمه فى الله اللى معاه على نفس ال LAN Range” مثلا. دا فى حالة لو كان الهجوم على مستوى ال Server Side بمعنى ان مش بس ال Client Side هوا المصاب.
­
[*] ازاى اكتشفها “لل Bug Hunters”
دايما عينك على ال Parameters افحصها جميعا كما ان لو كل باراميتر مصاب، زى ما بتعمل كدا وانت بتختبر الموقع ضد هجمات XSS هتعمل دا فى حالة لو عايز تكتشف النوع دا من الثغرات، دايما شوف الموقع لو بيحولك لصفحه تانيه او موقع تانى شوف ايه اللى بيتم، ياترى الركوست Get ولا Post ياترى استغله ازاى، طيب اعمل ايه، فى حالة لو Post مش هتقدر تستغله او بمعنى اصح استغلاله ضعيف الاستغلال الامثل بيكون من خلال GET او بمعنى اصح URL كدا انت بتاخده وتروح البراوزر تكتبه وتضغط انتر.
­
بشكل مكثف اى Redirect بيكونله HTTP Status Code بتحمل المقطع 3xxواللى غالبا بتكون 301 او 302 فلو حضرتك بتشتغل بأى Proxy Application زى Fiddler او Burp او OWASP Zap دور على كل الركوستات اللى ليها الكود 302 او 301 وابدأ افحصها كويس “طبعا المبتدئين هيواجهوا صعوبه ف دا بس الموضوع سهل اتعب شويه ودور هتجيبها متقلقش محدش اتعلم في يوم وليله”
­
اعرف اكتر عن ال HTTP Status Codes من هنا : من هنا
­
ولو انت محترف عيش بقى المهم تفيد الناس .
­
[*] ازاى اتحاشاها “لل Developers”
مش هتحتاج مجهود كبير، بص ياسيدى لو انت مش حابب انك تدايركت المستخدمين مباشرة للويب سايت “بمعنى ان المستخدم يروح مكان ما هوا عايز يروح” فمتدخلش موقعه وسط الخناقة دى وسيب اليوزر يروح لل URL مباشرة، اما لو عايز تحشر مناخيرك بقى وتقول لا انا عايز افلتر ومينفعش اليوزرات يدخلوا جهنم بسببى فركز معايا بقى:
1- اول شئ هتفلتر اى بيانات هتستقبلها فى باراميترز من الرموز الخطره امثال ‘”<>:| =…. الخ وتقدر كمان تعمل دا ب Pregmatch او بال Regular Expression على ان الباراميتر يحتوى فقط على بيانات من نوع URL لو متوافرتش الشروط ينفض ويكنسل ويرفض او او الخ..
2- تانى شئ هتعمل جدول لطيف فى الداتابيز هيتكون من اكتر من Column زى مثلا user – date – time – hash وتتشيك بقى عليهم اللى عايز تسمح بيه من اللى مش عايز تسمح بيه
3- لو عايز بس التحويل يتم على مستوى الموقع بتاعك يعنى مثلا صفحه واحده هيا اللى بترمى اليوزر على باقى الصفحات زى مثلا
http://www.Site.com/goto.php?loc=/myaccount ففى الحالة دى هتتأكد الاول من البيانات الموجوده فى باراميتر loc زى ما وضحت فى النقطتين اللى فاتوا، وكمان تحاول تتخطى الدابل باك سلاش اللى هما “//” لأنهم من اساليب تخطى النوع دا من الحمايه، بمعنى ادق لو واحد جه عندك وعمل كدا http://www.Site.com/goto.php?loc=//example.com هتتنفخ.
4- حاول انت كديفولبر انك تفحص الهدير الخاص بال referrer لو جاى من موقعك قشطه حوله مباشرة، لو جاى من موقع غريب اديله رساله تحذيريه قوله خللى بالك انت رايح موقع كذا وان الموقع اللى انت رايحه دا جايز يكون مش امن فلو موافق دوس اوكى
­
[*] طرق التخطى
طيب لو فى موقع وبيحمى نفسه من النوع دا من الهجمات ياترى اقدر اتخطاها ازاى؟ مش هقولك، دور هتعرف كتير بس هديلك Keywords تعيش بيهم هما بمثابة الزتونه: “ابحث عنهم واستفيد”
­
HPP او Parameter Pollution
Full URL Encoding
Bypass with Deadly null byte %00
Payload/URL Encoding
Payload/URL Double Encoding
Payload/URL Trible Encoding
Letters Case Manipulation
+
متنساش تفصفص التدوينه دى حته حته
­­­
نصيحتين حطهم حلقة فى ودنك واحده لل Developers وواحده لل Bug Hunters :
لو انت Developer اقطع عيش ال Bug Hunters وفلتر اى شئ User Supplied هتبقى فى امان من بلاوى كتيره، ومتثقش دايما فى المدخلات حتى لو كانت من الويب ابلكيشن الخاص بيك.
لو انت Bug Hunter افحت ال Developers فى افكارهم وفكر زيهم فلو عايز تتخطى اى شئ، ادرسه الاول وشوفه بيشتغل ازاى نزله عندك على Local Host Web Server واشتغل عليه وافحت كل جانب فيه واضمنلك انك هتتخطى وهتكتشف حاجات مكانش حد يسمع عنها اصلا.
­
مصادر علشان تعرف اكتر وتزود معلوماتك:
OWASP Article on Open Redirects
2. CWE Entry 601 on Open Redirects
3. WASC Article on URL Redirector Abuse
4. Google blog article on the dangers of open redirects
5. Preventing Open Redirection Attacks (C#)
6.CWE-601: URL Redirection to Untrusted Site (‘Open Redirect’)
https://www.owasp.org/…/Unvalidated_Redirects_and_Forwards

الكاتب: محمد عبد الباسط- مدير التقنية وأمن المعلومات.

من محافظة المنيا، مبرمج دوت نت حرً ،مدون وعضو فريق إدارة المحتوى بـ صعيدى جيكس ، مسئول التسويق الالكترونى  بـ مؤسسة ابداع للتدريب والاستشارات ، Web Development team Leader at Longevity مقولتى المفضلة " الاحلام بتحقق لما بنصدق  "

3 1 vote
Article Rating
Subscribe
نبّهني عن
guest

0 تعليقات
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x