了解 HTTP GET 攻击请求

信息安全 Web应用程序 攻击 http
2021-08-27 06:33:30

我已经捕获了一些网络攻击。我试图了解每个攻击请求的目的是什么。

GET /site/public/timing?<!+XSS="><img+src=xx:x+onerror=alert(14721850.00337)//"> HTTP/1.1" 200 6718

GET /site/public/timing?<sVg/OnLOaD=prompt(14721850.00307)> HTTP/1.1" 200 6718

GET /site/race/registrationAuth/1761?x"+onmousemove=" HTTP/1.1" 302 -

GET /site/registration/create/3269?execution=e1s1'+(select*from(select(sleep(3)))tw)+' HTTP/1.1" 302 -

GET /site/registration/create/3269?execution=e1s1%20waitfor delay'0:0:3'
4个回答

这看起来像是用于测试不同注入漏洞的自动攻击。据我所知,这里没有真正的恶意有效载荷。相反,这些攻击旨在检测网站是否易受攻击。我假设如果测试结果为阳性,网站将受到真实有效载荷的攻击。

前三种是XSS攻击。前两个将尝试弹出一个带有数字的提示14721850.00337如果将该数字乘以 100,您将得到三天前的 Unix 时间戳。我猜它以某种方式用于定时攻击。

使用了一些欺骗过滤器的常见技巧 - 混合 CAsE,prompt而不是alert/而不是空格。

SQL注入的第四次和第五次测试它试图让数据库服务器“休眠”一段时间。这使得检查攻击是否成功变得容易。如果需要几秒钟才能得到回复,它就起作用了。我认为第四个针对 MySQL,第五个针对 MSSQL,但它们也可能适用于其他系统。

所以你需要担心吗?并不真地。这种自动攻击对于任何面向 Internet 的服务器都很常见。这并不一定意味着有人正在积极攻击您,或者您很容易受到攻击。但是,测试攻击是否有效可能是一个好主意,因为如果有效,您可以确定它们现在已被利用。

所有这些请求看起来都来自自动化测试工具。与一些评论所说的相反,延迟并不是恶意的,只是为了盲目地测试代码执行;如果您看不到响应,让它休眠一定的秒数是一个可靠的测试。

GET /site/public/timing?<!+XSS=">    <img+src=xx:x+onerror=alert(14721850.00337)//"> HTTP/1.1" 200 6718
GET /site/public/timing?<sVg/OnLOaD=prompt(14721850.00307)> HTTP/1.1" 200 6718

XSS 尝试,尝试警告 14721850.00307 / 337 以查看该页面是否易受攻击。

GET /site/race/registrationAuth/1761?x"+onmousemove=" HTTP/1.1" 302 -

有点不清楚,没有功能代码。看起来像 XSS 使用事件处理程序来规避过滤器

GET /site/registration/create/3269?execution=e1s1'+(select*from(select(sleep(3)))tw)+' HTTP/1.1" 302 -

MySQL v5 攻击。尽管有 SELECT 语句,它只尝试让服务器休眠 3 秒以查看它是否易受攻击。

GET /site/registration/create/3269?execution=e1s1%20waitfor delay'0:0:3'

Microsoft SQL Server 攻击。同样的故事,没有恶意代码,只是一个 3 秒的延迟。

1 & 2:一些 XSS 注入

3:很可能也是 XSS

4:SQL注入(数据库转储)

5:T-SQL注入(SQL探针)

请记住,有些机器人只是在 url 后面扔东西,看看是否有东西回来,这些都是非特定目标(模糊测试)。然后检查接收到的标头是否有 200 或其他一些非错误 HTTP 代码。此外,通过随机化 GET 请求,攻击者可以进入缓存结果或绕过安全措施。

不是 100% 确定这些,但第一个和第二个看起来像脚本攻击。他们都试图注入 JavaScript 来发出带有特定数字的警报或提示 - 本身没有害处,但它正在测试这是否可能。

第三个是尝试添加一个onmousemove事件。我认为它试图让用户每次移动鼠标时都发送一个请求。为什么这闻起来像拒绝服务攻击?

第四个看起来像 SQL 注入:它从另一个查询的结果中请求所有内容。我不确定其他查询的作用,但我认为这意味着等待三秒钟并且什么都不做。

第五个是盲注SQL这是告诉 SQL Server 数据库等待三秒钟;如果返回成功,则数据库可以被攻击。