利用Python代码实现XSS检测

import requests

# HTML转换实体字符

def str_html(source):
result = ""
for c in source:
result += '&#x' + hex(ord(c)) + ';'
return result.replace('0x', '') # 从响应中检测Payload是否有效 def check_resp(response, payload, type):
index = response.find(payload)
prefix = response[index - 2:index - 1]
if type == 'Normal' and prefix != '=' and index >= 0:
return True
elif type == 'Prop' and prefix == '=' and index >= 0:
return True elif type == 'Escape':
index = response.find(str_html(payload))
prefix = response[index - 2:index - 1]
if prefix == '=' and str_html(payload) in response:
return True elif index >= 0 and prefix == '=':
return True return False # 实现XSS扫描的主功能
def xss_scan(location):
url = location.split('?')[0]
param_list = location.split('?')[1].split('&')
# 此处为XSS的爆破字典,可以自行替换
with open('./dict/xss_payload.txt') as file:
payload_list = file.readlines()
for payload in payload_list:
type = payload.strip().split(':', 1)[0]
payload = payload.strip().split(':', 1)[1]
# 针对HTTP信息的检测
if type == 'Referer' or type == 'User-Agent' or type == 'Cookie':
header = {type: payload}
resp = requests.get(url=url, headers=header)
elif type == 'Escape':
params = {}
for param in param_list:
key = param.split("=")[0]
params[key] = str_html(payload)
resp = requests.get(url=url, params=params)
else:
params = {}
for param in param_list:
key = param.split("=")[0]
params[key] = payload
resp = requests.get(url=url, params=params)
if check_resp(resp.text, payload, type):
print(f"此处存在XSS漏洞:{payload}") if __name__ == '__main__':
# xss_scan('URL地址')

Python实现XSS扫描的更多相关文章

  1. Python 网站后台扫描脚本

    Python  网站后台扫描脚本 #!/usr/bin/python #coding=utf-8 import sys import urllib import time url = "ht ...

  2. python的arp扫描

    python的arp扫描 from optparse import *from scapy.all import *parser = OptionParser()parser.add_option(& ...

  3. 利用Python进行端口扫描

    利用Python进行端口扫描 - Dahlhin - 博客园 https://www.cnblogs.com/dachenzi/p/8676104.html Python实现对一个网络段扫描及端口扫描 ...

  4. 基于Python的XSS测试工具XSStrike使用方法

    基于Python的XSS测试工具XSStrike使用方法 简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payl ...

  5. python代码安全扫描工具

    python代码安全扫描工具:Coverity. Fortify.SecMissile(漏扫,对源代码提供基于语义的搜索和分析能力,实现已知安全漏洞的快速扫描)

  6. Python 网站后台扫描

    title date layout tags Python 网站后台扫描 2018-05-08 post Python #!/usr/bin/python # This was written for ...

  7. Python实战:扫描key完整性

    之前在国际版本中,需要支持中英文切换功能,在如此繁多的源文件里要查找源文件里的key是语言资源包是否对应. 正好运用在之前学的python,写了个工具,支持自定义替换标签,批量处理源文件.现在看来,效 ...

  8. 只有一百行的xss扫描工具——DSXS源码分析

    目录 0x00 废话 0x01 扫描逻辑 第一个逻辑:dom型xss 第二个逻辑:经过后端的xss 0x02 总结 0x00 废话 DSXS是一个只有一百行代码的xss扫描器,其作者刚好就是写sqlm ...

  9. Python调用nmap扫描网段主机信息生成xml

    #!/usr/bin/env python # -*- coding: utf_8 -*- # Date: 2015年10月23日 # Author:蔚蓝行 # 博客 http://www.cnblo ...

  10. Python敏感地址扫描和爬取工具

    0×01 说明: 为了方便信息安全测评工作,及时收集敏感地址(初衷是爬取api地址),所以写了这么个小工具.两个简单的功能(目录扫描和url地址爬取). 0×02 使用参数: python spide ...

随机推荐

  1. vsftpd配置FTP服务器(Centos7.x安装)

    安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | grep vsftpdvsftpd-2.2.2-24.el6.x86_64 如果有展示则已经安装,不需要重新安装 ...

  2. 传输安全HTTPS

    为什么要有 HTTPS 为什么要有 HTTPS?简单的回答是:"因为 HTTP 不安全".HTTP 怎么不安全呢? 通信的消息会被窃取,无法保证机密性(保密性):由于 HTTP 是 ...

  3. JAVA重试机制多种方式深入浅出

    重试机制在分布式系统中,或者调用外部接口中,都是十分重要的. 重试机制可以保护系统减少因网络波动.依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制. 为了方便说明,先假设我们想要进行 ...

  4. Redis6.0.9集群搭建

    前提条件: Redis版本:6.0.9(因为5.0之前创建用的是redis-trib,还需要ruby,ruby-gem) 安装环境: Centos7 1. 准备配置文件 一个是通用文件:redis-c ...

  5. 14.AQS的前世,从1990年的论文说起

    大家好,我是王有志.关注王有志,一起聊技术,聊游戏,聊在外漂泊的生活. 鸽了这么久怪不好意思的,因此送一本<多处理器编程的艺术>,快点击此处参加吧.另外欢迎大家加入"共同富裕的J ...

  6. 关于 manacher 的一个小细节

    在该算法中,我们需要用到一个数组 hw[i] ,代表 i 的最大回文半径.而且这个半径不包括 i 本身(若串为 ccc 则 hw 为 1). 这时最终答案为最大的 hw 减一. 为什么要减一呢?最终的 ...

  7. 基于PaddleOCR的多视角集装箱箱号检测识别

    基于PaddleOCR的多视角集装箱箱号检测识别 一.项目介绍 集装箱号是指装运出口货物集装箱的箱号,填写托运单时必填此项.标准箱号构成基本概念:采用ISO6346(1995)标准 标准集装箱箱号由1 ...

  8. Tarjan强连通分量(scc)

    概念解释 节点强连通:\(v_i\)与\(v_j\)(\(v_i ≠ v_j\))强连通是指从\(vi\)到\(vj\)和从\(vj\)到\(vi\)都存在路径,即两节点互相可达 强连通图:在有向图\ ...

  9. 实现一个CRDT工具库——VClock 时钟向量类

    这段代码实现了一个VClock类,它是基于GCounter实现的.VClock是一种向量时钟,它可以用于在分布式系统中对事件发生的顺序进行排序.VClock的实现方式是将每个节点的计数器值存储在一个字 ...

  10. 网络图片的爬取和存储.py(亲测有效)

    import requests import os url = "https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/i ...