Aussehen
Suche Einloggen
[c] [meta] [fefe] [erp]

/c/ – Pufferüberlauf


Antwort erstellen

(≤ 4)



[Zurück]

  • [l] Kleines Update für alle, die sich seit Wochen die Fingernägel blutig kratzen: Effe [RAUTE][RAUTE] Mod Tue, 10 Jun 2025 19:30:12 GMT Nr. 157743
    JPG 414×414 37.8k
    Kleines Update für alle, die sich seit Wochen die Fingernägel blutig kratzen:

    Fefe hat seit Mitte Mai nichts mehr gepostet.

    Schockschwerenot!
    Der Mann, der seit Jahrzehnten täglich Links raushaut wie andere Leute Tweets – einfach weg. Kein Blog. Kein Podcast. Keine Rants über die Cloud oder Ursula von der Leyen. Stille. Funkstille.

    Und was macht das Internet?
    Es dreht natürlich komplett am Rad.

    >Der liegt bestimmt auf Intensiv!
    >Wurde in den USA festgenommen!
    >Hat sich in Japan verlaufen!
    >Vielleicht ist er tot

    Leute. Ernsthaft?
    Ihr kommt offenbar nicht klar, wenn euch mal keiner mehr die Welt erklärt.
    Willkommen in der Realität. Die ist kein Blog mit täglichen Updates.

    Vielleicht liegt er wirklich im Krankenhaus. Vielleicht hat er einfach keinen Bock mehr, weil 20 Jahre Internetdümmlichkeit auch irgendwann mal reichen. Vielleicht hat er sich einfach nur abgemeldet, ohne euch vorher um Erlaubnis zu fragen. Unverschämtheit, ich weiß.

    Falls er krank ist: gute Besserung! Ehrlich. Wirklich. So richtig von Herzen.
    Und falls nicht: Auch okay. Kein Mensch schuldet euch Content. Auch nicht der mit dem Blog.

    Aber schön zu sehen, wie schnell die Schwurbelfraktion anspringt. Ich geb euch noch eine Woche, dann heißt es:
    >Er hat zu viel über die Cloud gelästert, jetzt wurde er geswattet von Microsoft.

    Was lernen wir daraus?

    Das Schlimmste, was du heute tun kannst, ist: mal kurz nicht online sein.

    Na dann: Viel Spaß noch im Internet. Ohne Aufsicht.

    https://blog.fefe.de/?ts=96b64634
  • [l] Update Effe [RAUTE][RAUTE] Mod Tue, 10 Jun 2025 19:51:58 GMT Nr. 157744
    @@ -32,3 +32,21 @@
    +Update:
    +Inzwischen ist auch noch das SSL-Zertifikat von blog.fefe.de abgelaufen.
    +
    +Ja, ernsthaft.
    +Let’s Encrypt. Manuell.
    +Automatisierung ist was für Leute, die keine Consultingfirma für IT-Sicherheit haben.
    +
    +Da verschwindet der Mann wochenlang spurlos, das Netz hyperventiliert – und was bricht als Erstes zusammen? Die Infrastruktur.
    +Weil der Admin das Zertifikat per Hand macht wie 2008.
    +
    +Ich mein: Vielleicht liegt er ja wirklich auf Intensiv.
    +Oder er kämpft gerade mit dem openssl-CLI und flucht dabei leise auf Latein.
    +
    +Aber hey: Wenn schon untertauchen, dann richtig.
    +Kein Lebenszeichen, kein Blog, kein HTTPS.
    +
    +Bleibt spannend.

  • [l] Felix Wed, 11 Jun 2025 11:03:18 GMT Nr. 157749
    Als SSLlein kapier ich das jetzt nicht so ganz:
    Früher war der HSTS Rotz, denn man nicht umgehen konnte ohne Tricks,
    Warum ist der HSTS Rotz mittlerweile nicht mehr aktiv? An den benutzten Certs hat sich serverseitig nichts geändert, nehme ich mal an.
  • [l] Felix Wed, 11 Jun 2025 11:36:26 GMT Nr. 157750
    >>157749
    HSTS ist immernoch Müll, siehe hier >>157160
    >denn man nicht umgehen konnte ohne Tricks
    Ist es immernoch, nur gibt es eine Ablauffrist in Sekunden, damit man eine Domäne nicht zerschießt. Die ist jetzt rum.
  • [l] Felix Wed, 11 Jun 2025 11:51:51 GMT Nr. 157754
    >>157750
    >Ablauffrist
    Aja, wusst ich net.
    Felix hat mal Wickie bzgl. HSTS konsultiert, scheint ja recht sinnbefreit zu sein.
  • [l] Felix Wed, 11 Jun 2025 18:27:54 GMT Nr. 157757
    HSTS haben viele deshalb gemacht, weil das Fehlen bei SSL-Labs zu einer Abwertung geführt hat.
    #metoo
  • [l] Felix Wed, 11 Jun 2025 18:39:02 GMT Nr. 157758
    >>157754
    >Felix hat mal Wickie bzgl. HSTS konsultiert, scheint ja recht sinnbefreit zu sein.
    Nicht ganz. Wenn du dich über eine nicht vertrauenswürdige Verbindung einwählst (z.B. über einen Tor-Exit-Knoten), könnte der, selbst wenn die Netzseite HTTPS unterstützt oder gar erzwingt, dir eine HTTP-Version davon ausliefern und per MITM die Daten abschnorcheln oder seinen eigenen Schadkot dort injizieren.

    Wirklich sinnvoll wird es aber erst mit hstspreload [0], was Laufzeiten von mindestens einem Jahr voraussetzt. Denn diese Liste wird von den Brausiererherstellern von Haus mitausgeliefert, sodass auch der erste Verbindungsversuch scheitert, wenn jemand dir eine HTTP-Version einer HTTPS-Seite unterzujubeln versucht. Ansonsten müsstest du vorher schon einmal auf der Seite gewesen sein, damit dein Brausierer weiß, dass sie HSTS erzwingt.

    [0] https://hstspreload.org/
  • [l] Felix Wed, 11 Jun 2025 19:36:06 GMT Nr. 157759
    >>157758
    Nicht der Felix, aber die Preloadlist ist über Brausiererkwellkot publik. So finden alle Bots deinen Server und deine Domain spielend leicht. Ich hasse manchmal das wir sogar öffentliche Certlogs haben. Jede Domain wird sofort angepingt von Bots. Da hilft nur Wildcard cert.

    Ich hoste nichts unter
    >domäne.tld
    alles ist versteckt unter
    >*.domäne.tld
    www subdomain verweigere ich auch
  • [l] Felix Wed, 11 Jun 2025 19:39:14 GMT Nr. 157760
    >>157759
    Wen juckt das? Sobald du deinen Servierer ans Netz hängst, hast du ohnehin nach weniger als 5 Minuten die ersten Scans auf deine IP. Wenn dein Sicherheitskonzept darauf basiert, dass deine Domäne geheim ist, dann machst du irgendwas falsch.
  • [l] Felix Wed, 11 Jun 2025 20:58:35 GMT Nr. 157761
    >>157760
    nope ohne hostname im TLS SNI field antwortet mein sniproxy nicht
    da bekommst du direkt einen plonk bei meinem server mit error und connection closed, as per spec
  • [l] Felix Wed, 11 Jun 2025 21:07:34 GMT Nr. 157762
    >>157761
    Aber was nützt dir das? Die Domäne ist eh bekannt. Öffentliche Domänen sind halt öffentlich. Gibt 9001 SEO-Spam-Seiten im Netz, die die alle schön fein säuberlich auflisten mit WHOIS-Daten und allem pipapo.
  • [l] Felix Wed, 11 Jun 2025 21:14:12 GMT Nr. 157765
    >>157762
    nur weil du weisst ich habe *.blabla.tld
    weisst du halt noch lange nicht was du senden musst um den echten server hinter der wildcard zu finden
    die ganzen scans treffen dann connections closed in die server logs sind frei von php exploits (mein server hat kein php)
    das hält die logs sauber und die bots werden gekickt
    domaine kennen und subdomains geheim halten gehalt sehr einfach
  • [l] Felix Wed, 11 Jun 2025 21:30:37 GMT Nr. 157766
    >>157765
    Es reicht, wenn die Subdomäne einmal geleckt wird und dann ist sie für immer geleckt. Ist Felix damals vor vielen Jahren mal passiert, als er noch in PHP rumgefrickelt hat und testweise auf seiner geheimen Subdomäne mit der Entwicklungs-Version seiner Netzseite Schriftarten von Google Webfonts eingebunden hatte. Plötzlich war die dann bei Google gelistet, obwohl die noch gar nicht bereit zur Veröffentlichung war. Weil Google offensichtlich den Referrer von allem, was sie so altruistisch ins Netz pusten, auswertet und dann seine Bot-Armee dorthin schickt. Felix hatte sich immer gefragt, was Google eigentlich davon hat. Nun war es klar: Sie finden damit neue Inhalte schneller als die Konkurrenz. Das war zu einer Zeit, als Suchmaschinen noch halbwegs brauchbar waren. Heute ist es eh egal. Eh nur noch 99% LLM-generierte SEO-Pajeet-Scheiße.

    Außerdem kennt mindestens dein DNS-Server auch die Domain. Und alle DNS-Server upstream davon auch. DNS-Pakete sind außerdem unverschlüsselt und jeder unterwegs kann sie munter auslesen.

    Wenn du verhindern willst, dass jemand anders als du auf die Seite zugreifen kann, dann nimm ein VPN. Alles andere ist eh bloß Schlangenöl.
  • [l] Felix Wed, 11 Jun 2025 21:53:43 GMT Nr. 157767
    >>157760
    Was die Frage aufwirft, was denn wohl so die sinnvollste Sicherheitspolitik ist. Aktuell habe ich auf allen Ports, auf denen potentiell was geht (HTTP, SSH) ein Fail2Ban laufen, die restlichen Ports sind in der nftables einfach zu.

    Ich überleg ja ein wenig, ob ich nicht den externen SSH-Port auf einen Incus-Container lenken sollte, in welchem man sich als root ohne Passwort oder mit saudummen Kindergartenpasswort anmelden kann, nur, dass der root-Account gar nichts darf und die einzige Funktion des Containers ist, zu loggen, was der Angreifer da so versucht zu machen (eventuell sogar vortäuscht, dass das alles erfolgreich sei). Wäre bestimmt mal interessant zu sehen, was die da so vorhaben - oder ob die überhaupt irgendwas machen.

    Mich kotzt sowas halt schon irgendwie an (und ja, das geht den ganzen Tag so...):
    45.131.155.254 123.456.789.0 - [11/Jun/2025:17:07:33 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    91.238.181.96 - - [11/Jun/2025:17:08:37 +0200] "  " 400 345 "-" "-"
    144.172.114.36 123.456.789.0 - [11/Jun/2025:17:15:15 +0200] "GET / HTTP/1.1" 200 1147 "-" "Linux Gnu (cow)"
    209.46.127.36 123.456.789.0 - [11/Jun/2025:17:18:05 +0200] "GET / HTTP/1.0" 200 1147 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0"
    74.82.47.3 - - [11/Jun/2025:17:19:22 +0200] "  " 400 345 "-" "-"
    79.124.8.120 123.456.789.0 - [11/Jun/2025:17:21:21 +0200] "GET / HTTP/1.1" 200 1147 "http://123.456.789.0:80/" "Mozilla/5.0"
    80.82.77.202 - - [11/Jun/2025:17:43:56 +0200] "GET / HTTP/1.0" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
    124.121.190.187 123.456.789.0 - [11/Jun/2025:17:44:25 +0200] "GET / HTTP/1.1" 200 1147 "-" "Hello-World/1.0"
    124.121.190.187 123.456.789.0 - [11/Jun/2025:17:44:25 +0200] " / " 400 345 "-" "-"
    79.124.8.120 123.456.789.0 - [11/Jun/2025:17:44:25 +0200] "GET / HTTP/1.1" 200 1147 "http://123.456.789.0:80/" "Mozilla/5.0"
    89.42.231.140 123.456.789.0 - [11/Jun/2025:17:56:35 +0200] "GET /cgi-bin/luci/;stok=/locale HTTP/1.1" 404 341 "-" "-"
    141.98.10.162 123.456.789.0 - [11/Jun/2025:18:05:32 +0200] "GET / HTTP/1.1" 200 1147 "-" "-"
    93.174.93.12 - - [11/Jun/2025:18:14:03 +0200] "GET / HTTP/1.0" 200 1147 "-" "Mozilla/5.0 (X11; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0"
    149.50.103.48 123.456.789.0 - [11/Jun/2025:18:15:46 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    185.242.226.99 - - [11/Jun/2025:18:26:32 +0200] "  " 400 345 "-" "-"
    204.76.203.206 123.456.789.0 - [11/Jun/2025:18:45:05 +0200] "GET / HTTP/1.1" 200 1147 "-" "-"
    204.76.203.206 123.456.789.0 - [11/Jun/2025:18:45:06 +0200] "GET /set_safety.shtml?r=52300 HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
    204.76.203.206 123.456.789.0 - [11/Jun/2025:18:45:12 +0200] "GET /sysinit.shtml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
    185.218.84.178 123.456.789.0 - [11/Jun/2025:18:47:51 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    5.183.209.244 123.456.789.0 - [11/Jun/2025:19:15:29 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    89.42.231.140 123.456.789.0 - [11/Jun/2025:19:28:56 +0200] "GET /cgi-bin/luci/;stok=/locale HTTP/1.1" 404 341 "-" "-"
    93.174.93.12 - - [11/Jun/2025:19:30:51 +0200] "  " 400 345 "-" "-"
    52.180.146.167 123.456.789.0 - [11/Jun/2025:19:44:23 +0200] "GET /actuator/health HTTP/1.1" 404 341 "-" "Mozilla/5.0 zgrab/0.x"
    89.248.167.131 123.456.789.0 - [11/Jun/2025:20:01:37 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
    89.248.167.131 123.456.789.0 - [11/Jun/2025:20:01:37 +0200] "GET /robots.txt HTTP/1.1" 404 341 "-" "-"
    89.248.167.131 123.456.789.0 - [11/Jun/2025:20:01:37 +0200] "GET /sitemap.xml HTTP/1.1" 404 341 "-" "-"
    89.248.167.131 123.456.789.0 - [11/Jun/2025:20:01:37 +0200] "GET /.well-known/security.txt HTTP/1.1" 404 341 "-" "-"
    89.248.167.131 123.456.789.0 - [11/Jun/2025:20:01:37 +0200] "GET /favicon.ico HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36"
    114.7.160.74 123.456.789.0 - [11/Jun/2025:20:07:52 +0200] "GET / HTTP/1.0" 200 1147 "-" "-"
    195.3.221.137 123.456.789.0 - [11/Jun/2025:20:12:55 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.140 Safari/537.36"
    149.50.103.48 123.456.789.0 - [11/Jun/2025:20:31:27 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    87.255.194.135 123.456.789.0 - [11/Jun/2025:20:38:55 +0200] "GET /admin/assets/js/views/login.js HTTP/1.0" 404 341 "-" "xfa1"
    185.218.84.178 123.456.789.0 - [11/Jun/2025:20:46:34 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    185.218.84.178 123.456.789.0 - [11/Jun/2025:20:50:59 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    204.76.203.206 123.456.789.0 - [11/Jun/2025:21:05:37 +0200] "GET / HTTP/1.1" 200 1147 "-" "-"
    204.76.203.206 123.456.789.0 - [11/Jun/2025:21:05:37 +0200] "GET /set_safety.shtml?r=52300 HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
    204.76.203.206 123.456.789.0 - [11/Jun/2025:21:05:43 +0200] "GET /sysinit.shtml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
    93.174.93.12 - - [11/Jun/2025:21:09:31 +0200] "GET / HTTP/1.0" 200 1147 "-" "Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/0.8.12"
    45.135.193.65 123.456.789.0 - [11/Jun/2025:21:20:46 +0200] "GET /_profiler/phpinfo HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Linux; Android 4.2.2; WX10K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36"
    196.251.71.232 123.456.789.0 - [11/Jun/2025:21:32:13 +0200] "GET /.env HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
    185.218.84.178 123.456.789.0 - [11/Jun/2025:21:40:51 +0200] "GET / HTTP/1.1" 200 1147 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
    164.90.233.210 - - [11/Jun/2025:21:41:01 +0200] "  " 400 345 "-" "-"
    

  • [l] Felix Wed, 11 Jun 2025 22:01:58 GMT Nr. 157768
    >>157767
    >Fail2Ban
    Schlangenöl
  • [l] Felix Thu, 12 Jun 2025 09:35:21 GMT Nr. 157770
    PNG 1267×768 126.8k
    Was an HSTS einfach scheiße per-default war ist, dass ein abgelaufenes Cert ja nicht unsicher ist, solange es kein neues gibt. Certs laufen halt ab. Nur eine Revozierung oder ein neues Cert würde bedeuten, dass es Gründe gibt dem alten Cert nicht zu vertrauen und HSTS zu enforcen.

    Aber das führ zu weit, insbesondere in dast volkommen tote hirnlose OSCP modell:
    >https://letsencrypt.org/2024/12/05/ending-ocsp/
    So viele Dinge waren gut gemeint, aber nicht zu Ende gedacht.

    Ein Certlog muss auch nicht wie eine Blockchain sein. Für EV-Certs könnte man die Letzen 2 Jahre speichern, sind eh wenige da überteurtes Schlangenöl. Für reguläre Certs die letzten 6 Monate.

    Erst dachte ich die 6 Tages Certs sind behindert, aber das würde die Cert-Logs tatsächlich kleiner machen.
    >https://letsencrypt.org/2025/01/16/6-day-and-ip-certs/
    Dann gibt es nur noch aktive Server in den logs, bei einem guten pruning. Z.B. alles was maximal 2 Monate her ist.
    Das neue Bottleneck sind dann eher die IOPS die durch die Decke gehen bei den DBs.

    Vielleicht wäre etwas weniger aggressives Vergeben besser.

  • [l] Felix Thu, 12 Jun 2025 10:06:17 GMT Nr. 157772
    >>157768
    Ja, ebenso. Felix hat inzwischen eine rigerose Aussperrungspolitik. SSH ist nur für seine anderen Hosts freigegeben (inklusive unprivilegiertem Jump-Host wie in >>157142 beschrieben) und für die ISPs, die er regelmäßig nutzt (effektiv je zwei IPv4-Präfixe und einen größeren IPv6-Bereich von DTAG und Vodafone).
    Management-Web-Domäne hat alle kritischen Dinge hinter Client-Zertifikat von der FelixCA oder wenigstens Passwort. www-Domäne enthält nur winzigen statischen Inhalt und hat daher Logs gleich ganz deaktiviert.
    Fail2ban wäre nur annähernd sinnvoll, wenn man statt einzelner IP-Adressen gleich einen ganzen Adressbereich oder ISP sperrt.
  • [l] Felix Thu, 12 Jun 2025 10:06:47 GMT Nr. 157773
    PNG 1591×1642 37.6k
    >>157770
    >https://letsencrypt.org/2025/06/11/reflections-on-a-year-of-sunlight/
    Wobei sich auch da etwas tut, 4k-10k USD pro Jahr für ein optimiertes FLOSS log.
    >https://abyssdomain.expert/@filippo/114665839543470407
    Alles vom Nepobaby und Go-Shill, welches Felix so verachtet hat.
    <https://blog.fefe.de/?q=Filo

  • [l] Felix ☎️ Thu, 12 Jun 2025 13:38:13 GMT Nr. 157776
    JPG 1024×577 443.2k
    Effe[Raute][Raute]Mod

    ==Test==
  • [l] Felix ☎️ Thu, 12 Jun 2025 15:13:54 GMT Nr. 157778
    >Leute. Ernsthaft?
    https://www.reddit.com/r/fefe_blog_interim/
  • [l] Felix Thu, 12 Jun 2025 17:50:40 GMT Nr. 157788
    JPG 1099×1195 424.0k
    >>157778
    Das geile ist, das war offenbar als Mastodon-Brücke gedacht von einem Programmierer. Man sollte da News hochladen. Natürlich ist der durchschritts Lasmich-Leser zu kerndeppert das zu begreifen, und deswegen steht jetzt dort ständig Müll von Nutzern die stattdessen Fragen stellen.


[Zurück]
[c] [meta] [fefe] [erp]