安服工作中如何文本比较

admin 2024年9月19日10:07:04评论21 views字数 2641阅读8分48秒阅读模式
安服工作中如何文本比较

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!

安服工作中如何文本比较

工作中,我们可能需要用到文本比较。可能是代码审计,比较哪里修改了,方便我们快速定位。
也有一种是最常见的工作——写报告。有时候客户要求报告格式,如果不小心写错,还会返工。错了三四次后,我就开始琢磨有没有什么办法能提前发现错误。
有些工作是在内网环境,不出网。

diff-checker

https://github.com/trembacz/diff-checker

安服工作中如何文本比较

也需要互联网,寄。

IDEA或者pycharm

idea也可以比较,如果内网有开发工具IDEA的话。

idea新建一个项目,放在项目中,选择其中一个,按住 ctrl + d ,然后点击另一个文件。

打开一个文件

安服工作中如何文本比较

按住 ctrl + d

安服工作中如何文本比较

安服工作中如何文本比较

问题:没办法比较docx文件

安服工作中如何文本比较

WinMerge

下载地址:https://winmerge.org/

该工具可以比较word,Excel,图片,但不怎么支持pdf

word对比
导入2个word的docx格式的文件,点击比较
会出错,因为直接比较是解码不了的,需要引用插件来解决这个问题。

安服工作中如何文本比较

但是没办法比较格式

安服工作中如何文本比较

比较docx文件

01 word 比较

安服工作中如何文本比较

安服工作中如何文本比较

但这种比较看不出来某个字符格式的变化和区别。

02 wps 比较

安服工作中如何文本比较

安服工作中如何文本比较

安服工作中如何文本比较

03 自己动手Python比较

pip install python-docx

匹配格式

from docx import Document
import json


def get_all_format(doc_path):
word_json = {}
try:
# 加载文档
doc = Document(doc_path)
# 遍历文档中的每个段落
paragraphs_num = 0
for paragraph in doc.paragraphs:
paragraphs_list = []
# print(paragraph.text)

text_json = {}
for run in paragraph.runs:

# 文本
text_json["text"] = run.text
# 检查字体颜色
font_color = run.font.color.rgb
if font_color:
text_json["text_color"] = font_color
else:
text_json["text_color"] = None

# 检查字体名称
font_name = run.font.name
text_json["font_name"] = run.font.name

# 检查字体大小
font_size = run.font.size
text_json["font_size"] = run.font.size

# 检查是否加粗
text_json["bold"] = run.bold
# 是否倾斜
text_json["italic"] = run.italic
# 检查下划线
text_json["underline"] = run.underline

paragraphs_list.append(json.dumps(text_json, ensure_ascii=False))

paragraphs_num += 1
word_json[paragraphs_num] = paragraphs_list


except Exception as e:
print(f"无法打开文档: {e}")
return word_json


if __name__ == '__main__':
path1 = r"path1"
path2 = r"path2"
path1_filename = path1.split("\")[-1]
path2_filename = path2.split("\")[-1]

path1_format = get_all_format(path1)
path2_format = get_all_format(path2)


with open("./" + path1_filename + ".txt" , 'w', encoding="utf8") as file:
json.dump(path1_format, file, indent=4, ensure_ascii=False)
with open("./" + path2_filename + ".txt" , 'w', encoding='utf-8') as file:
json.dump(path2_format, file, indent=4, ensure_ascii=False)

安服工作中如何文本比较

筛选出来后,根据不一样的地方进行排查

筛选出来后,根据不一样的地方进行排查。如果一段中要求是格式统一,但在显示信息中一段存在好几种格式,能够方便找到是哪里格式不对。

在外网实验成功后,不出网python安装依赖

pip freeze > requirements.txt

安服工作中如何文本比较

下载

pip download -d ./packages -i https://mirrors.aliyun.com/pypi/simple -r requirements.txt

-d 选项指定下载安装包路径,下边命令中为当前路径下packages目录。
-i 选项指定pip 下载仓库地址。

将文件夹packages和requirements.txt放入内网,离线安装

--no-index 选项忽略包索引(只查看 --find-links URL)
--find-links 选项指定安装包查找位置

pip install --no-index --find-links=./packages -r requirements.txt

安服工作中如何文本比较

离线安装成功

参考链接

Diffchecker---文本比较工具 https://mp.weixin.qq.com/s/mBrlXnc1kaDGffySHo8pXQ
六六工具箱 https://www.66toolboxs.com//
5个免费的文档对比工具,轻松提高生产力 https://mp.weixin.qq.com/s/NZRohljqzbpp0w_vdMBhSg

往期推荐

价值$5,825赏金的tomcat信息泄露(CVE-2024-21733)

HTTP请求走私(内含portswigger靶场即工具)

漏洞利用 | jmx协议攻击方式

分析Actuator未授权出现的原因

代码审计 | API批量分配导致的普通用户垂直越权到admin

代码审计 | 发现项目的swagger-ui未授权访问

记一次绕过限制SQL注入bypass

好用!一键化搭建各种虚拟机

微信小程序/网页动态调试的方法

原文始发于微信公众号(进击的HACK):安服工作中如何文本比较

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月19日10:07:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安服工作中如何文本比较http://cn-sec.com/archives/3182161.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息