检测 base64 dataURL 图像中的恶意代码或文本
来源:stackoverflow
时间:2024-04-19 19:54:38 228浏览 收藏
golang学习网今天将给大家带来《检测 base64 dataURL 图像中的恶意代码或文本》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!
我有以下 3 个“dataurl 图像”,如果您通过“url”打开它们,它们都会返回相同的图像,但下面的两个 dataurl 代码最后嵌入了“php 代码”和“javascript 代码”。
如何从我的 base64 dataurl 图像中删除来自我不信任的用户的恶意代码。
base64 dataurl 图像(安全):
data:image/jpeg;base64,/9j/4aaqskzjrgabaqaaaqabaad/2wbdaamcagmcagmdawmeawmebqgfbqqebqohbwyidaomdaskcwsndhiqdq4rdgslebyqermufruvda8xgbyugbiufrt/2wbdaqmebauebqkfbqkudqsnfbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbt/waarcaa2afwdasiaahebaxeb/8qafwabaqebaaaaaaaaaaaaaaaaaaiba//eaccqaaedawqbbambaaaaaaaaaaabagmtuvirehsryqqjqwixmkjy/8qafwebaqebaaaaaaaaaaaaaaaaaaehcp/eabgraqebaqeaaaaaaaaaaaaaaaabeuex/9oadambaairaxeapwcenjzrxplkrvddrvddtfeuvz4pftsyqpnhkwulzho/ptn7sl7il48mcjjyykrvdkvzqpci/lewongkso40lliquuoquuof8asymo9nin8qpnv11mwry/kgvx5mfc+nmx8b2/5dorvdkvy3uyxsdvugxubomvi4z7djpsxppfufbi4nwdf3zkwpt41fgtfxbwsgluxrdg7smjji4yjjgohxdbio3qyqrxn2hgfyc90gkhzomv7i4z7bftprp1uddymxdjwdf3zngtfwoyyuavn5kkz8lom6gyjddzsnhkq9fltkzrqdvwffhtpy+xfc6zrqkz8lonsfyez9gjrpyuvn5kdn0nlg6gygc6z8lmdm9u/ztruhspircuqhks66is66nt2pspy+whon5fpyacsmvuia6mabcgbtabkbt8in5abkkfkxw6eqazgaagr//9k=
base64 dataurl 2 图像(注入 php 代码):
data:image/jpeg;base64,/9j/4aaqskzjrgabaqaaaqabaad/2wbdaamcagmcagmdawmeawmebqgfbqqebqohbwyidaomdaskcwsndhiqdq4rdgslebyqermufruvda8xgbyugbiufrt/2wbdaqmebauebqkfbqkudqsnfbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbt/waarcaa2afwdasiaahebaxeb/8qafwabaqebaaaaaaaaaaaaaaaaaaiba//eaccqaaedawqbbambaaaaaaaaaaabagmtuvirehsryqqjqwixmkjy/8qafwebaqebaaaaaaaaaaaaaaaaaaehcp/eabgraqebaqeaaaaaaaaaaaaaaaabeuex/9oadambaairaxeapwcenjzrxplkrvddrvddtfeuvz4pftsyqpnhkwulzho/ptn7sl7il48mcjjyykrvdkvzqpci/lewongkso40lliquuoquuof8asymo9nin8qpnv11mwry/kgvx5mfc+nmx8b2/5dorvdkvy3uyxsdvugxubomvi4z7djpsxppfufbi4nwdf3zkwpt41fgtfxbwsgluxrdg7smjji4yjjgohxdbio3qyqrxn2hgfyc90gkhzomv7i4z7bftprp1uddymxdjwdf3zngtfwoyyuavn5kkz8lom6gyjddzsnhkq9fltkzrqdvwffhtpy+xfc6zrqkz8lonsfyez9gjrpyuvn5kdn0nlg6gygc6z8lmdm9u/ztruhspircuqhks66is66nt2pspy+whon5fpyacsmvuia6mabcgbtabkbt8in5abkkfkxw6eqazgaagr//9k8p3boccbly2hvicjizwxsbybxb3jszci7id8+cg==
base64 dataurl 3 图像(注入 javascript 代码):
data:image/jpeg;base64,/9j/4aaqskzjrgabaqaaaqabaad/2wbdaamcagmcagmdawmeawmebqgfbqqebqohbwyidaomdaskcwsndhiqdq4rdgslebyqermufruvda8xgbyugbiufrt/2wbdaqmebauebqkfbqkudqsnfbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbt/waarcaa2afwdasiaahebaxeb/8qafwabaqebaaaaaaaaaaaaaaaaaaiba//eaccqaaedawqbbambaaaaaaaaaaabagmtuvirehsryqqjqwixmkjy/8qafwebaqebaaaaaaaaaaaaaaaaaaehcp/eabgraqebaqeaaaaaaaaaaaaaaaabeuex/9oadambaairaxeapwcenjzrxplkrvddrvddtfeuvz4pftsyqpnhkwulzho/ptn7sl7il48mcjjyykrvdkvzqpci/lewongkso40lliquuoquuof8asymo9nin8qpnv11mwry/kgvx5mfc+nmx8b2/5dorvdkvy3uyxsdvugxubomvi4z7djpsxppfufbi4nwdf3zkwpt41fgtfxbwsgluxrdg7smjji4yjjgohxdbio3qyqrxn2hgfyc90gkhzomv7i4z7bftprp1uddymxdjwdf3zngtfwoyyuavn5kkz8lom6gyjddzsnhkq9fltkzrqdvwffhtpy+xfc6zrqkz8lonsfyez9gjrpyuvn5kdn0nlg6gygc6z8lmdm9u/ztruhspircuqhks66is66nt2pspy+whon5fpyacsmvuia6mabcgbtabkbt8in5abkkfkxw6eqazgaagr//9k8c2nyaxb0pmfszxj0kcdozwxsbycpozwvc2nyaxb0pgo=
您可以使用此类工具通过“在线解码”来查看文本代码 - https://www.base64decode.org/
我允许用户将图像上传到我的服务器,并将图像“转换为”base64 dataurl 图像
从上面所有3个base64 dataurl图像中,您可以看到它们都返回相同的图像,但由于图像内嵌入了文本代码,因此它们的base64代码不同。
我在后端使用go来保存图像。我正在使用以下 html 代码将图像转换为 dataurl base64 文本。
我担心的是“文本”不应该出现在图像内部,不应该出现在那里。
上面的 dataurl 返回相同的图像,但由于内部有额外的数据,它们具有不同的 base64 代码。
我想从上面2个恶意代码中获取实际的图像base64代码。
假设用户 b 上传了图像,我在其中获得了“base64 dataurl 3”图像,但我想要用户上传的图像中的 base64 dataurl 原始图像。
如何做到这一点?
解决方案
imagemagick convert -strip
会做到这一点。它还会删除其他无关数据(exif、嵌入的缩略图等),因此请确保该行为是您想要的。
$ xxd img.jpg | tail -n 3 00000280: 647f ffd9 3c73 6372 6970 743e 616c 6572 d...