在实战中不建议深度挖掘,这些漏洞一般都可以通过一些逻辑漏洞进行绕过

白盒审计中的前端漏洞

前端漏洞类型:

  • xss漏洞
  • CSRF漏洞
  • JSONp劫持漏洞
  • url跳转漏洞
  • 点击劫持漏洞

白盒测试中的XSS漏洞

如何在白盒测试中寻找xss漏洞

  • 自动化FUZZ,寻找输出函数
  • 富文本xss挖掘

那么就有个问题,什么是富文本

富文本就是例如网站开发者为使用者开发的留言板,文章编辑器等内容

富文本xss

常见的富文本过滤方法:

黑名单过滤:

1
2
3
4
<?php
$a=$_GET['1'];
$b=htmlspecialchars($a);
?>
1
2
3
4
<?php
$a=$_GET[('1')];
$b=strip_tags($a);
?>

上述的两种方式虽然十分的高效和有效,但是其必然会影响到业务的正常,尤其是那些博客在线编辑等网站,这个时候一般的开发者就会选泽富文本过滤器

其实也没什么高深的,就是处理了一些js前端敏感和危险的函数

1
<script src=16 href=16 onerror="javascript:alert(16)"></script>

会被直接过滤成

1
<script src=16 href=16 onerror="javascript:xxxx(16)"></script>

例子:Roundcude邮件xss漏洞

https://cloud.tencent.com/developer/article/1717473

它的富文本过滤器在出处理style中时,当输入’ 时,加上”,当使用“时加上’

那么如果我同时使用’和”那会怎么样,那么就成了

挖掘代码中的富文本xss漏洞

黑名单还是白名单

黑名单:查找不存在于名单中的关键词(标签,属性)(fuzz爆破i)

白名单:白名单中是否有可利用的标签,属性


代码逻辑是否有问题(如用户输入的内容溢出属性外成为一个新属性)

收集,积累前端xss技巧

白盒测试中的CSRF漏洞

如果学员不知道csrf是啥,就解释Csrf:跨站请求伪造,例如:点击未知链接,造成账号等信息被盗取,既该攻击可在被攻击者不知情的情况下以受害者的名义伪造请求,执行恶意操作。

攻击大致历程:以添加后台管理员为例,首先想办法获取添加管理员的时的数据包(如果是cms,本地部署就可获取),然后利用csrftest对数据包进行修改,修改完后直接在公网主机上开个服务,把修改过的csrftest的html文件上传,然后诱导网站管理员点击链接(其实也可以在csrf的报文里添加个beefxss的存储型xsspayload直接获取cookie)完成攻击

如何在白盒中挖掘CSRF漏洞

确定目标防御csrf漏洞的方式

检查Referer

检查token

寻找Referer检查缺陷

URL技巧

一些粗心的开发者针对Referer只是做了简单的处理

1
2
3
4
5
6
7
<?php
$url=$_SERVER['HTTP_server'];
$domain=parse_url($url);
if (preg_match(pattern:'/dezuz .net/')){ #只检验了其url是否来自信任的域名

}
?>

(如果有学员问啥是$_SERVER,回答他这是一个用于返回web服务参数的原生函数https://www.runoob.com/php/php-superglobals.html

但是很明显,上述demo这样处理是及其不安全的,攻击者会注册一个例如http://dezuz.net.eval.com的类似域名进行绕过(成本偏高)

原理就是parse_url函数的相关特性,导致的,当攻击者的域名为http://dezuz.net.eval.com或http://eval.dezuz.net.com时,只要保证你的域名里有dezuz.net,那么就能成功绕过

寻找跨域漏洞(Referer无解,只能从token找突破点)

Flash

Jsonp

CORS

白盒测试中的Jsonp劫持漏洞

jsonp劫持漏洞介绍

jsonp劫持漏洞常见位置

  • web框架默认支持ajax+jsonp方式请求
  • 程序员开发需要支持jsonp的应用

例子:fanwe O2O用户密码可劫持

https://bugs.leavesongs.com/%E5%89%8D%E7%AB%AF%E5%AE%89%E5%85%A8/fanwe-o2o%E7%94%A8%E6%88%B7%E5%AF%86%E7%A0%81%E5%8F%AF%E5%8A%AB%E6%8C%81%EF%BC%88%E9%80%9A%E7%94%A8-%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6jsonp%E5%8A%AB%E6%8C%81%E6%A1%88%E4%BE%8B%EF%BC%89/

jsonp劫持防御绕过

Referer检查可被绕过

Some攻击

那么,什么是same攻击,让我们假设一个场景,一个网站有xss漏洞,但是做了严格的限制,只能插入部分代码片那么这个时候就需要用到same攻击了,same攻击的原理是假设当一个窗口文件被重定向之后,它的窗口对象仍然保存在原始分配的内存空间中,如果窗口A打开了窗口B,用户代理将会创建一个指向窗口A的引用,当窗口A的文件内容被修改(重定向)后,引用并不会被清除,而且窗口B仍然能够使用窗口属性值来引用它。

https://michaelwayneliu.github.io/2017/12/21/SOME%E6%94%BB%E5%87%BB/