利用%5c进行暴库

网站暴库问题的原因分析
作者看到暴库文章后进行研究,发现部分网站存在暴库问题。原因包括数据库连接无容错代码、服务器用IIS 4.0或5.0且未屏蔽错误信息、采用Microsoft JET Database Engine方式、数据库文件用相对路径以及使用ACCESS数据库等。
  今天无意看到有关暴库的文章,于是打算研究一下。
  发现有些网站存在此问题。
  主要有这几方面:
   1. 数据库连接中没有加入容错代码 (on error resume next)或是用error对象表示;
            2. 对方服务器用的是 IIS 4.0 或 IIS 5.0, 并且没有屏蔽错误信息;
   3. 用的是Microsoft JET Database Engine 方式;
            4. 数据库文件调用用的是相对路径;
   5. ACCESS数据库



如果网友还有什么见解,欢迎指出。
<think>我们有一段URL编码的数据,需要逐步解码。URL编码的规则是%后跟两位十六进制数表示一个字符。我们可以使用编程语言或者手动替换来解码,但这里数据较长且嵌套,手动替换容易出错,建议使用编程方式。 观察数据,发现有多层编码:最外层是%7B...%7D,对应{"...}",而内部还有嵌套的编码,比如%22对应双引号,%3A对应冒号,%2C对应逗号,%5C对应反斜杠(但这里可能是转义的双引号),%7B对应左花括号,%7D对应右花括号等。 由于数据是字符串形式,且内部有多次编码的迹象(例如,在已经编码的字符串内部又出现编码),我们需要进行多次解码直到得到可读的JSON。 步骤: 1. 首先,对给出的整个字符串进行一次URL解码,得到第一层字符串。 2. 观察解码后的字符串,如果内部还有URL编码的字符(如%22,%7B等),则可能需要再次解码,直到没有URL编码的字符。 但是注意:在JSON字符串中,双引号会被转义为\",而在URL编码中,双引号是%22。在解码过程中,我们可能会遇到转义符(反斜杠)的情况,比如\",这实际上是JSON字符串中的合转义,不需要再进行URL解码。 因此,我们只需要进行一次URL解码,然后尝试解析为JSON对象。在JSON对象中,某些字段的值可能仍然是字符串形式的JSON,这时我们需要再次解析。 具体到给定的字符串: 原始字符串:%7B%22msgType%22%3A%223%22%2C%22msg%22%3A%22%7B%5C%22code%5C%22%3A4%2C%5C%22isBle%5C%22%3Afalse%2C%5C%22softBusData%5C%22%3A%7B%5C%22data%5C%22%3A%7B%5C%22transactionId%5C%22%3A%5C%22hgjhgkjhfkjhlkjhd%5C%22%2C%5C%22fields%5C%22%3A%5B%7B%5C%22field%5C%22%3A%5C%22904%5C%22%2C%5C%22cmd%5C%22%3A%5C%22logType%3D0%5C%22%7D%2C%7B%5C%22field%5C%22%3A%5C%22903%5C%22%2C%5C%22cmd%5C%22%3A%5C%22day%3D0%5C%22%7D%5D%2C%5C%22taskState%5C%22%3A10%2C%5C%22followDevices%5C%22%3A%5B%5D%2C%5C%22debugStartTime%5C%22%3A1751437907955%2C%5C%22debugPlanEndTime%5C%22%3A1751438507955%2C%5C%22debugEndTime%5C%22%3A0%2C%5C%22createTime%5C%22%3A1751437907955%2C%5C%22updateTime%5C%22%3A1751437907955%2C%5C%22deviceIndex%5C%22%3A0%7D%2C%5C%22taskType%5C%22%3A%5C%22CommunicateRada%5C%22%7D%7D%22%7D 我们使用一次URL解码,将%XX替换为对应的字符。 解码过程(使用Python示例): import urllib.parse decoded_str = urllib.parse.unquote(encoded_str) 解码后,我们得到: { "msgType": "3", "msg": "{\"code\":4,\"isBle\":false,\"softBusData\":{\"data\":{\"transactionId\":\"hgjhgkjhfkjhlkjhd\",\"fields\":[{\"field\":\"904\",\"cmd\":\"logType=0\"},{\"field\":\"903\",\"cmd\":\"day=0\"}],\"taskState\":10,\"followDevices\":[],\"debugStartTime\":1751437907955,\"debugPlanEndTime\":1751438507955,\"debugEndTime\":0,\"createTime\":1751437907955,\"updateTime\":1751437907955,\"deviceIndex\":0},\"taskType\":\"CommunicateRada\"}}" } 注意,msg字段的值是一个字符串,这个字符串是一个JSON格式的字符串(包含转义的双引号)。因此,我们需要将msg字段的值再解析一次JSON。 所以,完整解码后应该是: { "msgType": "3", "msg": { "code": 4, "isBle": false, "softBusData": { "data": { "transactionId": "hgjhgkjhfkjhlkjhd", "fields": [ { "field": "904", "cmd": "logType=0" }, { "field": "903", "cmd": "day=0" } ], "taskState": 10, "followDevices": [], "debugStartTime": 1751437907955, "debugPlanEndTime": 1751438507955, "debugEndTime": 0, "createTime": 1751437907955, "updateTime": 1751437907955, "deviceIndex": 0 }, "taskType": "CommunicateRada" } } } 现在,我们将按照这个步骤进行解码,并输出最终的JSON结构。 由于问题要求恢复数据,我们直接给出解码后的JSON字符串。 注意:我们不需要执行代码,而是描述解码过程和结果。但为了准确,这里用代码思路解释。 最终,我们输出解码后的JSON字符串(美化格式)。</think>### URL编码数据恢复结果 经过URL解码后,原始数据恢复如下(已格式化): ```json { "msgType": "3", "msg": { "code": 4, "isBle": false, "softBusData": { "data": { "transactionId": "hgjhgkjhfkjhlkjhd", "fields": [ { "field": "904", "cmd": "logType=0" }, { "field": "903", "cmd": "day=0" } ], "taskState": 10, "followDevices": [], "debugStartTime": 1751437907955, "debugPlanEndTime": 1751438507955, "debugEndTime": 0, "createTime": 1751437907955, "updateTime": 1751437907955, "deviceIndex": 0 }, "taskType": "CommunicateRada" } } } ``` ### 关键解码说明: 1. **核心解码映射**: - `%7B` → `{`(左花括号) - `%22` → `"`(双引号) - `%3A` → `:`(冒号) - `%2C` → `,`(逗号) - `%5C%22` → `\"`(转义双引号) - `%5B` → `[`(左方括号) - `%5D` → `]`(右方括号) 2. **数据结构分析**: - 包含设备调试任务信息(`taskType: "CommunicateRada"`) - 时间戳均为毫秒级(如`1751437907955`对应**2025-07-01 07:31:47 UTC**) - 包含两个配置字段: - 字段904:日志类型设置(`logType=0`) - 字段903:天数设置(`day=0`) 3. **特殊解码处理**: - 嵌套JSON中的转义双引号`%5C%22`需双重解码 - 空数组`%5B%5D`直接解码为`[]`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值