HXSecurity / DongTai

Dongtai IAST is an open-source Interactive Application Security Testing (IAST) tool that enables real-time detection of common vulnerabilities in Java applications and third-party components through passive instrumentation. It is particularly suitable for use in the testing phase of the development pipeline.
https://dongtai.io
Apache License 2.0
1.24k stars 145 forks source link

[Bug]: 登陆后接口异常,出现Server Error (500) #932

Closed Changego closed 2 years ago

Changego commented 2 years ago

Preflight Checklist

Version

1.8.3

Installation Type

Official Kubernetes

Service Name

DongTai-Web

Describe the details of the bug and the steps to reproduce it

1.登陆后接口异常,出现500错误

Additional Information

image image

Logs

[pid: 22|app: 0|req: 33/292] 172.20.105.226 () {42 vars in 971 bytes} [Thu Aug 25 15:16:10 2022] GET /api/v1/user/info => generated 153 bytes in 48 msecs (HTTP/1.0 200) 10 headers in 394 bytes (1 switches on core 4) [pid: 24|app: -1|req: -1/293] 172.20.105.226 () {40 vars in 980 bytes} [Thu Aug 25 15:16:10 2022] GET /upload/assets/img/logo.png?v=0.5526973647342466 => generated 4562 bytes in 0 msecs via sendfile() (HTTP/1.0 200) 3 headers in 112 bytes (0 switches on core 2) [pid: 19|app: 0|req: 54/294] 172.20.105.226 () {42 vars in 993 bytes} [Thu Aug 25 15:16:10 2022] GET /api/v1/message/unread_count => generated 84 bytes in 47 msecs (HTTP/1.0 200) 10 headers in 393 bytes (1 switches on core 5) ERROR 2022-08-25 15:16:10,760 [init.dispatch:101] url: /api/v1/projects,exc:(1054, "Unknown column 'iast_vulnerability.is_del' in 'where clause'") Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute return self.cursor.execute(query, args) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 148, in execute result = self._query(query) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 310, in _query conn.query(q) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 548, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 775, in _read_query_result result.read() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 1156, in read first_packet = self.connection._read_packet() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 725, in _read_packet packet.raise_for_error() File "/usr/local/lib/python3.7/site-packages/pymysql/protocol.py", line 221, in raise_for_error err.raise_mysql_exception(self._data) File "/usr/local/lib/python3.7/site-packages/pymysql/err.py", line 143, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.OperationalError: (1054, "Unknown column 'iast_vulnerability.is_del' in 'where clause'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "./dongtai_common/endpoint/init.py", line 99, in dispatch response = handler(request, *args, **kwargs) File "./dongtai_web/views/projects.py", line 58, in get return R.success(data=ProjectSerializer(page_data, many=True).data, File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 745, in data ret = super().data File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 246, in data self._data = self.to_representation(self.instance) File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 664, in to_representation self.child.to_representation(item) for item in iterable File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 664, in self.child.to_representation(item) for item in iterable File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 515, in to_representation ret[field.field_name] = field.to_representation(attribute) File "/usr/local/lib/python3.7/site-packages/rest_framework/fields.py", line 1882, in to_representation return method(value) File "./dongtai_web/serializers/project.py", line 46, in get_vul_count for vul_level in vul_levels: File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 280, in iter self._fetch_all() File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1324, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 109, in iter for row in compiler.results_iter(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size): File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1130, in results_iter results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size) File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1175, in execute_sql cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 66, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers return executor(sql, params, many, context) File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/utils.py", line 90, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute return self.cursor.execute(query, args) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 148, in execute result = self._query(query) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 310, in _query conn.query(q) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 548, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 775, in _read_query_result result.read() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 1156, in read first_packet = self.connection._read_packet() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 725, in _read_packet packet.raise_for_error() File "/usr/local/lib/python3.7/site-packages/pymysql/protocol.py", line 221, in raise_for_error err.raise_mysql_exception(self._data) File "/usr/local/lib/python3.7/site-packages/pymysql/err.py", line 143, in raise_mysql_exception raise errorclass(errno, errval) django.db.utils.OperationalError: (1054, "Unknown column 'iast_vulnerability.is_del' in 'where clause'") ERROR 2022-08-25 15:16:10,770 [log.log_response:230] Internal Server Error: /api/v1/projects Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute return self.cursor.execute(query, args) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 148, in execute result = self._query(query) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 310, in _query conn.query(q) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 548, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 775, in _read_query_result result.read() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 1156, in read first_packet = self.connection._read_packet() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 725, in _read_packet packet.raise_for_error() File "/usr/local/lib/python3.7/site-packages/pymysql/protocol.py", line 221, in raise_for_error err.raise_mysql_exception(self._data) File "/usr/local/lib/python3.7/site-packages/pymysql/err.py", line 143, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.OperationalError: (1054, "Unknown column 'iast_vulnerability.is_del' in 'where clause'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) File "/usr/local/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view return view_func(*args, *kwargs) File "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py", line 70, in view return self.dispatch(request, args, kwargs) File "/usr/local/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view return view_func(*args, *kwargs) File "./dongtai_common/endpoint/init.py", line 102, in dispatch response = self.handle_exception(exc) File "./dongtai_common/endpoint/init.py", line 140, in handle_exception self.raise_uncaught_exception(exc) File "/usr/local/lib/python3.7/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception raise exc File "./dongtai_common/endpoint/init.py", line 99, in dispatch response = handler(request, args, **kwargs) File "./dongtai_web/views/projects.py", line 58, in get return R.success(data=ProjectSerializer(page_data, many=True).data, File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 745, in data ret = super().data File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 246, in data self._data = self.to_representation(self.instance) File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 664, in to_representation self.child.to_representation(item) for item in iterable File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 664, in self.child.to_representation(item) for item in iterable File "/usr/local/lib/python3.7/site-packages/rest_framework/serializers.py", line 515, in to_representation ret[field.field_name] = field.to_representation(attribute) File "/usr/local/lib/python3.7/site-packages/rest_framework/fields.py", line 1882, in to_representation return method(value) File "./dongtai_web/serializers/project.py", line 46, in get_vul_count for vul_level in vul_levels: File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 280, in iter self._fetch_all() File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1324, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 109, in iter for row in compiler.results_iter(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size): File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1130, in results_iter results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size) File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1175, in execute_sql cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 66, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers return executor(sql, params, many, context) File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/utils.py", line 90, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute return self.cursor.execute(query, args) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 148, in execute result = self._query(query) File "/usr/local/lib/python3.7/site-packages/pymysql/cursors.py", line 310, in _query conn.query(q) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 548, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 775, in _read_query_result result.read() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 1156, in read first_packet = self.connection._read_packet() File "/usr/local/lib/python3.7/site-packages/pymysql/connections.py", line 725, in _read_packet packet.raise_for_error() File "/usr/local/lib/python3.7/site-packages/pymysql/protocol.py", line 221, in raise_for_error err.raise_mysql_exception(self._data) File "/usr/local/lib/python3.7/site-packages/pymysql/err.py", line 143, in raise_mysql_exception raise errorclass(errno, errval) django.db.utils.OperationalError: (1054, "Unknown column 'iast_vulnerability.is_del' in 'where clause'") [pid: 24|app: 0|req: 93/295] 172.20.105.226 () {42 vars in 1018 bytes} [Thu Aug 25 15:16:10 2022] GET /api/v1/projects?page=1&pageSize=20&name= => generated 145 bytes in 70 msecs (HTTP/1.0 500) 9 headers in 379 bytes (1 switches on core 1)

tscuite commented 2 years ago

wrong database version

Changego commented 2 years ago

Which version is supported?

tscuite commented 2 years ago

Use this mysql mirror version registry.cn-beijing.aliyuncs.com/huoxian_pub/dongtai-mysq:1.8.3

Changego commented 2 years ago

你好,是Mysql5.7吗? 我这使用了mariadb mysql8都有问题,目前Mysql8出现无法登陆问题了。 image

tscuite commented 2 years ago

Please initialize the custom database manually https://doc.dongtai.io/docs/getting-started/server/initial-sql-config

Changego commented 2 years ago

ERROR 1267 (HY000) at line 110405: Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' cat: 写入错误: 断开的管道 排序问题哦?

update-20210731-release-1.0.0----》update-20220805-release-1.8.3-2.sql 每一个SQL都必须执行?

tscuite commented 2 years ago

Please use the specified character set "--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci"