You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从千余个带GET参数的链接中提取含XSS的JavaScript payload?

嘿,我懂你现在的需求——手里上千个带GET参数的URL,要把里面含XSS的JavaScript payload都揪出来整理成列表对吧?之前试了urlparse没找到直接对应的功能?其实urlparse只是拆分URL的第一步,咱们得结合它做后续的参数解析和筛选,下面给你具体的实现思路和代码示例:

解决方案:用Python解析并提取XSS Payload

我们可以借助Python的urllib.parse模块(Python3版本,Python2用urlparse)来拆分URL、解析查询参数,再针对性筛选含XSS特征的内容。

1. 核心思路拆解

  • 先用urlparse()拆分每个URL,分离出查询参数部分
  • 再用parse_qs()把查询参数转换成键值对字典,方便遍历每个参数的值
  • 逐个检查参数值,提取包含“XSS”字符串(或其他XSS特征)的payload,最后整理成列表

2. 完整代码示例

from urllib.parse import urlparse, parse_qs

def extract_xss_payloads(url_list):
    xss_payloads = []
    for url in url_list:
        # 拆分URL的各个部分(协议、域名、路径、查询参数等)
        parsed_url = urlparse(url)
        # 把查询参数解析成字典,每个参数对应的值是列表(支持重复参数)
        query_params = parse_qs(parsed_url.query)
        
        # 遍历所有参数的所有值
        for param_values in query_params.values():
            for value in param_values:
                # 检查是否包含"XSS"字符串,可根据需求扩展更多XSS特征
                if "XSS" in value:
                    xss_payloads.append(value)
    # 可选:去重处理,避免重复的payload
    return list(set(xss_payloads))

# 测试用例
sample_urls = [
    "http://example.com/test?input=<script>alert('XSS')</script>",
    "http://demo.site?payload=XSS-steal-session&foo=bar",
    "http://test.net?id=456&content=safe-text"
]

# 提取结果
result = extract_xss_payloads(sample_urls)
print("提取到的XSS Payload:")
for idx, payload in enumerate(result, 1):
    print(f"{idx}. {payload}")

3. 扩展优化建议

  • 精准筛选:如果你的XSS payload不一定带“XSS”字符串,而是有<script>、javascript:、onclick=这类特征,可以把判断条件改成:
    xss_keywords = ["XSS", "<script>", "javascript:", "onload=", "onclick="]
    if any(keyword in value for keyword in xss_keywords):
    
  • 保留重复项:如果不需要去重,直接返回xss_payloads即可,不用转成集合再转列表
  • 批量处理:如果你的URL是存放在文本文件里,可以先读取文件内容到列表,再传入函数处理

内容的提问来源于stack exchange,提问作者fedsikan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:41:41