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

5421 Ergebnisse

[0] ... [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] ... [271]
  • [l] Felix Sun, 25 May 2025 10:28:26 GMT Nr. 157003
    WEBM 226×400 0:41 2.0M
  • [l] Felix ☎️ Sun, 25 May 2025 10:01:50 GMT Nr. 157000
    >>156974
    Dieser Felix hat mal gelernt dass Enterprise-Software mindestens Dreifachpointer braucht.

    Ansonsten kennt er Doppelpointer aus WinApi/DirectX, da werden gerne Arrays von pointern verwendet.
  • [l] Felix Sun, 25 May 2025 09:34:38 GMT Nr. 156999
    >>156991
    So wie Fefe den Server strukturiert hat, gibt es keine reinen Mountpoints und keine Web-Pfade, die man von anderer Stelle im Dateisystem einhängen kann. Seine Lösung ist tatsächlich, im Gegensatz zu anderen Webservern Symlinks als Feature zuzulassen.

    > The path checking deliberately _allows_ to leave the file system, as long as you follow a symbolic link in the process. That means, if you symlink out of the FTP file system (and the destination is in the chroot jail), gatling will allow FTP (and HTTP!) users to follow the symlink. However, following a directory symlink and appending "/../" will not follow the .. directory entry from the target directory of the symlink, as an attacker may hope.
    > The idea is to make it easy to create an FTP Server by putting a few symlinks to directories you want to export in an empty directory and starting gatling there.

    Auch Dinge wie "CGI als Index-Dokument" [0] werden ad-hoc gelöst, indem der Webserver überprüft, ob die Datei "index.html" ausführbar ist und wie ein Skript oder eine ELF-Binärdatei aussieht.

      1889  #ifdef SUPPORT_PROXY
      1890      /* if index.html is executable, see if we have a file_executable
      1891       * CGI rule */
      1892      if (!noproxy && (ss->st_mode&S_IXOTH)) {
      1893        char* temp=alloca(strlen(Filename)+10);
      1894        if (pread(fd,temp,4,0)==4) {
      1895          if (byte_equal(temp,2,"#!") || byte_equal(temp,4,"\177ELF")) {
      1896            int res;
      1897            i=fmt_str(temp,Filename);
      1898            i+=fmt_str(temp+i,"index.html");
      1899            temp[i]=0;
      1900            switch ((res=proxy_connection(sockfd,temp,dir,h,1,args,de,dirfd))) {
      1901            case -2: break;
      1902            case -1: return -1;
      1903            default:
      1904              if (res>=0) {
      1905                close(fd);
      1906                h->buddy=res;
      1907                return -3;
      1908              }
      1909            }
      1910          }
      1911        }
      1912      }
      1913  #endif
    


    [0] https://blog.fefe.de/index.html?mon=202505
  • [l] Felix Sun, 25 May 2025 03:04:13 GMT Nr. 156994
    JPG 1080×982 59.2k
  • [l] Felix Sun, 25 May 2025 00:01:43 GMT Nr. 156993
    JPG 218×422 19.4k
    Mötter schlafen, pfostiert Enters.
  • [l] Felix Sun, 25 May 2025 00:00:02 GMT Nr. 156992
    >>156991
    Früher hat man überall .htaccess reingedonnert, um seine Frickel-PHP-Skripte zu schützen oder um hippe, kühle SEO-URLs zu haben.
  • [l] Felix Sat, 24 May 2025 23:28:07 GMT Nr. 156991
    JPG 836×818 438.9k
    >>156989
    Geile Auflösung!

    Gibt es einen legitimen Anwendungsfall dotfiles auf einem reinen webserver mountpoint zu haben statt einer dot-dir für z.B. die altmodische webroot acme challenge?
  • [l] Felix Sat, 24 May 2025 23:17:09 GMT Nr. 156990 SÄGE
    >>156989
    >Dieser besondere Schutz von Dotfiles greift aber nur im Wurzelverzeichnis
    Schande über mein Haupt, vor lauter Irritation über den Kot-Stil habe ich die for-Schleife übersehen.
  • [l] Felix Sat, 24 May 2025 22:54:05 GMT Nr. 156989
    PNG 1777×1222 52.4k
    >>156967
    Der Grund ist einfach: Feinster Murks in gatling/http.c, über den man als Außenstehender erst grübeln muss, welchem Zweck er dient. (Laut CVS Annotate ist dieser Code seit dem "initial import" praktisch unverändert, wurde nur aus gatling.c in http.c ausgegliedert.)

      1630  int64 http_openfile(struct http_data* h,char* filename,struct stat* ss,int sockfd,enum Method method) {
    ...
      1694    /* first, we need to strip "?.*" from the end */
      1695    i=str_chr(filename,'?');
      1696    Filename=alloca(i+6+(defaultindex?strlen(defaultindex):0));   /* enough space for .gz and .bz2 */
      1697    byte_copy(Filename,i+1,filename);
      1698    if (Filename[i]=='?') { Filename[i]=0; args=filename+i+1; }
      1699    /* second, we need to un-urlencode the file name */
      1700    /* we can do it in-place, the decoded string can never be longer */
    ...
      1712    /* third, change /. to /: so .procmailrc is visible in ls as
      1713     * :procmailrc, and it also thwarts most web root escape attacks */
      1714    for (i=0; Filename[i]; ++i)
      1715      if (Filename[i]=='/' && Filename[i+1]=='.')
      1716        Filename[i+1]=':';
    ...
    


    Im Umkehrschluss heißt das Verzeichnis auf dem Server tatsächlich ":well-known". Dieser besondere Schutz von Dotfiles greift aber nur im Wurzelverzeichnis, z. B. wenn man gatling im Heimverzeichnis startet.
  • [l] Felix Sat, 24 May 2025 22:01:16 GMT Nr. 156988
    >>156985
    Das ist ja das Problem er scheint sowohl systemd-networkd und NetworkManager parallel laufen zu haben und labert dann, das seine Interfaces sich umbenennen. (Ich kann meine Interfaces zuhause ohne probleme auf reinem NetworkManager und reinem Poettering-Murks routen und frei benamsen.) Hadmut will es einfach nicht wissen, kann nicht sein, dass andere außer ihm da können.
  • [l] Felix Sat, 24 May 2025 21:59:02 GMT Nr. 156987
    >>156937
    >Da du dich mit der glib auszukennen scheinst
    Naja, geht so. Mit den Interna ist Felix jetzt nicht so genau vertraut.

    Felix wollte eigentlich bereits früher antworten, merkte dabei aber, dass er selber noch mal genauer darüber nachdenken muss. Das entsprechende Commit [0] hat inzwischen ja schon ein anderer Felix rausgesucht. Der zugehörige MR [1] ist auch noch ganz interessant.

    ../../source/malcontent/libmalcontent-ui/user-controls.c:1001:21: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     1001 |   if (g_set_object (&self->user, user))
    /opt/gnome/install/include/glib-2.0/gobject/gobject.h:744:33: note: in definition of macro ‘g_set_object’
      744 |   (g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \
          |                                 ^~~~~~~~~~
    


    Es sieht jedenfalls so aus, als wäre das Problem in diesem Fall gewesen, dass es sich hier nicht bloß um einen Pointer handelt, sondern um einen Pointer auf einen Pointer, der dann auch noch dereferenziert wird. Warum genau das einen Unterschied macht, ist Felix aber bisher auch noch nicht klar geworden. Felix hat jetzt ein paar Tage darüber nachgedacht und ist zu keinem wirklichen Ergebnis gekommen. Felix geht daher davon aus, dass es einfach so ist, weil es so ist – eine von vielen Ungereimtheiten in C. Keine sonderlich befriedigende Antwort, ich weiß. Vielleicht weiß ja ein anderer Felix mehr.

    Eventuell fällt Felix dazu ja später noch mehr ein.

    [0] https://gitlab.gnome.org/GNOME/glib/-/commit/51acb01f73da2ba7eb8838745df05bdd044a2636
    [1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1372
  • [l] Felix Sat, 24 May 2025 21:44:52 GMT Nr. 156985
    PNG 2560×1920 322.0k
    >>156982
    >also ich ihm erklärt habe wie er sein internes Routing zum laufen bekommt
    Den Komplexitäts-Scheißeberg wegwerfen und stattdessen DHCP nehmen?
    Felix hat auch gute Erfahrungen damit gemacht, einfach bares Metall die link-local IPv6-Adresse fe80::... zu verwenden, hat fickend immer funktioniert.

    Bild übrigens härtestens relatiert (Avahi ist Pöttering-Ware).
  • [l] Felix Sat, 24 May 2025 21:39:04 GMT Nr. 156984
    JPG 300×375 20.1k
    >>156982
    Was, glaubt Felix, wird zu erst kommen? Linux auf dem Schreibtisch oder Hadmuts in Rubin geschriebene Blogweichware?


[0] ... [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] ... [271]
[c] [meta] [fefe] [erp]