SQL注入漏洞利用(上)

SQL注入漏洞

攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后台数据库乃至整个应用系统的入侵。

SQL注入原理

服务端没有过滤用户输入的恶意数据,直接把用户输入的数据当作SQL语句执行,从而产生威胁。

SQL注入带来的危害

  • 绕过登录验证:使用万能密码登录网站后台等
  • 获取敏感数据:获取网站管理员帐号、密码等
  • 文件系统操作:列目录,读取、写入文件等
  • 注册表操作:读取、写入、删除注册表等
  • 执行系统命令:远程执行命令

SQL注入分类

  • 按照注入点进行分类
    • 数字型注入
    • 字符型注入
    • 搜索性注入
  • 按照诸如技术进行分类
    • 基于布尔的盲注
    • 基于时间的盲注
    • 基于报错的注入
    • 联合查询注入
    • 堆查询注入

数字型注入实操

使用火狐打开到这个界面,sqli安装在之前文章中介绍过了。
在这里插入图片描述
页面提示请输入ID,
在这里插入图片描述
在这里输入ID即可,然后点击execute执行即可看到上面的页面,可以继续换ID的值,改成2或者3等等去测试:
在这里插入图片描述
可以在看一下页面相关的源文件:
在这里插入图片描述

字符型注入实操

因为并不是所有的地方都是输入数字就正确,接下来使用Less-1进行测试:
在这里插入图片描述
接下来打开index.php源文件进行查看,验证Less-1是要求输入字符串的:
在这里插入图片描述
Less-1的源文件和Less-2的源文件只有这里一个差别,现在在页面进行测试:
在这里插入图片描述
接下来尝试错误的输入,因为并不是一开始就能输入对:
在这里插入图片描述
我们把页面的报错信息的双引号中间的内容拿出来:‘4’’ LIMIT 0,1,刚才输入进去的是4’,再稍微观察一下:
在这里插入图片描述
现在就很明显了,显然我们输入错误的是4’,然后4’的外面又有一个单引号,所以猜测这里使用的是字符串,加上刚才原码的查看,可以证明猜测是正确的。原来的语句就是select * from 表名 where id = ‘值’ limit 0,1;

类型检测

and测试

接上面的字符型注入,我们可以使用别的方法进行检测输入类型是什么,好比and:
如果输入的是:1’ and ‘1’ = '1,将这一部分替换到值的那一部分,那么原来的语句就变成了:
select * from 表明 where id = ‘1’ and ‘1’ = ‘1’ limit 0,1;可以发现是一点错误都没有,接下来进行测试:
在这里插入图片描述
发现没有问题,说白了其实就是一个引号闭合的事情,然后进行测试输入的类型。

绕过密码:'or 1=1 –

现在假设有这么一个源码:
select username password from users where username= ‘$ username’ and password=‘$password’
其中的 $username和 $password通过 $_GET[‘ ’]获取,显示加上or–,因为这个‘–’在数据库中代表注释的意思,即使输入也不影响:
在这里插入图片描述
在这里插入图片描述
这个语句为真,于是就跳过了密码,接下来进行测试:
在这里插入图片描述
admin库下的账号密码全都出来了。

搜索型注入实操

一般源文件的代码为:
select * from 表名 where 字段 like ‘%值%’;
当把值改为:‘and [查询条件] and ‘%’=’,那么提交过去的话, 最终显示为:select * from 表名 where 字段 like ‘%‘and [查询条件] and ‘%’=’%’;
在这里插入图片描述
以上就是按照注入点所作的三种分类了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘不忙!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值