问题
遇到一个PostgreSQL JDBC Driver漏洞
PostgreSQL JDBC Driver that is 42.2.x prior to 42.2.27, 42.3.x prior to 42.3.8, 42.4.x prior to 42.4.3 or 42.5.x prior to 42.5.1. It is, therefore, affected by an information disclosure vulnerability.
原因
PostgreSQL JDBC Driver在版本小于42.2.26和版本大于42.3.0小于42.4.1之间存在一个SQL注入漏洞,漏洞原因是由于java.sql.ResultRow.refreshRow()方法的PGJDBC实现没有执行列名的转义,因此如果列名包含语句终止符的恶意列名,例如";",可能导致 SQL 注入。
解决方案
升级 PostgreSQL JDBC Driver 到更高版本,Upgrade to PostgreSQL JDBC Driver version 42.2.27, 42.3.8, 42.4.3, 42.5.1, or later
下载PostgreSQL JDBC Driver包
我们可以从 jdbc.postgresql.org 下载 JDBC for PostgreSQL。点击这里直达
我使用下载jar包的方式,小伙伴们也可以根据项目需求去看下面提示修改代码
点击下载
将包上传到服务器
我们可以使用一些工具进行上传,或者直接在服务器目录下执行命令去下载这个包
查找原有漏洞包所在路径
/var路径可根据需求进行更改
sudo find /var -name "postgresql-*.jar"
执行命令后,我们可以看到,系统找到了两个jar包,一个是我们上传的,一个是原有有问题的包
[XXXXXXX_USER_01@XXXXXXXX ~]$ sudo find /var -name "postgresql-*.jar"
[sudo] password for XXXXXXXX_USER_01:
/var/lib/XXXXXXXXXXXXXXXXXXXXXXXXXXX/lib/jdbc/postgresql/postgresql-42.3.1.jar
/var/local/XXX/jdbc/postgresql-42.5.1.jar
解决漏洞
我们进入有问题包的路径,把这个包删掉,然后替换为我们的新包,就可以啦~
- 今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢