利用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. #HDU2255#奔小康赚大钱(KM模板题)

    Problem Description传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.这可是一件大事,关系到人民的住房问题啊.村里共有n间房间,刚好有n家老百姓,考虑 ...

  2. Linux & 标准C语言学习 <DAY10>

    一.函数递归     函数自己调用自己的行为,叫做函数递归     递归是分治思想的一种具体实现,就是把一个复杂而庞大的问题,分解成若干个相似的小问题,解决所有小问题以解决大问题     如果函数递归 ...

  3. 从零开始学习Java系列之Java运行机制与跨平台特性

    全文大约[4000]字,不说废话,只讲可以让你学到技术.明白原理的纯干货!并带有丰富的案例及配图,让你更好地理解和运用文中的技术概念,给你带来具有足够启迪的思考-- 在上一篇文章中,壹哥给大家介绍了J ...

  4. Spring事务的底层原理

    1. 划分处理单元--IOC 由于spring解决的问题是对单个数据库进行局部事务处理的,具体的实现首相用spring 中的IOC划分了事务处理单元.并且将对事务的各种配置放到了ioc容器中(设置事务 ...

  5. 深入消息队列MQ,看这篇就够了!

    大厂面试爱问消息队列 MQ. 因为消息队列MQ,既是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件. 如果你想要快速掌握消息队列 MQ 最内核的知识,以及消息队列MQ的主流应用场景.主流产 ...

  6. 如何单机部署多个 MySQL 8.0 实例 ?

    在服务器资源有限的情况下,可利用该方案快速搭建各类 mysql 架构方案.各 MySQL 实例共享一个 mysqld 主程序,但各实例数据目录是独立的,存放在不同的文件夹中:好了.废话不多说,直接上干 ...

  7. easy-excel读取远程地址获得文件进行上传

    背景 作为一个快五年的程序员,一直以来还没有自己维护过自己的技术栈,最近也是有时间,所以也是下定决心,从头开始,一步一步的夯基础.最近在系统化的学习easy-excel,今天遇到了一个问题,特意记录一 ...

  8. pandas之sql操作

    我们知道,使用 SQL 语句能够完成对 table 的增删改查操作,Pandas 同样也可以实现 SQL 语句的基本功能.本节主要讲解 Pandas 如何执行 SQL 操作.首先加载一个某连锁咖啡厅地 ...

  9. [PKM]阅读的方法

    0 概述 数据 => 信息 => 知识 => 智慧 1 读书的目的 : 先寻求真理,而后实践 => 先博学,而后守约(读透) & 先泛读/速读,再精读 / 知行合一 年 ...

  10. [ORACLE]Oracle客户端SQLPlus安装与运用

    简述 sqlplus :oracle公司提供用户操作oracle数据库的工具. sqlplus是oracle原始数据操作的客户端,这种命令行的格式有着强大的逻辑性,如果经常使用会对数据库的理解加深很多 ...