-4
我正在使用libpng-c庫來檢查有效的.png文件。如果文件有效,它會通過測試。我想在其中注入shell代碼。我如何製作.png文件,以便它仍然是一個有效的圖像文件,並且還包含一些shell代碼。請告訴我怎麼可能。謝謝。.png文件中的代碼注入
我正在使用libpng-c庫來檢查有效的.png文件。如果文件有效,它會通過測試。我想在其中注入shell代碼。我如何製作.png文件,以便它仍然是一個有效的圖像文件,並且還包含一些shell代碼。請告訴我怎麼可能。謝謝。.png文件中的代碼注入
那麼,AFAIK沒有辦法將代碼注入到png文件中並執行它。但是你可以將你的png文件注入到shell腳本中,然後查看它。但是你必須說服你開發的那個可執行文件,並通過終端打開所謂的png文件。
的程序是:
executeme.png
-
#!/bin/bash
PNG_FILE=$(mktemp /tmp/hack.XXXXXXX.png)
ARCHIVE=$(awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0)
tail -n+$ARCHIVE $0 > "$PNG_FILE"
# whatever you want to do is here!
xdg-open $PNG_FILE
exit 0
__ARCHIVE_BELOW__
cat injectme.png >> executeme.png
追加。executeme.png
可執行。executeme.png
,將使用默認圖像查看器顯示原始png文件,並且您的注入代碼將會運行。注:我不認爲有人執行該文件是如此愚蠢。
注2:在Ubuntu上,executeme.png
不能從文件管理器執行,因爲它試圖使用文件管理器打開,因爲png擴展名。您可以將executeme.png
重命名爲execute.\rpng
(在點之後在png之前附加回車符),所以起初它看起來像一個png文件,因爲它的擴展名不是PNG,如果它是可執行的,它將被雙擊執行。要進行重命名,您可能需要使用終端。
有一個很好的黑客時間! :d
應注入的外殼代碼被執行? –
是的,代碼將被執行,但我想要的是保持圖像文件有效。 – sonam
@Nate,如果通過在其中編寫一些shell代碼來更改.png文件並且將變爲無效(嘗試了無效部分),但我想保留該文件在其中的一些shell代碼有效。這怎麼可能,有一些竅門? – sonam