标题: [原创代码] python3下载远程代码并执行 [打印本页]
作者: codegay 时间: 2016-9-1 12:36 标题: python3下载远程代码并执行
第一步:
先在gist之类的网站上贴上代码,目的不是高亮,而可以raw的形式获取代码,这样可以省掉处理html的时间,我这里用的是pasteraw:
远程上的代码:http://cdn.pasteraw.com/6hwu5u4ujhdv5gvyh07qrahb9d0orer
tkinter代码的兼容性真是超好,我基本抄的十年前教程上的代码,其中代码如下,那些奇怪的字符是原型是一个2K的MP3文件:
```- """
- 这个代码主要示范:
- 1、示范python3如何从远程下载代码并执行
- 2、示范如何把一个文件转成文本嵌入到程序代码中。
- 3、示范把字符还原成文件,并调用。这段代码中使用的是base85编码
- # 调用方法 import urllib.request; code_url = url; req = urllib.request.urlopen(code_url).read();exec(req)
-
- #运行环境 windows python3.4
- #2016年9月1日 11:51:16 codegay
- """
- import base64
-
- amp3 = r"""
- s5P6?!#0DW?irk8!4Z3Y@0-^#!bBcl]=Z(=Lku)C]=Xdb`(kZokl-G8!K0,aE&\]!EsobJ#N(aK5EtF<ci<KRi1(nIpc`!`arL!PPR$0(7rUdB&!mh,0(;.,5QDK*"Tj6?s5P<A#o/Rd
- dU.u!!2*.:'F2>G\SrpF;o4$MIHd=#c-m"ZM?;c5:(t(=U4CV/4nG`BN2Z^Bk[B;Z-m2=d-o(L,ht3o!s75JIVtnO8LjR&'..htts2>^]L]dd&[cr:\@q[G>"omU*`"!T9md;1;-j,4M
- jqp@Mc?"c\*PCQ$5g`g6mOV_maK=i&Qg7!YL4@Ttku<Ym?GsBW'<MaC5O?/bs%i5dV5[o*Z5Hqpf73fZrRO[]ZB:NWYPf/Y]uP\cbYk=llV%1b63#sh`![<Kk5IP(7,@qloMNM#^&ao8
- nh>_\"%!R6@0f4*`$#(BdM"c46'8:,RAbr+e'mu9ke?<]s7Ce`A@,8;*PmgC$loL@)G>RFeAWG,$lZJFTh<B?!$$Qu2h*r_JdEXUr@e32+N+g.!nQI^;?WEmTcMHX"I`2^j!k"t+B#Ds
- :hf@kmE.0/s&U?RGQ3>-E_&n2I2Rj/mma4i7*5Gcs8W,U6_*=!(uYT/0H^K<m9QOc8F$?q16*7`Z/=br"p$2Cg]m^LV$$bX,/aj)F2%>H-q.0h2tT32@3^O6ns#p`'_l3oaAE*t2dB$#
- !#M);@/k`sd1\uBo-5.OVMkNJs7W#?a(ko65`B8E7s3q^=5(Cgs8ApBf<%drj:&srgccke$+,kVp*;X&?r@4/iul8L(JD'mp//d*Z/P_I$m5D_+;4^IpoV<\.`ZDUj++W8SfVe8WQ#4e
- r^&jIJQo&(ro@,[\+pT0Q''`N_#h5uVuDDMg]!.7aYKljRa-f.&XCA:aU,KEeVqQN*JuoW?reNPj!)DK'No2DIL8J01*ur1"CL<o!Wd66/,rM8s.Z4"kG"aNW)F%=61b2LW3N#[Y^A&+
- ,TX*la%]q=@%d_m;,rQ;epG0_f/"5UZ@S;\*qh&J&teb--O"$S8QC*<+A<#,PMXHQs5P6?'GME;a9l\qOGROGfF][)P=uGp%Eo=0,"1"*'3M78&J5XO;)FW!2"hSsbm_[=o@??mWM/7K
- T]CV&s7WTB:]LIp<AagGs8Ds4_+EK[KG#"qmS$G,1LCPIO?*CUMO$09s5P<A*Y^koe/hL]J8ctV%%0-c,]FI__dOqC5g`H%-*]#0`2`k(`pja(_dT=\?5f6^HU%BSm4[o[:[.iH#App&
- ralu-MkGY1Z.(<q2TJ9e"?qRKXDc`_FH$?ZLC9S[pWF,>F8t8C`$lC>hS^L4-ihHpk!M42U)XR7XAc.;lGpPn)=J<sc-0HqR*'94D67E9DV2+?\h1%Jdn&W^l?5UX0i"l\8k-F8VgiX&
- euT5dU8H?qobe??>k(]8MQ/@XDaG&:_ao+"q#B@u`%i-kG,,/+5QIcB(]")P`0)8a07;!&+FBKuX'A&rs1ZNr\`qS>4hpIWs5*BTBC"crh-/>/pIIq$@jO]3nPa,#EH9+_o;.^`PtXY%
- 19*@^aamQ+Q<U["9oN),B^3rE"0V[a+N,oT_d\#:Qp:X]<JG2eaU^b$W!\BH?(-9C(d+S4F\#MeBiU5orpJaTR?:@*d]3f)WuqBAk:2@N[-("@9e>#"29N*3s8W-!CD0T?C=Z8)$C32D
- s8F;Wjjj\[$33nV"ciWC,/aj'CA(%3a:J=i.`s5Um)N'_s8U5HXjGu*jY-Z6r2'Gn6YQCobQ%/Q0srH:?hm>^)3Dk\;XHhN\Op$B:r$fQS`3a$i=Kt;lT;qdnL@3u9gpij3ArKEWiE)!
- WiE)!WiE*!iul8T!!!*lzWiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE)!WiE'"""
-
- def decodemp3():
- bmp3=base64.a85decode(amp3.encode())
- with open("my.mp3","wb") as f:
- f.write(bmp3)
- import os
- os.system("start my.mp3")
-
- from tkinter import *
- class app:
- def __init__(self,master):
- frame = Frame(master)
- frame.pack()
- self.button = Button(frame,text="exit", fg="red",command=frame.quit)
- self.button.pack(side=LEFT)
- self.hi = Button(frame, text="16年前书上的tkinker代码现在还能跑,点这个按钮会解码文本并弹出播放MP3",command=self.say_hi)
- self.hi.pack(side=LEFT)
- def say_hi(self):
- print("hi~~")
- decodemp3()
- root = Tk()
- a = app(root)
- root.mainloop()
复制代码
```
第二步:
复制以下代码到IDLE 回车执行,稍等一会可以看到效果。
```- import urllib.request; code_url = "http://cdn.pasteraw.com/6hwu5u4ujhdv5gvyh07qrahb9d0orer"; req = urllib.request.urlopen(code_url).read();exec(req)
复制代码
```
2016年9月1日 10:09:20 codegay
作者: happy886rr 时间: 2016-9-1 14:41
回复 1# codegay
呵呵,eval,exec都挺牛的。
作者: codegay 时间: 2016-9-2 11:42
回复 2# happy886rr
利刃易伤手。
php 中也是一句eval 就能实现一个网站的后门。。。。
作者: happy886rr 时间: 2016-9-2 11:51
回复 3# codegay
兄都开始涉猎php了
作者: codegay 时间: 2016-9-2 11:56
回复 4# happy886rr
工作相关,很容易碰到这类问题啊。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |