MYSQL注入天书(Sqli-labs)学习笔记(一)

Less-1

1.LIMIT的用法
2.concat与group_concat的使用
3.information_schema常用到的三个表:
information_schema.schemata(所有数据库名称)
在这里插入图片描述
information_schema.tables where table_schema=‘数据库名称’(查询该数据库中所有的表名称)
在这里插入图片描述
information_schema.columns where table_name=‘表名’(查询该表中所有的列名)
在这里插入图片描述
通常group_concat与information_schema同时使用,能够在一个可显示的位置将所有数据一起输出
4.注释–+也可换成#(注:#为不安全字符需url编码为%23)
关于url编码中的保留字符和不安全字符
5.sql语句中单引号,双引号,反引号的使用
sql中存在一些保留字,类似C++中的一些int、 float 等
把与保留字相同的表名或者字段名用[ ]括起来,这样就能把SQL语句保留字区分开来
原SQL语句
Select * from TABLE where id =’$id’;

Less-2

id为整数,只需将1中的 ’ 去掉即可,playload与1相同
原SQL语句为
Select * from TABLE where id =$id;

Less-3

原SQL语句为:
Select login_name, select password from table where id= (‘$id’)
将less-1中‘后加)其他相同

Less-4

原SQL语句为:
s q l = " S E L E C T ∗ F R O M u s e r s W H E R E i d = ( “ sql="SELECT * FROM users WHERE id=(“ sql="SELECTFROMusersWHEREid=(id”) LIMIT 0,1";
将less-1中‘改为")其他相同

Background-2 盲注的讲解

一.基于布尔的盲注

1.CAST()函数
2.if ifnull casewhen语句
case when具体用法

二.基于报错的盲注

1.随机函数rand()
基于报错的盲注原理
(执行插入操作时rand函数会再次执行,当插入的值已经存在时报错)
2.语句执行成功会返回0,0按位取反(~0)得
最大数18446744073709551615,对其进行操作会产生溢出报错,可用exp()函数进行报错注入
3.正则匹配
select user() regexp ’正则表达式’
ps:匹配是对表中所有存在的项匹配,与limit 0,1无关。
mysql中使用Like代替regexp
4.利用一些函数的语法形成错误
如:
在这里插入图片描述
5.基于时间的盲注
利用sleep()函数判断语句是否执行成功
或者利用BENCHMARK(count,expr)用于测试函数的性能,参数一为次数,二为要执行的表达
式。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值