رایتاپ Business Logic دستکاری Qr code
سلام.من بهروز منصوری هستم و قراره در رایتاپ Business Logic دستکاری Qr code به شما نمایش بدم که چطور در یک برنامه مبلغ پرداختی را در حین پرداخت کاهش دادیم.
آسیب پذیری های Business Logic چیست؟
آسیبپذیریهای Business Logic، که اغلب به عنوان آسیبپذیریهای منطقی برنامه شناخته میشوند، دستهای از ضعفهای امنیتی هستند که ناشی از نقص یا ضعف در نحوه مدیریت یک برنامه یا سیستم نرمافزاری هستند.
برخلاف آسیبپذیریهای امنیتی سنتی مانند تزریق SQL یا XSS، که به خوبی شناخته شدهاند و شامل سوءاستفاده از نقصهای فنی میشوند، آسیبپذیریهای منطق تجاری، عملکرد و عملیات خاص یک برنامه کاربردی را هدف قرار میدهند.
رسیدگی به آسیبپذیریهای منطق کسبوکار نیازمند درک کامل رفتار مورد نظر برنامه و بررسی دقیق نحوه تعامل اجزای مختلف است.
تارگت
هدف، یک شرکت فین تک برجسته است که یک پلتفرم پرداخت است و به امنیت تراکنش های مالی سازمان ها کمک می کند.
بهره برداری
در طی تست اپلیکیشن اندروید، یک آسیب پذیری مهم را کشف کردم.
این اپلیکیشن به کاربران اجازه می داد تا یک کد QR با مبلغ پرداختی ثابت تولید کنند.
وقتی این کد QR اسکن شد، کاربران نهایی میتوانستند در یک بازه زمانی مشخص پرداخت را انجام دهند.
با ارسال درخواست همراه با مبلغ پرداختی، سرور با یک qr_code_url حاوی کد QR پاسخ داد که هدف این بود که امکانش ویرایش وجود نداشته باشد.
پاسخ چیزی شبیه به این بود،
{
“transaction_id”:“5454545454545454545454”,
“vpa_id”:“HGH5454545@ABC”,
“qr_code_url”:“https://redacted.com/UPI/DqrimgWLQBVMFZEzE0122798@ABC.png”
}
قدم بعدی من اسکن QR و دستکاری مقدار در برنامه های UPI بود. اما در ابتدا این امکان وجود نداشت…
سعی کردم درخواست را دستکاری کنم تا ببینم آیا می توانم یک پرداخت صفر یا حتی یک مقدار منفی انجام دهم یا نه.
با کمال تعجب، پیوند با یک کد QR بدون در نظر گرفتن مقدار درخواست، با موفقیت ایجاد شد.
به دلیل عدم اعتبارسنجی مناسب، کد QR اسکن شده حاوی مقدار ثابتی نبود و به کاربران اجازه میداد که میزان پرداخت خود را به دلخواه تعیین کنند.
اما نه. این بار از آنجایی که اعتبار سنجی مناسبی وجود نداشت، وقتی سعی کردم کد QR را در برنامه UPI اسکن کنم، به نظر می رسید که مبلغ پرداخت آن طور که انتظار می رفت ثابت نشده است.
این به کاربران این امکان را می داد که مبلغ را تعریف کرده و پرداخت کنند.
این آسیب پذیری خطر قابل توجهی برای سازمان ایجاد می کند که به طور بالقوه منجر به خسارات مالی قابل توجهی می شود.
impact
آسیب پذیری منطق تجاری شناسایی شده در این اپلیکیشن اندرویدی می تواند عواقب شدیدی برای سازمان داشته باشد.
این پتانسیل منجر به خسارات مالی ناشی از پرداخت های غیرمجاز و مبالغ اشتباه تراکنش می شود.
علاوه بر این، ممکن است به اعتبار سازمان آسیب برساند، زیرا مشتریان ممکن است اعتماد خود را به امنیت پلتفرم از دست بدهند.
این آسیب پذیری همچنین می تواند سازمان را در معرض مسئولیت های قانونی در صورت وقوع تراکنش های متقلبانه قرار دهد.
نتیجه گیری
آسیب پذیری منطق تجاری که در این برنامه اندرویدی کشف شده است، بر خطرات قابل توجهی که این آسیب پذیری ها برای سازمان ها ایجاد می کند، تأکید می کند.
این شامل پتانسیل زیان های مالی، آسیب های اعتباری و عواقب قانونی است، به ویژه در سناریوهایی که پرداخت های غیرمجاز و دستکاری داده ها رخ دهد.
در رایتاپ Business Logic دستکاری Qr code سعی کردیم مثال ساده ای از این دسته از آسیب پذیری ها داشته باشیم.
در آینده موارد بیشتری از این آسیب پذیری را منتشر خواهم کرد.
برای ورود به حوزه باگ بانتی می توانید این صفحه را مشاهده کنید.