九零登录

[【通过】] xss 检测工具 支持get/post

[复制链接]
发表于 2017-7-6 10:18:26 | 显示全部楼层 |阅读模式
本帖最后由 xiaofan321 于 2017-7-6 10:17 编辑

xss 检测工具 支持get/post 可批量

代码放到最下边

使用方法
get  方法调用   xssfind(url,payload)   
post 方法调用 xssfind(url,payload,method='post',data='name=test&aa=tet')


payload 来自文件

函数 getquerys用于获取格式化参数

函数 xssfind 用于将每个参数加上payload 并检测

源码如下
# coding=utf-8
import requests
import urlparse

def getquerys(query,payload):
    results = []
    newquery = query.replace('&','{}&')+'{}'
    params = [ x[1] for x in urlparse.parse_qsl(query) ]
    # print newquery,params
    for param in params:
        results.append( newquery.format(*(payload if v == param else '' for v in params)) )
    return results

# print getquerys('name=test&aa=tet','xxxx')

def xssfind(url,payload,method='get',data=''):
    print 'try ',payload
    if method == 'post':
        if data == '':
            print 'not param to find'
            return ''
        ndatas = getquerys(data,payload)

        for ndata in ndatas:
            ndata = dict([dd for dd in urlparse.parse_qsl(ndata)])
            req = requests.post(url,data=ndata)
            if payload in req.text:
                print '[success] payload is:',ndata
    else:
        urlp = urlparse.urlparse(url)
        query = urlp.query
        ndatas = getquerys(query,payload)
        for ndata in ndatas:
            nurl = urlparse.urlunparse([urlp.scheme ,urlp.netloc,urlp.path,urlp.params,ndata,urlp.fragment] )
            req = requests.get(nurl)
            # req.encoding = 'utf-8'
            if payload in req.content:
                print '[success] payload is:',ndata


def scan(payloadspath='payloads.txt'):
    with open(payloadspath) as f:
        payloads = f.read().split('\n')

    url = 'http://127.0.0.1/xsstest/level1.php?name=test'
    for payload in payloads:
        xssfind(url,payload)
        # xssfind(url,payload,'post','name=test&aa=tet')

if __name__ == '__main__':
    scan()需要修改的参数 scan函数

其中的payload 来自开源工具 BruteXSS







评分

参与人数 1酒票 +5 收起 理由
管理05 + 5 欢迎加入90!

查看全部评分

发表于 2017-7-6 10:19:31 | 显示全部楼层
现在的XSS检测工具基本上只能检测反射XSS,存储的还是要人工找
 楼主| 发表于 2017-7-6 10:25:56 | 显示全部楼层

RE: xss 检测工具 支持get/post

风在指尖 发表于 2017-7-6 10:19
现在的XSS检测工具基本上只能检测反射XSS,存储的还是要人工找

有过滤的需要人工找 ,存储 原理和发射都是 参数出的问题 。工具只是完成重复工作 ,思考还是得靠人工来

九零

GMT+8, 2026-10-22 12:50

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表