einfache setuid binäre ausnutzung

0

Ich habe ein Setuid-Programm, das eine Datei folgendermaßen auflistet:

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

Was ich brauche, ist, das Programm zu veranlassen, den Inhalt der Datei offenzulegen, anstatt nur ihren Namen aufzulisten. Also habe ich versucht, einen Alias ​​zu erstellen, um das Verhalten von zu ändern ls diesen Weg:

alias ls='cat'

aber es funktioniert immer noch nicht. Könnten Sie mir bitte die richtige Richtung zeigen!

MedAli
quelle
1
Warum nicht ändern? system("ls durch system("cat ? Versuchen Sie, ein Programm zu missbrauchen, indem Sie den Systembefehl verwenden, um etwas zu tun, das es nicht tun soll?
M'vy

Antworten:

3

Aliase leben nur auf der Shell, die sie definiert hat, und system startet eine neue Shell. Diese Shell liest nicht ~/.bashrc oder andere Dateien, in denen in der Regel Aliase definiert sind, entweder nur interaktive Shells. Einige Shells, aber nicht alle, lesen eine andere Datei, aber es gibt eine Shell-unabhängige Möglichkeit, dies zu nutzen.

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

  • Aliase - nein.
  • Funktionen - nein, aus dem gleichen Grund.
  • Builtins - nein.
  • Befehle in der PATH - Das muss standardmäßig so sein.

So arbeiten Sie daran, dass die Suche nach ls im $PATH wird das aufdrehen cat Programm.

Gilles
quelle
0

Veränderung ls zu cat.

ls listet Verzeichnisse auf, es werden keine Dateien angezeigt. cat macht das.

LawrenceC
quelle
Nein, das ist nicht die Frage! Ich habe eine kompilierte Version eines setuid-Programms und muss das Verhalten eines Programms ändern, um cat anstelle von ls zu verwenden, ohne das setuid-Programm ändern zu müssen
MedAli
2
Tatsächlich beantwortete xe die Frage aus Fairnessgründen wie geschrieben. Sie haben nicht erwähnt, dass Sie nicht die Quelle haben. In der Tat in der Frage, wie Sie gefragt unter der Voraussetzung die Quelle. Sie haben auch nicht erwähnt, dass Sie versuchen, das Programm eines anderen zu hacken. Schlechte Ultrasawblade ist nicht telepathisch.
JdeBP
2
Der Titel ist ziemlich erklärend!
MedAli