摘要: 一、ICMP隧道 背景:已经通过某种手段拿到了园区网A主机的控制权,但是边界防火墙只放行该主机向外的ICMP流量,此时怎样才能让A主机和公网主机C建立TCP连接呢? 方案:将TCP包内容包裹在ICMP中进行传递 工具: ptunnel 工作原理:A主机通过周期性向渗透测试工程师发送ICMP请求以建立 阅读全文
posted @ 2019-02-01 16:51 白桦林_HK 阅读(3351) 评论(0) 推荐(0) 编辑
摘要: UDP: from socket import * import struct send_data = struct.pack('!H8sb5sb',1,'test.jpg',0,'octet',0) >利用pack可以规定发送的某个字符串占用几个字节(可以用于构造数据包头数据,比如数据包头规定某一 阅读全文
posted @ 2019-02-01 11:48 白桦林_HK 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收机制(GC)(引用计数为主,隔代回收为辅): 1、引用计数机制引用计数解决不了循环引用问题,如: class A(): pass def abc(): while 1: c1 = A() c2 = B() c1.t = c2 c2.t = c1 del c1 del c2 abc() 附:引 阅读全文
posted @ 2019-02-01 11:40 白桦林_HK 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 生成器(生成器的本质是保存了一套生成值的算法,每调用一次生成一个值): 目标:需要一个非常大的列表,里面有很多元素,还不想占用太大内存空间。 生成器组成方式一: 将生成式的列表改为元组即可。 x = [x for i in range(5)] > x = (x for in range(5)) 生成 阅读全文
posted @ 2019-02-01 11:39 白桦林_HK 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 装饰器:在原本的程序基础上新加一些功能(比如判断余额、次数登记等)后伪装成原来的程序。 多层装饰器:def makeBole(fn): >此处是函数做装饰器,另外还可以用类做装饰器 def wrapped(): return "<b>" + fn() + "</b>" return wrappedd 阅读全文
posted @ 2019-02-01 11:36 白桦林_HK 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 模块(一个py文件): 导入一个模块时会把这个模块从头到尾执行一遍。为了防止导入模块时执行模块中的执行语句可以在编写模块时候将执行语句写在"if __name__ == '__main__':",这样被别人当模块导入时因为不满足if条件执行语句就不会被执行了(__name__是模块自带的一个变量,当 阅读全文
posted @ 2019-02-01 11:25 白桦林_HK 阅读(202) 评论(0) 推荐(0) 编辑
摘要: # 普通异常try: print('比如说这句话出现异常') except (异常的名字1,异常的名字2): print('捕获到‘异常的名字1’或‘异常的名字2’后所做的处理') except 异常的名字3: print('捕获到‘异常的名字3’后所做的处理') except Exception as ret:======>相当于创建一个异常对象,然后将变量ret指向该... 阅读全文
posted @ 2019-02-01 11:21 白桦林_HK 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 这是一个提供日志功能的模块,它可以让你更敏捷的为你程序提供日志功能 一、常用日志记录场景及最佳解决方案: 日志记录方式 最佳记录日志方案 普通情况下,在控制台显示输出 print()报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logging.debug())发出有关特 阅读全文
posted @ 2019-02-01 11:02 白桦林_HK 阅读(1177) 评论(0) 推荐(0) 编辑
摘要: 这是一个参数解析,可以用它快捷的为你的程序生成参数相关功能 import argparse(导入程序参数模块) # 创建argparse对象,并将产品简要说明加入show = '程序说明' >程序简要说明(字符串),输出help时会显示p = argparse.ArgumentParser(desc 阅读全文
posted @ 2019-02-01 00:01 白桦林_HK 阅读(3265) 评论(0) 推荐(0) 编辑