رایتاپ Information Disclosure شماره 1
سلام.من بهروز منصوری هستم و با رایتاپ Information Disclosure شماره 1 در خدمتتون هستم.
در این پروژه، مسئولیت اصلی من شناسایی آسیبپذیریها در APIهای وبسایت بود.
گام اول:
ابتدا من APIهای وبسایت را تجزیه و تحلیل کردم و برای این کار از Burp Suite استفاده کردم.
در طول این تجزیه و تحلیل، به طور تصادفی به یک یافته جالب رسیدم.
در یکی از نقاط پایانی API، کلیدی به نام “ApiUrl” وجود داشت که با یک مقدار همراه بود.
با این حال، این مقدار آدرس IP مورد انتظار نبود، بلکه یک آدرس متمایز بود که در دامنه های اصلی وب سایت استفاده نمی شد.
این موضوع کنجکاوی من را برانگیخت و باعث تحقیقات بیشتر شد.
HTTP Response:
HTTP/2 200 OK
Content-Length: 35988
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/10.0
X-Frame-Options: sameorigin
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; font-src *; frame-src *
Permissions-Policy: accelerometer=(),autoplay=(),camera=(),display-capture=(),document-domain=(),encrypted-media=(),fullscreen=(),geolocation=(),gyroscope=(),magnetometer=(),microphone=(),midi=(),payment=(),picture-in-picture=(),publickey-credentials-get=(),screen-wake-lock=(),sync-xhr=(self),usb=(),web-share=(),xr-spatial-tracking=()
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Xss-Protection: 1; mode=block
Date: Wed, 09 Aug 2023 08:11:43 GMT
{"Result":{"DeviceInfo":{"TerminalNo":"*****","Limit":50000,
"ApiUrl":"https://NEW-IPADDR/api/",
"ApiUserName":"******==",
"ApiPassword":"******=="},"TaxProfileList":
[{"Title":"KDV 1","TaxVatIncluded":1,"Idx":1},
پس از تلاش برای دسترسی به URL ارائه شده، با خطای 404 مواجه شدم که نشان می دهد URL مشخص شده یافت نشد.
با این وجود، آدرس IP صحیح نشان داد که ممکن است endpoint جایگزینی وجود داشته باشد که ارزش کاوش را داشته باشد.
گام دوم:
تحقیقات من ادامه یافت و من از GoBuster برای جستجوی نقاط پایانی بالقوه با استفاده از فهرست کلمات “seclists/discovery/web-content/big.txt” استفاده کردم:
gobuster dir -u IPADDR -w /usr/share/seclists/Discovery/Web-Content/big.txt
پس از اتمام اسکن GoBuster، یک endpoint به نام “/trs” پیدا کردم.
با وارد کردن “IPADDR/trs” در نوار URL مرورگر، یک صفحه وب قدیمی مرتبط با برنامه را کشف کردم.
گام سوم:
در ادامه تصمیم گرفتم نامهای کاربری رایج را آزمایش کنم، که باعث شد متوجه شوم که نام کاربری پیشفرض «admin» است.
برای کشف رمز عبور، من یک حمله Burp Suite Intruder را با استفاده از لیستی از 500 رمز عبور رایج برای مدیر اجرا کردم.
پس از تکمیل فرآیند Intruder، من با موفقیت به پنل مدیریت دسترسی پیدا کردم.
در نتیجه، آسیبپذیری حیاتی که اجازه تصاحب حساب Admin را میدهد، از افشای اطلاعات API ناشی میشود.
توجه به این نکته ضروری است که توسعه دهندگان باید از درج آدرس IP وب سایت های مخفی در response packet خودداری کنند، زیرا این امر می تواند منجر به دسترسی غیرمجاز شود.
علاوه بر این، مدیران باید از رمزهای عبور قوی و غیرقابل حدس زدن برای افزایش اقدامات امنیتی استفاده کنند.
این رایتاپ Information Disclosure شماره 1 بود و در ادامه باز هم از این رایتاپ ها خواهیم داشت.
اگر دوست دارید به آسیب پذیری های api مسلط شوید، بهتره از دوره تست نفوذ api استفاده کنید.