Python实现XSS扫描
利用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扫描的更多相关文章
- Python 网站后台扫描脚本
Python 网站后台扫描脚本 #!/usr/bin/python #coding=utf-8 import sys import urllib import time url = "ht ...
- python的arp扫描
python的arp扫描 from optparse import *from scapy.all import *parser = OptionParser()parser.add_option(& ...
- 利用Python进行端口扫描
利用Python进行端口扫描 - Dahlhin - 博客园 https://www.cnblogs.com/dachenzi/p/8676104.html Python实现对一个网络段扫描及端口扫描 ...
- 基于Python的XSS测试工具XSStrike使用方法
基于Python的XSS测试工具XSStrike使用方法 简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payl ...
- python代码安全扫描工具
python代码安全扫描工具:Coverity. Fortify.SecMissile(漏扫,对源代码提供基于语义的搜索和分析能力,实现已知安全漏洞的快速扫描)
- Python 网站后台扫描
title date layout tags Python 网站后台扫描 2018-05-08 post Python #!/usr/bin/python # This was written for ...
- Python实战:扫描key完整性
之前在国际版本中,需要支持中英文切换功能,在如此繁多的源文件里要查找源文件里的key是语言资源包是否对应. 正好运用在之前学的python,写了个工具,支持自定义替换标签,批量处理源文件.现在看来,效 ...
- 只有一百行的xss扫描工具——DSXS源码分析
目录 0x00 废话 0x01 扫描逻辑 第一个逻辑:dom型xss 第二个逻辑:经过后端的xss 0x02 总结 0x00 废话 DSXS是一个只有一百行代码的xss扫描器,其作者刚好就是写sqlm ...
- Python调用nmap扫描网段主机信息生成xml
#!/usr/bin/env python # -*- coding: utf_8 -*- # Date: 2015年10月23日 # Author:蔚蓝行 # 博客 http://www.cnblo ...
- Python敏感地址扫描和爬取工具
0×01 说明: 为了方便信息安全测评工作,及时收集敏感地址(初衷是爬取api地址),所以写了这么个小工具.两个简单的功能(目录扫描和url地址爬取). 0×02 使用参数: python spide ...
随机推荐
- Spring------Bean的实例化的几种方法
构造方法 提供可访问的构造方法: 无参构造方法被调用: 如果无参构造方法不存在,将抛出异常BeanCreationException 静态工厂 在ApplicaytionContext.xml中使用静 ...
- 使用OpenOffice将office文件转为pdf
0.参考博客:https://blog.csdn.net/weixin_39468112/article/details/89203815 1.首先安装openOffice4.1 2.添加依赖 < ...
- 记录一次重置数据库root用户的过程
服务器的mysql突然连接不上去了,密码也忘记了.只能重新设置密码了 1.使用如下指令打开mysql数据库配置文件(具体的文件路径以实际情况为准) vim /etc/my.cnf在虚拟机中直接输入即可 ...
- 【LeetCode997】【哈希表】[Py/C#/Scala/Elixir/Kotlin/Rust/Ruby/Swift/PHP/Java/Go/C++/TS/Erlang/Racket/Dart] 一道统计入度出度的简单题目
可以看到,一般而言,Python最接近"想思路时写的伪代码" 目录 解题思路 代码 python3 C# scala elixir kotlin rust ruby swift p ...
- DDD架构中的领域是什么?
DDD架构中的领域是什么? 我们经常说到DDD分层架构(领域驱动设计),那么究竟什么是DDD架构?如果去网上查通常会告诉你告诉你区别于过去的三层架构思想,DDD(领域驱动设计)是一种四层架构,一般 ...
- R语言网络数据爬取
现在大家对爬虫的兴趣不断高涨,R和PYTHON是两个非常有力的爬虫工具.Python倾向于做大型爬虫,与R相比,语法相对复杂,因此Python爬虫的学习曲线会相对陡峭.对于那些时间宝贵,又想从网上获取 ...
- Python之八大数据类型
数据类型之整型int 与浮点型 float 整型也就是int型 其实就是整数 如: print(type(10)) 浮点型就是float 其实就是小数 如: print(type(10.0)) # 这 ...
- Java内部类的使用介绍详解
前言 在之前讲解static静态内部类时,就给大家简单说过内部类的概念.但实际上,内部类并不是那么简单,所以今天我们需要对内部类进行专门地讲解和学习. 全文大约 [6500]字,不说废话,只讲可以让你 ...
- [网络]公共网络安全漏洞库: CVE / CNCVE
本文博主的经历与该博文处理绿盟科技安全评估的系统漏洞 - 博客园的经历相同: 处理[第三方网络安全公司]给[公司产品]的[客户的服务器]扫描后生成的[安全漏洞报告]. 1 前言 以网络安全行业中最大的 ...
- [ElasticSearch]#解决问题#修改Search Guard密码时 报错:ERR: Seems there is no Elasticsearch running on localhost:9300 - Will exit
问题复现 [root@es2 tools]# ps -ef | grep elasticsearch 9200 22693 1 1 09:31 ? 00:04:54 /usr/bin/java -Xm ...