【发布时间】:2018-10-18 06:19:29
【问题描述】:
漏洞显示为:-
- SQL 注入 - SQLite
方法: GET
参数:查询
攻击: ' | case randomblob(10000000) 当不为 null 然后 "" else "" end --
证据:查询时间可通过参数值[' | case randomblob(10000000) when not null then "" else "" end --],导致请求耗时[542]毫秒,参数值[' | case randomblob(100000000) when not null then "" else "" end --],这导致请求需要 [900] 毫秒,而原始未修改的值为 [query] 的查询需要 [167] 毫秒。
- SQL 注入 - Oracle - 基于时间
方法: GET
参数:查询
攻击: 字段:[query],value [query and exists (SELECT UTL_INADDR.get_host_name('10.0.0.1') from dual union SELECT UTL_INADDR.get_host_name('10.0.0.2') from dual union SELECT UTL_INADDR.get_host_name('10.0.0.3') from dual union SELECT UTL_INADDR.get_host_name('10.0.0.4') from dual union SELECT UTL_INADDR.get_host_name('10.0.0.5') from dual) -- ]
- 高级 SQL 注入 - Oracle AND 基于时间的盲注
方法: GET
参数:查询
攻击:查询 AND 2972=DBMS_PIPE.RECEIVE_MESSAGE(CHR(113)||CHR(65)||CHR(80)||CHR(114),5)
- SQL 注入 - MsSQL
方法: GET
参数:查询
攻击:查询 WAITFOR DELAY '0:0:15' --
- SQL 注入 - 超音速 SQL - 基于时间
方法: GET
参数:查询
攻击: 字段:[query], value ["; select "java.lang.Thread.sleep"(15000) from INFORMATION_SCHEMA.SYSTEM_COLUMNS where TABLE_NAME = 'SYSTEM_COLUMNS' and COLUMN_NAME = 'TABLE_NAME ' -- ]
- SQL 注入 - PostgreSQL - 基于时间
方法: GET
参数:查询
攻击: field: [query], value [case when cast(pg_sleep(15) as varchar) > '' then 0 else 1 end]
- SQL 注入 - MySQL
方法: GET
参数:查询
攻击:查询/睡眠(15)
- 高级 SQL 注入 - PostgreSQL > 8.1 堆叠查询(评论)
方法: GET
参数:查询
攻击:查询;SELECT PG_SLEEP(5)--
- 高级 SQL 注入 - Oracle 堆叠查询(DBMS_PIPE.RECEIVE_MESSAGE - 注释)
方法: GET
参数:查询
攻击: 2018 年 2 月;SELECT DBMS_PIPE.RECEIVE_MESSAGE(CHR(105)||CHR(122)||CHR(102)||CHR(108),5) FROM DUAL--
- 高级 SQL 注入 - Microsoft SQL Server/Sybase 基于时间的盲注。
方法: GET
参数:查询
攻击:查询)WAITFOR DELAY CHAR(48)+CHAR(58)+CHAR(48)+CHAR(58)+CHAR(91)+CHAR(83)+CHAR(76) +CHAR(69)+CHAR(69)+CHAR(80)+CHAR(84)+CHAR(73)+CHAR(77)+CHAR(69)+CHAR(93) AND (1972=1972
我们所有的源代码都遵循给定的示例:-
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u where u.firstname = :firstname or u.lastname = :lastname")
User findByLastnameOrFirstname(@Param("lastname") String lastname,
@Param("firstname") String firstname);
}
【问题讨论】:
-
您可以添加 ZAP 问题详细信息吗?许多基于 SQL 的规则都在报告某事,这一事实使得它更有可能是一个真正的问题,而不是误报。
-
另外,您可以查看历史选项卡并查看请求和响应,这可以帮助您了解 Zap 报告 SQLi 的原因。
-
@SimonBennetts 我已经添加了详细信息。
标签: sql-injection zap