b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

SQL注入新手入门示例的详细说明

电脑杂谈  发布时间:2020-06-07 10:12:47  来源:网络整理

sql注入攻击语句_sql注入语句万能密码_常见sql注入语句

前言

在学习本文之前,关于学习SQL注入的先决知识,您可以参考之前编写的必要的SQL注入基础知识.

了解SQL注入

从一开始,我们将从最简单的开始到less-1,开始我们的SQL注入学习之旅.

通过更改ID值#63; id = 3,页面上会显示不同的内容(用户名,密码).

然后我们可以猜测到,后台的SQL语句基于在前台传递给相应数据的id值.

然后编写SQL语句:

select username,password from table where id=input

确定SQL语句的存在

sql注入攻击语句_sql注入语句万能密码_常见sql注入语句

下一步要进行测试,请使用以下语句进行测试:

http://localhost/sqlilabs/Less-1/id=3 and 1=1
http://localhost/sqlilabs/Less-1/id=3 and 1=2

这时页面上没有更改,这与我们的预期结果不符,因为当id = 3和1 = 2时,SQL语句将成为select username,来自id = 3和1的表中的密码= 2该页面应该没有内容.

确保有一条SQL语句

使用上一条语句后,我们将使用以下语句:

http://localhost/sqlilabs/Less-1/id=3'

当UR1是以上SQL语句时,SQL执行错误消息将显示在页面上. 您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行附近使用“ 3” LIMIT 0,1'附近.

最严重的错误消息是:

``3''LIMIT 0,1'

sql注入语句万能密码_sql注入攻击语句_常见sql注入语句

当mysql出错时,最外面的引号会自动添加. 那么实际的SQL语句为“ 3” LIMIT 0,1. 我们发现输入的3'用引号引起来,然后我们猜出id = input不正确的表中的选择用户名和密码,而实际的后台SQL语句应为:

select username,password from table where id='input'

SQL注入验证

在确认存在SQL注入并且也知道SQL的背景编写之后,此时我们可以注入自己的SQL注入代码.

由于我们可以控制id的值,因此输入的最终SQL语句将变为:

select username,password from table where id='input 攻击代码'

在这一点上,我们可以构造以下有效载荷来验证我们的想法. 由于我们的输入由一对单引号引起来,因此我们输入的语句必须不受单引号的影响. 关闭单引号或注释掉单引号. (您可以参考上一篇文章)

#闭合单引号
id=1 and '1' = '1 # 
#注释单引号
id=1 and 1=1 # 或者 id=1 and 1=1--+

当我们使用以上三个有效负载时,页面上显示的结果是预期的. 然后我们还可以确定id参数确实是SQL注入. 在后台编写SQL语句的确是从表中的表中选择用户名和密码.

sql注入语句万能密码_常见sql注入语句_sql注入攻击语句

在确认SQL语句后,下一步是注入SQL注入代码.

执行SQL注入

使用SQL语句脱裤子非常关键. 如果您只知道有SQL注入但不能脱掉裤子,那么对于该站点而言,该漏洞实际上很小. 如何构造正确的SQL语句来解决问题也很重要. 在下一篇文章中,将详细解释SQL注入的详细步骤.

注射类型判断

此问题中的SQL语句称为字符SQL注入,因为在执行SQL语句期间,我们的输入包含在单引号中. 实际上,在执行SQL语句时,id参数被视为字符数据类型. 除了字符SQL注入外,当然还有数字SQL语句. 那么如何区分两者呢?

字符SQL注入

在确定存在SQL语句的部分中,当我们输入id = 3'时,页面上的错误消息为'3''LIMIT 0,1. 我们发现3'被引号引起来,然后表明这是一个字符SQL注入.

数字SQl注入

在less-2中,当我们还输入id = 3'时,页面上的错误消息是'LIMIT 0,1,则表示它是数字注入,并且还有一个limit关键字,然后我们猜测less-2中的SQL注入是:

sql注入语句万能密码_常见sql注入语句_sql注入攻击语句

select username,password from table where id=input limit 0,1

以上内容可以通过查看源代码进行验证.

SQL语句判断

但是在许多情况下,我们无法通过单引号返回SQL执行语句的错误信息,也无法通过错误信息获取注入类型. 因为很多时候常见sql注入语句,背景中的SQL语句将以各种方式编写.

less-3和less-4中的措辞如下:

$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1"

在less-3中使用括号包装用户输入

$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";

在less-4中,双引号用于包装用户的输入,因此,即使您添加单引号进行测试,仍然无法启动SQL语句执行错误.

因此仅使用单个符号来判断通常是不够的,需要使用不同类型的符号来判断测试,包括包括'常见sql注入语句,“,\,(,=,&等)在内的字符,甚至有时您需要使用其他探测方法,因为您无法在后台判断SQL语句的编写,并且许多Web开发人员当前具有一定程度的安全意识,并且可能无法使用常规SQL探测语句. 互联网上有很多信息可以用来探测SQL注入语句.

摘要

没有一种千篇一律的SQL注入判断方法,只有连续实验. 当您有经验时,您将意识到注入的类型,并且对SQL注入的判断会更快. 以上是本文的全部内容. 如果您想在实际网络中的网站上进行安全测试,则上述知识还远远不够. 编辑器将继续更新更多SQL注入文章,请继续关注脚本主页.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-237048-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...