本文作者:mzfuzz(Ms08067安全实验室成员)
前言:
python的特性这里不过多细说,简单来说可以让我们很快完成任务。
日常工作中,难免我们会重复工作,这里就需要我们去写好一些相关的模块,然后等需要用的时候,直接调用自己写的包即可,这样可以节省自己大量的时间用来研究漏洞或者刷朋友圈!
下面我大概举3个模块来说明
网页下载函数:
"""htmldown 此函数功能是 输入url连接,然后保存到本地进行备份。多用在有翻页的后台进行后台备份,输入翻页url,参数等进行批量down备份url: 访问urlfilename: 保存网页信息的本地目录head: 请求header"""
def htmldown(url,filename,head): for i in range(0,4): try: res=requests.get(url,header=head,timeout=5) with open(filename,'a+') as f: f.write(res.text) print(f"{url} successful!!!") return except Exception as e: print(e) pass
通常我们渗透下站点,需要下载解析一些站点信息,大部分信息都是存在页数得,这里就可以通过此函数来进行下载,填写url,header头,下载文件保存位置即可如果遇到post请求,可以使用下面函数即可!
"""htmldown_post 此函数功能是 输入url连接,然后保存到本地进行备份。多用在有翻页的后台进行后台备份,输入翻页url,参数等进行批量down备份[请求方式为post请求]参数:url: 访问urlfilename: 保存网页信息的本地目录head: 请求headerdata1: post请求的参数"""def htmldown_post(url,filename,head,data1): for i in range(0,4): try:
res=requests.post(url,header=head,data=data1,timeout=5) with open(filename,'a+') as f: f.write(res.text) print(f"{url}+'\t'+{data1} successful!!!") return except Exception as e: print(e) pass
header头解析:
上文中得header是必不可缺得,因为场景往往是访问后台,需要cookie认证.
为了更方便快捷,直接复制burp抓得包赋值给变量,然后解析成字典格式即可相关代码见下:
def ls_header(str_headers: str) -> dict: if not str_headers: return {} items = str_headers.splitlines() headers = {} for item in items: item_str = item.strip() if
not item_str: continue if item_str.startswith(':'): continue i = item_str.find(':') headers[item_str[:i]] = item_str[i + 1:].strip() return headers
xlsx文件生成和读取:
execl文件处理是我们常见得,我们再处理文件得时候,不管需要解析,还是要过滤,都需要读取,我们对网站后台解析后得数据也需要execl进行输出。
这里我们就可以写个函数,用来读取xlsx文件,返回数组列表。也可以将数组列表生成xlsx文件代码见下:
"""read_xlsx()读取xlsx文件 结果返回列表"""
def read_xlsx(f): try: file1=f xls_list=[] table = load_workbook(f) sheetname=table.sheetnames for shee in sheetname: data=table[shee]
rows=data.rows for i in rows: a=[] for x in i: a.append(str.lower(str(x.value))) xls_list.append(a)
return xls_list except Exception as e: print(e) pass
"""write_xlsx 此函数用来生成xlsx文件传入参数必须是列表,多个函数组合调用来生成excel文件"""
def write_xlsx(datas,fi): try: wb=Workbook() ws=wb.active
for i in datas: ws.append(i) wb.save(fi) print(f"save file as {fi}!!! ") except Exception as e: print(e)
结尾#
相关代码github:
https://github.com/shinyxiaoxia/mzfuzz
这种每个人得使用都不一样,所以可以参考下这种方法,一点点去模块化自己频繁的操作。
之后需要什么操作,只需要import mzfuzz即可。
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!


