einfache setuid-binäre Ausnutzung

3114
MedAli

Ich habe ein Setuid-Programm, das eine Datei auf folgende Weise auflistet:

#include <stdlib.h> #include <stdio.h> int main(void) { system("ls /challenge/binary/binary1/.passwd"); return 0; } 

Was ich brauche, ist, das Programm dazu zu bringen, den Inhalt der Datei offenzulegen, anstatt nur den Namen aufzulisten. Also habe ich versucht, einen Alias ​​zu erstellen, um das Verhalten von ls folgendermaßen zu ändern :

alias ls='cat' 

aber es funktioniert nicht. Könnten Sie mich bitte in die richtige Richtung weisen!

0
Warum ändern Sie nicht "system" ("ls" durch "system" ("cat"?). Versuchen Sie, einen Weg zu finden, ein Programm mit dem Systembefehl zu missbrauchen, um etwas zu tun, was es nicht tun soll. M'vy vor 10 Jahren 1

2 Antworten auf die Frage

3
Gilles

Aliase leben nur auf der Shell, die sie definiert hat, und systemstarten eine neue Shell. Diese Shell liest keine ~/.bashrcoder andere Dateien, in denen typischerweise Aliase definiert sind: Nur interaktive Shells tun dies. Einige Shells, aber nicht alle, lesen eine andere Datei, aber es gibt eine Shell-unabhängige Möglichkeit, dies auszunutzen.

Die Shell-Befehlssuche versucht die folgenden Elemente in dieser Reihenfolge:

  • Aliase - nein.
  • Funktionen - nein, aus demselben Grund.
  • Builtins - nein.
  • Befehle in der PATH- es muss dies standardmäßig sein.

Stellen Sie also sicher, dass die Suche nach lsin $PATHdas catProgramm nach oben bringt .

0
LawrenceC

Wechseln Sie lszu cat.

lslistet Verzeichnisse auf, zeigt keine Dateien an. catmacht das.

Nein, das ist nicht die Frage! Ich habe eine kompilierte Version eines setuid-Programms, und ich muss das Verhalten eines Programms ändern, um cat anstelle von ls zu verwenden, ohne das setuid-Programm ändern zu müssen MedAli vor 10 Jahren 0
Tatsächlich beantwortete xe aus Fairness gegenüber der Ultraschallklinge die Frage wie geschrieben. Sie haben nicht erwähnt, dass es keine Quelle gibt. Tatsächlich haben Sie in der Frage, wie Sie sie gestellt haben, die Quelle angegeben. Sie haben auch nicht erwähnt, dass Sie versuchen, das Programm eines anderen zu hacken. Schlechte Ultrasaw-Klinge ist nicht telepathisch. JdeBP vor 10 Jahren 2
Der Titel ist ziemlich erklärend! MedAli vor 10 Jahren 2