SQL注入你真的了解吗?

Posted LSCteam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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=harold@netspi.com

  • 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":"harold@netspi.com"

}

  • 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>harold@netspi.com</email>

</root>


DBMS识别

检测正在使用的数据库管理系统(DBMS)对于进一步利用注入来说至关重要。没有这些知识,就无法确定要查询的表,内置的函数以及要避免的检测。

下面查询的成功响应表明正在使用所选的DBMS.

注意:注释字符 -- 放置在查询后面,以删除查询后面的任何命令,有助于防止出现错误。


MySQL

一般提示

php应用程序通常具有mysql数据库。

将查询转换为注入

既然已经确定了注入点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT @@version将是示例查询。

SQL注入你真的了解吗?


Oracle

SQL注入你真的了解吗?

一般提示

根据应用程序提供的错误,如果存在“ORA-XXXX”错误,其中每个X都是整数,则表示数据库是Oracle.

JSP应用程序通常具有Oracle数据库。

将查询转换为注入

既然已经确定了诸如点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT banner FROM v$version将是示例查询。

SQL注入你真的了解吗?


SQL Server

SQL注入你真的了解吗?

一般提示

基于ASP / ASPX的应用程序一般都是MSSQL。

将查询转换为注入

既然已经确定了注入点,本指南的其余部分将包含完整的查询。使用以下方法将这些查询插入注入点。SELECT @@version将是示例查询

SQL注入你真的了解吗?


SQL注入你真的了解吗?


一起加油哦~

◆ 


点一下在看再走吧



以上是关于SQL注入你真的了解吗?的主要内容,如果未能解决你的问题,请参考以下文章

参数真的足以防止 Sql 注入吗?

让你彻底了解SQL注入XSS和CSRF

通过添加第二个查询实际上可以进行 SQL 注入吗?

web安全SQL注入中order by后无法参数化

面试中常问的SQL注入题

如何避免 SQL 注入攻击?