• 每一个协议层都是Packet类的子类。
  • 协议层背后所有逻辑的操作都是被Packet类和继承的类所处理的。
  • 一个简单的协议层是由一系列的字段构成,他们关联在一起组成了协议层,解析时拆分成一个一个的字符串。
  • 这些字段都包含在名为fields_desc的属性中。

对字段的处理:

  • i (internal) :这是Scapy怎样操作它们的方法。
  • m (machine) :这是真正的数据,这就是他们在网络上的样子。
  • h (human) :如何将数据展示给人们看。

这解释了一些神秘的方法i2h(),i2m(),m2i()可以用于每一个字段:他们都是将一种状态转换成另一种状态,用于特殊的用途。

其他特殊的方法有:

  •     any2i():猜测输入的状态装换为internal状态。
  •     i2repr():比i2h()更好。

上代码:

#encoding=utf-8
from scapy.all import *
import re
import datetimedef test(page):'''第一层是数据链路层,第二层是ip层,第三层是tcp层——>包含端口号、http报文,第四层是应用层其中每一层均为上一层的payload成员'''for f in page.payload.payload.payload.fields_desc:# f.name为Raw的字段名称——>load:传输的http请求信息fvalue = page.payload.payload.getfieldval(f.name)reprval = f.i2repr(page.payload.payload, fvalue)  # 转换成十进制字符串if 'HTTP' in reprval:lst = str(reprval).split(r'\r\n')la = re.findall('(GET )|(POST )', lst[0])if la != []:if la[0][0] == '':with open('sql.txt', 'r+') as file:for fi in file.readlines():if fi.strip('\n') in str(lst[-1]).lower():try:i = datetime.datetime.now()print("[!]您正在被攻击!")print('[*]攻击时间是\t'+str(i))beiattack = re.findall('Host: \w{3}\.\w{3}\.\w{3}\.\w{3}', str(lst))print('[*]被SQL注入攻击的IP为\t' + beiattack[0].strip("Host: "))print('[*]攻击的payload是\t' + lst[-1].strip('\''))print('[*]提交的方式为\tPOST')with open('danger.log', 'a+') as f:f.write("[!]您正在被攻击!\n [*]攻击时间是\t%s\n[*]被SQL注入攻击的IP为\t%s\n[*]攻击的payload是\t%s\n[*]提交的方式为\t POST\n\n" % (str(i),beiattack[0], lst[-1]))except:passif la[0][1] == '':with open('sql.txt', 'r+') as file:for fi in file.readlines():if fi.strip('\n') in str(lst[0]).lower():try:i = datetime.datetime.now()print("[!]您正在被攻击!")beiattack = re.findall('Host: \w{3}\.\w{3}\.\w{3}\.\w{3}', str(lst))print('[*]攻击时间是\t'+str(i))print('[*]被SQL注入攻击的IP为\t' + beiattack[0].strip("Host: "))print('[*]攻击的payload是\t'+ lst[0].strip('\'GET '))print('[*]提交的方式为\tGET')with open('danger.log', 'a+') as f:f.write("[!]您正在被攻击!\n[*]攻击时间是\t%s\n [*]被SQL注入攻击的IP为\t%s\n[*]攻击的payload是\t%s\n[*]提交的方式为\t GET\n\n" % (str(i),beiattack[0], lst[0]))except:pass
def main():#无限抓取通过VMware Virtual Ethernet Adapter for VMnet8网卡并且主机为192.168.209.137的数据包并传给回调函数testa = sniff(filter='host 192.168.209.137', iface="VMware Virtual Ethernet Adapter for VMnet8", prn=test, count=0)
if __name__ == '__main__':main()

  • analyze.py : 无限抓包并逐条分析http请求字段是否含有sql注入攻击并生成警告日志文件:danger.log。
  • sql.txt:提供特殊字段检测的字典。

payload后的HTTP/1.1忘了过滤了,就这样吧..

scapy(二):基于流量分析的SQL注入检测相关推荐

  1. 基于AST抽象语法树的SQL注入检测 (2) -- 每周小结(01-02~01-08) - .Little Hann

    本周继续学习AST的SQL语法检测原理的学习,文章的接下来部分准备分为2部分进行学习: 1. SQL注入语法防御规则 2. druid中SQL注入防御模块sql-wall 1. 相关学习资料 http ...

  2. 基于 WebGoat 平台的 SQL 注入攻击

    基于 WebGoat 平台的 SQL 注入攻击 扩展功能参考: https://blog.csdn.net/HZC0217/article/details/126790211 使用实例参考: http ...

  3. SQL注入检测模块开源项目DRUID-SQL-WALL学习小结

    作为sql注入原理.sql注入检测.防御系列学习的第三篇.本文主要关注了抽象语法树ast在sql注入检测上的应用开发.以及开源项目druid-sql-wall的学习,希望能给研究这一领域的朋友带来一点 ...

  4. 使用Python打造基本WEB漏洞扫描器(一) 网站爬虫+SQL注入检测

    一.实验介绍 扫描器需要实现功能的思维导图: 1.1 实验内容 编写一个简单的多线程爬虫,用于对网站地址进行爬取,编写一个简单的sql注入工具,用于对网站地址进行sql注入的检测. 1.2 实验知识点 ...

  5. C#SQL注入检测——特别是对于旧版.NET代码

    目录 使用Decorator模式提供添加SQL注入检测的位置 SQL注入检测代码 究竟如何检测到SQL注入? SQLExtensions类中包含的格式化方法 自定义.NET异常类 用于检测SQL注入的 ...

  6. 基于视频分析的rPPG心率检测

    基于视频分析的rPPG心率检测 YTimo PKU EECS 注:本文内容主要来自于综述文章:Video-Based Heart Rate Measurement: Recent Advances a ...

  7. Web网络安全漏洞分析,SQL注入原理详解

    本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 一.SQL注入的基础 1.1 介绍SQL注入 SQL注入就是 ...

  8. (超级有用)ThinkPHP 5漏洞分析之SQL注入

    本次漏洞存在于 Builder 类的 parseData 方法中.由于程序没有对数据进行很好的过滤,将数据拼接进 SQL 语句,导致 SQL注入漏洞 的产生.漏洞影响版本: 5.0.13<=Th ...

  9. javassist技术研究Sql注入检测

    AOP为Aspect Oriented Programming的缩写 面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术. 日志记录,性能统计,安全控制,事务处理 Java ...

  10. perclos嘴巴_一种基于视频分析的疲劳状态检测方法及装置与流程

    本发明涉及疲劳检测领域,特别是涉及一种基于视频分析的疲劳状态综合检测方法及装置. 背景技术: 疲劳状态检测技术在交通运输.生产安全.教育培训等许多领域应用广泛.目前,疲劳状态检测的方法一般可分为接触式 ...

最新文章

  1. 产品设计体会(1011)少做就是多做
  2. 07Bridge(桥)模式
  3. vue-cli搭建的项目打包之后报“资源路径错误资源文件找不到“
  4. 重新学习Spring2——IOC和AOP原理彻底搞懂
  5. php缓存注入,利用Thinkphp 5缓存漏洞实现前台Getshell
  6. 单片机外围模块漫谈之二,如何提高ADC转换精度
  7. LeetCode 342. 4的幂(位运算)
  8. python脚本打包成linux命令_Python脚本文件打包成可执行文件的方法
  9. Leo-io 的C语言实现简单五子棋游戏观后感
  10. spring mvc国际化_Spring MVC国际化(i18n)和本地化(L10n)示例
  11. STM32的Bootloader实现
  12. 飘逸的python - 几行代码实现unix管道风格的函数调用
  13. SetNamedPipeHandleState
  14. 【重磅】这家技术贼牛的开源公司开始狂招人啦!
  15. 美团的2020年:千亿美元帝国的贪吃蛇游戏,气势汹汹也危机重重
  16. 《生命》第五集:Birds (鸟类)
  17. 科研人必备英语改写神器——PARAPHRASER多语言改写
  18. Python grabcut 提取图像前景
  19. github仿android便签,有人在Github上用几行代码就造了个锤子便签
  20. 模式识别(二)特征矢量与空间

热门文章

  1. 转载-【常用RGB颜色查询对照表及感情色】
  2. matlab-FCM模糊聚类
  3. 【运维必备-堡垒机】
  4. CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170710
  5. IDEA ideaIU点击无反应
  6. 【仿美团点餐App】—— 首页(二)
  7. 系统同传软件_国外科研大牛的讲座,英语不好别抓瞎,免费同传神器来帮忙
  8. C#窗体-个人简历生成(自己设计并编写一个 Windows 应用程序,要求用到TextBox、GroupBox、RadioButton )
  9. Python 代码库之Tuple如何append添加元素
  10. 罗斯蒙特8712ESR1A1N0M4流量变送器