Я пытаюсь понять, как работают инъекции HQL, но мне нужна помощь. Я отправляю моему серверу запрос HTTP POST со следующим json:
{
"status":"COMMUNICATION",
"planning": {
"from": "01-20-2013",
"to": "11-12-2015"
}
}
Я знаю, что можно ввести мошеннический запрос в конце параметра "status" потому что, когда я закрываюсь с простой цитатой (например: "status":"COMMUNICATION'"
), сервер возвращает ошибку Hibernate с запросом:
{
"exception": "org.springframework.dao.InvalidDataAccessApiUsageException",
"error": "Internal Server Error",
"message": "org.hibernate.QueryException: expecting ''', found '<EOF>' [SELECT com FROM com.company.CorRequest as com where com.corCommunicationId > 0 AND com.status = 'COMMUNICATION'' AND com.scheduledDate > to_timestamp('01-20-2013','MM-dd-yyyy HH24:MI') AND com.scheduledDate <= to_timestamp('11-12-2015','MM-dd-yyyy HH24:MI')]; nested exception is java.lang.IllegalArgumentException: org.hibernate.QueryException: expecting ''', found '<EOF>' [SELECT com FROM com as com where com.corCommunicationId > 0 AND com.status = 'COMMUNICATION'' AND com.scheduledDate > to_timestamp('01-20-2013','MM-dd-yyyy HH24:MI') AND com.scheduledDate <= to_timestamp('11-12-2015','MM-dd-yyyy HH24:MI')]",
"path": "/v1/comuni/",
"timestamp": 1579167902428,
"status": 500
}
Когда я вставляю "COMMUNICATION')--"
, я получаю весь назад, но я ничего не могу сделать, у тебя есть идеи?