[英]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(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.