Web App安全性-SQL注入

注射缺陷

什么是SQL?

代表结构化查询语言,是一种与数据库进行交互的方式。

延期

数据处理语言(DML)

选择,插入,更新,删除

数据定义语言(DDL)

创建,更改,删除,截断

数据控制语言(DCL)

授予,撤销

什么是SQL注入?

此漏洞使攻击者能够使用SQL从客户端向应用程序注入恶意数据。 通过能够影响传递给数据库的内容,攻击者可以访问数据库和操作系统功能。 SQL注入并不仅仅影响Web应用程序,但是任何接受来自不受信任来源的输入并随后输入执行SQL语句的用户的代码也可能会受到攻击。

通过使用SQL注入,连续的攻击者可以获得什么?

读取和修改敏感数据,执行管理操作,向操作系统发出命令。 欺骗身份,篡改现有数据,破坏数据,成为管理员

最常见的注射类型是什么?

  1. 结构化查询语言(SQL)查询
  2. 轻型目录访问协议(LDAP)查询
  3. XML路径语言(XPATH)查询
  4. 操作系统命令

SQLMap标志

■— current-db,用于检索数据库管理系统(DBMS)的当前数据库。

■—当前用户,检索DBMS当前用户。

■—字符串,用于提供始终存在的字符串值以帮助识别误报。

■—用户检索数据库管理系统的用户。

■—密码,用于检索系统用户的数据库管理密码哈希。

■-U指定要包括在攻击中的数据库管理用户。

■—特权,以检索所选用户的特权。

■—数据库,用于检索数据库服务器上所有数据库的名称。

■-D指定要定位的数据库。

■—用于检索目标数据库中所有表的表。

■-T指定要定位的表。

■—列,用于检索目标表中的所有列。

■-C指定要检索的列。

如何获取当前数据库名称?

如何从数据库中检索所有表?

如何从用户表中检索所有列?

如何检索所有数据库用户和破解的密码?

三层

数据库驱动的应用程序通常具有三层:不可扩展

  1. 演示层— Web浏览器
  2. 逻辑层-编程语言
  3. 存储层— DB

四层

  1. 演示文稿— Web浏览器
  2. 逻辑-编程语言
  3. 应用程序层— Web服务
  4. 存储— DB

与三层数据库不同,数据库将数据返回到数据库连接器,然后应用程序服务器在将数据返回到Web服务器之前实施任何应用程序或业务逻辑规则。

层结构的目的是将应用程序分解为逻辑块,为每个逻辑块分配一般或特定角色。 使组件更具可读性和可重用性

总览

如果我有一个带有两个文本框的登录屏幕,其中一个带有标签的用户名,另一个带有密码,我可以假设一个简单的SQL语句可能看起来像这样

诀窍是选择正确的SQL语句以查找用户名和密码。

这就是为什么在果汁店中使用“或” =“或”

阅读后尝试过

%27是单引号的URL编码版本,%3D是等号。 加号是浏览器编码文字空间的一种方式。 您通常会看到一个空间URL,其编码为%20。 所有这些措施均已就位,因此用户输入可以在应用程序的URL中使用,以传递给服务器进行处理。 URL中的任何地方都不允许使用文字空间(包括查询字符串中的任何参数值),因为它会破坏HTTP协议支持的可接受请求格式。

资源资源

Webgoat,SQL注入攻击和防御,第二版

无需工具的手动SQL注入
为了向您展示SQL查询的工作方式,我认为最好先说明一些简单的查询。 要做… hackonadime.blogspot.com SQL注入·Total OSCP Guide
因此,不会以任何方式过滤或清除用户输入。 这意味着用户在登录表单中输入的内容… sushant747.gitbooks.io

请查看以下链接

简历网站— https://tommarler.org

Linkedin-https://www.linkedin.com/in/tom-m-bb4857112/