09-python开发xss扫描器

一、基本思路

1、整体上的思路是发送一个带有Payload参数值的请求,从响应当中判断是否存在Payload(反射性XSS)

2、准备一份字典文件、尽可能包含更多的payload,并给每一个payload进行分类(不同的类型匹配的要求不同)

import requests

# 从响应中检测payload是否有效
def check_reps(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

    return False


# 实现xss扫描的主功能
def xss_scan(location):
    url = location.split('?')[0]
    param = location.split('?')[1].split('=')[0]  # 1代表第二部分
    with open('../dict/xss-payload.txt') as file:  # xss-payload.txt是字典文件需要自己去添加
        payload_list = file.readlines()

    for payload in payload_list:
        type = payload.strip().split(':',1)  #切分第一个:然后后面的直接删除
        payload = payload.strip().split(':', 1)[1]
        resp = requests.get(url=url,params={param:payload})
        if check_reps(resp.text,payload,type):
            print(f"此处存在xss漏洞:{payload}")


if __name__ == '__main__':
    xss_scan('http://192.168')

    # source = "hello woniu welcome woniu"
    # index = source.find('woniu')
    # print()

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值