حل تحدى string highlighter من CyberTalents CTF

CTF Walkthrough
سنتعرف علي كيفية القيام ب Code Injection والوصول الي محتوي السيرفر وتنفيذ أوامر عليه
Ahmed Fahim
June 25, 2023, 10 p.m.
ahmed_fahim
حل تحدى string highlighter من CyberTalents CTF

مواصفات التحدى

اسم التحدي: String highlighter
المستوى: صعب
رابط التحدي: https://cybertalents.com/challenges/web/string-highlighter
المطلوب: نحتاج الي الوصل الي العلم وهو مخفي في مكان ما في directory

بداية التحدى

حسنًا، قم بتشغيل هذا التحدي وفتح الرابط الخاص به

إنه تطبيق ويب يطبع محتوى ما يكتبه المستخدم في HTML textarea ويحدد أي لون يريده وعند الضغط علي   Highlighter new يتم عرضه تحت كلمة Preview 

حسنا لنحاول رؤية ما الذي سيفله التطبيق

دعونا نلقي نظرة علي source code لا يوجد شئ مهم وأيضا ال js code الموجود هو

<script type="text/javascript">
    	$('.sub').on('click',function(){
    		var color = $('select').val();
    		var txt = $('textarea').val();
    		var stringToParse = color + ':' + txt;
    		$.post('',{stp:stringToParse},function(data){
    			$('.preview').html(data);
    		});
    	});
    </script>

حسنا لنجرب بعض الأشياء مثلا هل يمكننا اضافة html tag

هذا جيد لايوجد Filtered من الممكن أن يكون الموقع معرض لثغرة XSS
لنجرب

هذا جيد لكن المجبط أننا نريد أن نقوم بعمل RCE لكني قمت بالمحولة بعمل RCE عن طريق XSS لكن لم تعمل
اذا انت قمت بالمحاولة ونجحت معك اعرض طريقتك وشاركها معنا

لنقم بتجرب بعض الاشياء الاخري
نريد أن نعرف ما هي التقنيات التي يعمل بها الموقع

حسنا هذا جيد الموقع يعمل ب js , HTML , CSS , php
كيف عرفت بأنه يعمل ب php قمت بتجربت أن ادخل الي صفحة index.php وقام بارجاع الصفحة الرئيسية

قمت بتجربت بعض php tag لكن كان هذا الرد هذا ( internal server error)

لنعمل علي صفحة ال index بما ان هذه الصفحة هي .php ف معانه انه تم تضمين php tag فلنجرب بدونها

الان يقوم بطباعة أي شئ اذا هذا يعمل

لنقم بتنفيذ بعض الاوامر علي النظام

يبدو أن هناك تحقق من ال php code قمت بعمل بحث عن كيفية تجاوز هذا

وجدت بعض الاشياء المثيرة علي هذه المدونة
https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass

قمت بتجربة بعض الأوامر المختلفة حتي قام هذا بالعمل
لا تنسي أن تنظر الي المدونة

`` (backticks) - مثل ()shell_exec

echo `whoami`;

هذا يعمل بشكل جيد لنري أين هو flag

لنقم بقراءة محتوي الملف

echo `cat flag_h@cked_pWn`;

والى هنا نكون قد انهينا التحدى الخاص بـ cybertalents والى لقاء اخر فى تحديات واساليب وتقنيات جديدة

تحدي جميل ، من فضلك جرب هذا بنفسك
لا تهتم بالعلم ، ولكن فكر في كيفية تعلم شيء جديد


Ctf Writeup Ctf Cybersecurity Hacking Pentesting cybertalents ctf walkhrough Code Injection