python总结及assert利用蚁剑登录

python知识总结:

(1)、 if __name__ == "__main__":

我们将它当做应用程序的入口,name将不再是它本身模块名称,而强制改为__mian__

 if name == ‘main’ 就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 name 的值。

(2)、self用法:

由于类起到模板的作用,因此,可以在创建实例的时候,把我们认为必须绑定的属性强制填写进去。这里就用到Python当中的一个内置方法__init__方法,例如在Student类时,把name、score等属性绑上去:

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

__init__方法的第一参数永远是self,表示创建的类实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。(2)、有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器会自己把实例变量传进去。

(3)、构造方法:

在Python中是使用__new____init__来完成的。

__new__负责进行对象的创建,object中的__new__示例代码如下

@staticmethod # known case of __new__

        def __new__(cls, *more): # known special case of object.__new__

""" Create and return a new object. See help(type) for accurate signature. """​​​​​​​

        pass

__init__负责进行对象的初始化,object中的__init__示例代码如下:

def __init__(self): # known special case of object.__init__

   """ Initialize self. See help(type(self)) for accurate signature. """

        pass

 (4)、公有和私有:

1. _xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问
2. __xxx 类中的私有变量/方法名 " 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
3. __x__ 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。

如果想要直接访问私有变量和私有函数,解释器会报错说类里没有这个属性

但是python的私有其实是伪私有,其实是python的名字改装在起作用,在类外访问类里的私有元素,变量和方法会被改名,加上_<类名>即可访问私有变量和私有方法

(5)、闭包:

闭包(Closure)指的则是附带相应数据的函数。闭包函数能够引用一些并不在当前代码上下文中定义的变量。这些被引用的变量是在闭包函数的包围作用域(enclosing scope)的代码中定义的。这样的一些函数被称为闭包。

1.定义:本质上来说,就是一个函数里嵌套一个函数定义,内部函数能够带够调用外部函数的变量以及外部函数的传入参数。闭包的大概形式列如:

def test1(a,b):
    pass
    def test2(c):
        pass
    return test
# 调用
test_1 = test1(a,b)
test_1(c)

2.概述:
上述代码return返回的是一个指向,指向test2这个函数,调用闭包时会开辟一个存储空间来存储变量和函数,调用一次就开辟一次。调用后,会将函数与数据一起传给test_1这个变量。实质上test_1这个变量就是指向test2函数的内部。

3.内部函数修改外部函数数据内部函数开始要用nonlocal 变量名来定义外部函数内内部函数外的变量:如:

def test1(a,b):
    x = 300
    def test2(c):
        nonlocal x
        print(-----1---->%d)% x
        x = 20
        print(------2------>%d)%x
    return test

  

assert利用蚁剑登录:

此处同样采用上文提到的墨者学院文件上传漏洞靶场进行蚁剑使用体验,与冰蝎不同的是,蚁剑没有单独的蚁剑木马,它采用的是跟中国菜刀一样原始的一句话木马:


使用中国蚁剑配置木马连接信息(此处暂不理会编码器和解码器的设置,后面再单独谈,暂选默认即可):

 

 


蚁剑具有“代理设置”功能,此处为了直接使用 BurpSuite 观察蚁剑与服务端(被上传一句话木马的受害主机)的通信过程的数据包,我们启用下蚁剑的代理功能(不启用代理的话可直接使用 WireShark 抓包观察也行):

开始使用蚁剑连接木马,开启文件管理功能:

 打开靶机的虚拟终端

此时可以在 BurpSuite 上捕抓到对应的通信数据包:

数据包头“cmd”是木马的连接密码。可以看到中国蚁剑默认状态下的通信数据包仅仅做了URL编码处理,与明文无异。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值