SQL注入你真的了解吗?
SQL注入检测
可以通过多种方式检测注入。其中最简单的方法是在各种参数后添加'或'从而得到一个从Web服务器返回的数据库报错信息。以下部分描述了在哪里可以找到这些参数以及如何检测这些参数。
参数位置
浏览下面的标签,查看各种HTTP请求中的常见注入点。常见注入点以红色突出显示
GET - HTTP Request
在常见的HTTP GET请求(以及大多数请求类型)中,有一些常见的注入点。
例如:网址参数(下面的请求的id),Cookie,host以及任何自定义headers信息。然而,HTTP请求中的任何内容都可能容易受到SQL注入的攻击。
GET /?id=homePage HTTP/1.1
Host: www.netspi.com
Connection: close
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
X-Server-Name: PROD
Cookie: user=harold;
POST - Form Data
在具有Content-Type为application/x-www-form-urlencoded的标准HTTP POST请求中,注入将类似于GET请求中的URL参数。它们位于HTTP头信息下方,但仍可以用相同的方式进行利用。
POST / HTTP/1.1
Host: netspi.com.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
username=harold&email=[email protected]
POST - JSON
在具有Content-Type为application/json的标准HTTPPOST请求中,注入通常是JSON{"key":"value"}对的值。该值也可以是数组或对象。虽然符号是不同的,但值可以像所有其他参数一样注入。(提示:尝试使用',但要确保JSON使用双引号,否则可能会破坏请求格式。)
POST / HTTP/1.1
Host: netspi.com.com
Content-Type: application/json
Content-Length: 56
{
"username":"harold",
"email":"[email protected]"
}
POST - XML
在具有Content-Type为application/xml的标准HTTP POST请求中,注入通常在一个内部。虽然符号是不同的,但值可以像所有其他参数一样注入。(提示:尝试使用')
POST / HTTP/1.1
Host: netspi.com.com
Content-Type: application/xml
Content-Length: 79
<root>
<username>harold</username>
<email>[email protected]</email>
</root>
DBMS识别
检测正在使用的数据库管理系统(DBMS)对于进一步利用注入来说至关重要。没有这些知识,就无法确定要查询的表,内置的函数以及要避免的检测。
下面查询的成功响应表明正在使用所选的DBMS.
注意:注释字符 -- 放置在查询后面,以删除查询后面的任何命令,有助于防止出现错误。
MySQL
一般提示
PHP应用程序通常具有MySQL数据库。
将查询转换为注入
既然已经确定了注入点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT @@version将是示例查询。
Oracle
一般提示
根据应用程序提供的错误,如果存在“ORA-XXXX”错误,其中每个X都是整数,则表示数据库是Oracle.
JSP应用程序通常具有Oracle数据库。
将查询转换为注入
既然已经确定了诸如点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT banner FROM v$version将是示例查询。
SQL Server
一般提示
基于ASP / ASPX的应用程序一般都是MSSQL。
将查询转换为注入
既然已经确定了注入点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT @@version将是示例查询
一起加油哦~
点一下在看再走吧