SQL 注入

目录

1.1、 手动识别 SQL 注入(获取所有用户名)

 环境准备

1.2 手动识别 SQL 注入案例

1.3 基于错误的 SQL 注入案例

1.4 环境准备

1.5 基于错误的 SQL 注入案例

特点


前言

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

原理

SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对WEB服务器进行攻击的方法。简单的说就是在post/getweb表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程。可以通过一个例子简单说明SQL注入攻击。假设某网站页面显示时URL为http://www.example.com?test=123,此时URL实际向服务器传递了值为123的变量test,这表明当前页面是对数据库进行动态查询的结果。由此,我们可以在URL中插入恶意的SQL语句并进行执行。另外,在网站开发过程中,开发人员使用动态字符串构造SQL语句,用来创建所需的应用,这种情况下SQL语句在程序的执行过程中被动态的构造使用,可以根据不同的条件产生不同的SQL语句,比如需要根据不同的要求来查询数据库中的字段。这样的开发过程其实为SQL注入攻击留下了很多的可乘之机。

1.1、 手动识别 SQL 注入(获取所有用户名)

 环境准备

1).开启OWASP靶机和Kali虚拟机

2).kali中登陆dvwa(用户名和密码都是 admin),进入 SQL Injection(SQL 注入)页面,安全等级调为low


1.2 手动识别 SQL 注入案例

1).通过输入一个数字来测试应用程序的正常行为。将用 户 ID 设置为 1,然后单击“提交”。 通过查看结果,可以说应用程序查询数据库以查看是否存在 ID 等于 1 的用户并返回该用户的 ID、名称和姓氏。(提交ID,查看显示的信息)

 2).接下来,测试如果发送应用程序不期望的内容会发生什么。在文本框中输入 1'(1 和一个单撇号)并提交该 ID。 如以下屏幕截图所示,应用程序应响应错误,结果表明很可能这个应用程序很容易受到攻击。(从报错获取信息:数据库管理软件mysql,和错误原因是引号不对称)

3).返回 DVWA 的 SQL Injection 页面。

4).为了确保存在基于错误的 SQLi,尝试另一个输入:1'',这次没有错误。 这证实了应用程序中存在 SQLi 漏洞。

 

 5).现在将执行一个非常基本的 SQLi 攻击。 在文本框中输入' or '1'='1 并提交。(使得输入的条件为“true”,让数据库输出所有用户姓和名)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值