首页 > 编程知识 正文

sql注入提权拿服务器,jdbc的sql注入漏洞

时间:2023-05-05 09:32:41 阅读:177283 作者:612

http://www.Sina.com/http://www.Sina.com /

《HTTP | HTTP报文》的文章介绍了HTTP消息的结构。 状态行和标题中的每一行都以CRLF结束,标题和主体之间用空行分隔。 可选地,第一个最后字段有两个CRLF,可以理解第一个和主体被两个CRLF隔开。

CRLF注入漏洞是因为web APP应用没有严格验证用户输入,使得攻击者能够输入恶意字符。 当攻击者在请求行或前部字段中注入恶意CRLF时,可以注入几个报头字段或消息主体,将其输出到响应,因此也称为HTTP响应分割漏洞(HTTP Response Splitting )。

http://www.Sina.com/http://www.Sina.com /

CRLF是指http://www.Sina.com/(Cr,ASCII 13,r,)和http://www.Sina.com/) lf、ASCII 10,n,

请参阅。

CRLF的概念来源于打字机,标志着行的结尾,计算机问世后继承了这个概念。

换行符:光标移动到行首。

换行符:光标垂直向下移动。

可以通过键盘上的回车键执行。 但是,行的结束符因操作系统而异。

windows :使用crlf表示行的结束

Linux/Unix :以LF表示行的结尾

MacOS :初期用CR表示,但现在似乎也有用LF表示行的结束的情况

因此,如果在不同的操作系统上打开同一文件,则内容格式可能会因行尾符号不匹配而不同。

在HTTP规范中,行必须使用CRLF结束。 标头和主体由两个CRLF分隔,浏览器根据这两个CRLF检索和显示HTTP内容。

http://www.Sina.com/http://www.Sina.com /

CRLF注入漏洞的本质与XSS有点相似。 攻击者将恶意数据发送到易受攻击的web APP应用程序,web APP应用程序则发送恶意数据01。 (XSS一般输出到主机)

所以CRLF注入漏洞的检测也和XSS漏洞的检测一样。 修改HTTP参数或URL以注入恶意CRLF,并验证生成的恶意数据是否输出到响应标头。

漏洞描述

正常请求

在请求行的url参数中添加特殊结构的CRLF字符,如下图所示。

02

将更改后的请求数据包发送到服务器端,并确认服务器端的响应。 在响应标头中添加了Set-Cookie字段。 这表明,由于我们输入的恶意数据作为响应标头字段返回到客户端,该系统存在CRLF注入漏洞。

很多人看了这里可能不明白,但是我请求了写在数据包里的恶意数据,为什么作为响应报头的字段输出了呢? 让我们看看服务器端的源代码。

这是用PHP写的代码之一,需要大家都有一定的语言基础。 不知道也没关系。 我在后期写PHP系列的文章。 此代码意味着在满足条件时,将请求包中的url参数值连接到Location字符串,并将其设置为响应头发发送到客户端。

此时在服务器端收到的url参数值是我们更改的。

http://itsecgames.blogspot.com

Set-Cookie:crlf=true

如果将url参数值连接到Location字符串并设置为响应标头,则响应包应如下图所示。

分别是CR和LF的URL代码。 如前所述,在HTTP规范中,行以CRLF结尾。 所以当检测到的时候

然后,假设Location中第一个字段的行结束,Set-Cookie假设为下一行,如下图所示。

我们创建的Set-Cookie字符是在HTTP中设置Cookie的第一个字段,此时将crlf=true设置为Cookie。

再次请求,抓住包,发现Cookie中增加了crlf=true。

的测试案例可能会认为这个漏洞没什么危害,但请考虑一下。 利用漏洞,注入一个CRLF来控制用户的cookie,或注入两个CRLF来控制返回给客户端的主体。 这个漏洞的危害不亚于XSS。

http://www.Sina.com/http://www.Sina.com /

过滤行尾符号,例如r和n,以防止输入的数据污染其他HTTP标头字段。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。