2013-06-12 45 views
0

我有一臺服務器接受HTTP POST請求並將發佈數據作爲bash腳本運行(在沙盒環境中)。將shell腳本和數據文件合併爲一個可運行腳本?

E.g.在客戶端,我可以做到這一點:

~ $ curl http://my-server.com/sh -d "echo hello" 
+ echo hello 
hello 

在服務器側的後數據保存到一個文件中,並作爲一個bash腳本執行。 (在沙盒環境中)

我想使用此功能來編譯小型C++項目。一個項目通常包含幾個源文件和頭文件以及一個附帶的makefile或構建腳本。一個例子構建腳本是:

g++ -c util.cpp 
g++ -c main.cpp 
g++ *.o 
./a.out 

我怎麼能結合這個腳本和源文件到,我可以使用POST請求的單個文件?

+0

整個服務器是目前對公衆開放。我可以運行任何命令我想! – Stephen

+1

它在沙箱環境中運行。隨意濫用它。如果您發現安全漏洞,請告訴我。 – StackedCrooked

+1

聽起來就像你想讓客戶端創建一個[shell歸檔文件](http://linux.die.net/man/1/shar)。 –

回答

0

在這裏你去:

curl http://stacked-crooked.com/sh -d 'echo H4sIABq0uFEAA+3VvW6DMBSG4cy+ihOyJFICx4TYQ6rOvQ0CJBBRXPHTWqp67zVFyUgn6I++ZzlCWLI9vGD9fDE1ZlZRRP3USn9NDofnQbgnGcqDkntWShJLqZgXxJOfzOmaNq7dUa6X2oytc8vO55H3w03oPv+IVVElZZdm9NC0aWH8/FH89JFgRtZPJt/j2/5d87f+dch9/wct0f8c7v171s898RwX1XpD7+Kla5u195SVpdnSm6nLdOltjuIDX4f/pe6qyffou9d6pP9I3/qXUkd9/zqM0P8cVsvgVFTBKW5y0WQt7bJXK8QlSWhnyJL7PQg/sKgeAAAAAAAAAAAAAAAAAOC3+wQXspMdACgAAA== | base64 --decode | tar -xzv && ./run' 
+0

敢問我''/ run'是幹什麼的? – chepner

+0

@chepner'。/ run'使用gcc編譯程序,然後運行它。 –

+0

編碼的程序的性質是什麼使我感興趣。我不會推薦發佈運行未知,無法解釋的代碼的答案。 – chepner