python自动化脚本_Python编写自动化测试脚本框架

8c8568c30bba9145558bfb38f3e62aa0.gif

插件使用库

4f0889b66c5e8038eab8dd318a4a78fe.png

   request库:requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。

POC代码框架

4f0889b66c5e8038eab8dd318a4a78fe.png

1、首先导入requests标准库(接触过爬虫基础的人都知道是何为,在此不再多赘述。)

ae3007f70af6386d1be19bbe4f4a1613.png

 2、(class类):用来描述相同属性和方法的对象的集合。定义集合中每个对象所共有的属性和方法。以下贴出的代码则为自定义一个ScriptInfo类

203b7c9db6a8d69bb1c52d23e704dc79.png

如果存在漏洞将这个类的info字典一并传回扫描器主函数。

3、def定义一个方法 这个方法是模拟浏览器去请求,简单来讲模拟浏览器发送一个漏洞数据包的整个过程。

    使用def 开始定义check函数,括号内部为函数的参数,内部为需要传到check这个函数的参数值,check方法内部是具体实现逻辑的代码。

f98ae470c10366b1eff3b3096b3a7952.png

两个参数headers、Response.

headers参数是因payload发送的需求而改变的。

Responserequests的session方法 相当于保存方法后的cookie变量 下一次调用request get的时候就会自动带入前一次访问的cookie。常用于模拟登录、后台漏洞。

timeout对于批量验证poc的插件一定要填写时间超时参数,不然会直到请求失败,导致插件运行时间过长。

verify移除ssl证书 对于https的访问。

4、审计函数 audit  主要验证漏洞和处理结果。

7a9039ad0810ee33f135a55165a99527.png

    先将url和漏洞地址拼接调用check函数并返回内容,检查返回数据包中是否存在相应设定的字符串最终确定漏洞是否存在。

 if "BOM Not Found" in response.content and "filename:" in response.content:

    以上就是poc中最主要的逻辑判断BOM Not Foundfilename是存在漏洞一定会出现在返回包的字符串。所以我们将这俩个变成判断漏洞是否存在的关键字。

072b943f989e15d03cf96e7cd77ca44b.png

arg主函数传递处理后的url

payload将url和漏洞地址拼接

response发送数据包并且返回http 返回包内容

warning_info漏洞详情

调试代码

4f0889b66c5e8038eab8dd318a4a78fe.png

运行结果

011eb851fac6d7816198f08514e3ec38.png

    好啦本文就到此结束了,更多的插件编写的方式可以参考安全脉搏生态插件社区开发文档进行学习,我也只是简单的写一个框架。望各位大佬们手下留情,这也是个人的理解。

编写代码思路就是这么多。快来生态插件社区提交插件吧~

5155d8aaab3bc7e538752e1ba76270b8.png

46e700bba994b83240c5269f8ff6f09d.gif

bc59c965205196fa520a676fb9da285e.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值