后端服务器正在运行Tomcat8.5 (Java后端)。所讨论的URL是:
https://website.com/application/servlet.do?currentOID=abc12300000000我发现,当我给出一个不完整的OID (即1个字符删除),或者添加一个char (即a或')时,服务器抛出一个错误:
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)
...和OID CBA000000AAAAA,当currentOID被更改时会发生变化。这看起来可能很容易被注射吗?我对JDBC缺乏经验,所以我不确定。
发布于 2018-08-30 14:17:19
不,错误并不表示SQL注入。
字符串或二进制数据将被截断。
这意味着您试图插入的数据对于列来说太大了。如果该列的类型为CHAR( 10 ),则可以在其中存储10个字节。如果尝试在其中存储20个字节,则会得到此错误。即使数据被正确处理并且页面不容易受到SQL注入的攻击,也可能发生这种情况。
https://security.stackexchange.com/questions/192722
复制相似问题