Questo parametro è vulnerabile a SQL Injection?

1

Il server di backend sta eseguendo Tomcat 8.5 (Java backend). L'URL in questione è:

https://website.com/application/servlet.do?currentOID=abc12300000000

Ho scoperto che quando fornisco un OID incompleto (cioè 1 rimuova il carattere char) o aggiungo un char (cioè a o '), il server genera un errore:

org.apache.ojb.broker.PersistenceBrokerSQLException: SQL failure while insert object data for class com.abc, PK of the given object is [ oid=CBA000000AAAAA], object was GroupPageTab CBA000000AAAAA, exception message is [String or binary data would be truncated.]
    at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAccessImpl.java:243)
    at org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1642)
    at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1557)
    at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1506)
    ...

e OID CBA000000AAAAA, cambia quando viene modificato currentOID. Sembra che potrebbe essere vulnerabile all'iniezione? Sono inesperto in JDBC quindi non sono sicuro.

    
posta Rob Gates 30.08.2018 - 15:39
fonte

1 risposta

4

No, l'errore non indica l'iniezione SQL.

String or binary data would be truncated.

Ciò significa che i dati che tenti di inserire sono troppo grandi per la colonna. Se la colonna è di tipo CHAR (10), è possibile memorizzare 10 byte in essa. Se si tenta di memorizzare 20 byte, si ottiene questo errore. Questo può accadere anche se i dati sono gestiti correttamente e la pagina non è vulnerabile all'iniezione SQL.

    
risposta data 30.08.2018 - 16:17
fonte

Leggi altre domande sui tag