亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢測base64 dataURL圖像中的惡意代碼或文本

檢測base64 dataURL圖像中的惡意代碼或文本

Go
守候你守候我 2023-07-10 16:37:30
我有以下 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 代碼):base64 dataURL 3 圖像(注入 JavaScript 代碼):您可以使用此類工具通過“在線解碼”來查看文本代碼 - https://www.base64decode.org/我允許用戶將圖像上傳到我的服務器,并將圖像“轉換為”base64 dataURL 圖像從上面的3個base64 dataURL圖像中,您可以看到它們都返回相同的圖像,但是由于圖像內部嵌入了文本代碼,因此它們的base64代碼不同。我在后端使用 Go 來保存圖像。我正在使用以下 HTML 代碼將圖像轉換為 dataURL base64 文本。<input type='file' onchange="readURL(this);" /><img id="blah" src="#" alt="your image" /><script>function readURL(input) {  if (input.files && input.files[0]) {    var reader = new FileReader();    reader.onload = function (e) {      document.getElementById("blah").src = e.target.result;    };    reader.readAsDataURL(input.files[0]);  }}</script>我擔心的是“文本”不應該出現在圖像內部,不應該出現在那里。上面的 dataURL 返回相同的圖像,但由于內部有額外的數據,它們具有不同的 base64 代碼。我想從上面2個惡意代碼中獲取實際的圖像base64代碼。假設用戶 B 上傳了圖像,我得到了“base64 dataURL 3”圖像,但我想要用戶上傳的圖像中的 base64 dataURL 原始圖像。如何做到這一點?
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

ImageMagickconvert -strip <in> <out>會做到這一點。它還會刪除其他無關數據(EXIF、嵌入的縮略圖等),因此請確保該行為是您想要的。


$ xxd img.jpg | tail -n 3

00000280: 647f ffd9 3c73 6372 6970 743e 616c 6572? d...<script>aler

00000290: 7428 2768 656c 6c6f 2729 3b3c 2f73 6372? t('hello');</scr

000002a0: 6970 743e 0a? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ipt>.


$ convert -strip img.jpg img2.jpg


$ xxd img2.jpg | tail -n 3? ? ? ?

00000260: 383a 2ebd 4c00 32c8 1ba4 0064 6d3f 229f? 8:..L.2....dm?".

00000270: 9001 90a7 e4c8 a1d3 eff9 0019 1800 0647? ...............G

00000280: ffd9

無論如何,如果您不嘗試執行圖像,則不會發生任何事情。但如果不出意外的話,這就是浪費了圖像文件中的空間。


查看完整回答
反對 回復 2023-07-10
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

是的,在這個世界上,“用圖片進行黑客攻擊”(通常稱為 Stegosploits)很流行。這里的行業方法是使用內容解除和重建(CDR)軟件。引用維基百科:

[CDR] 是一種計算機安全技術,用于從文件中刪除潛在的惡意代碼。與惡意軟件分析不同,CDR 技術不會確定或檢測惡意軟件的功能,而是刪除系統定義和策略中未批準的所有文件組件。

如果這對您來說是關鍵任務,您可能需要研究一些可用的商業解決方案(本文還列出了其中的一些解決方案,我無法在這里給出建議)。

對于本土解決方案,重新編碼圖像可能就足夠了。

查看完整回答
反對 回復 2023-07-10
  • 2 回答
  • 0 關注
  • 238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號