Linux系统下的实验,配置了elgg服务javascript
这一步是在Profile中嵌入javascript代码,使得浏览该profile的用户都会引起弹窗。太简单了不细说html
这一步和上一步的区别就是弹窗的内容不同了而已,也不解释,看图。java
这一步是将上一步中得到的cookie使用GET请求发送到Attacker中,Attacker只须要一直在抓包就能够了,这里我使用了wireshark做为抓包工具。apache
这里必须假设Attacker已经知道了victim的elgg_ts和elgg_token参数,这两个参数从WebBrower的Console中获取,分别是elgg.security.token.__elgg_ts;和elgg.security.token.__elgg_token;
别忘了配置Attacker的Web Server是指向Victim机器上面的Web Server。服务器
Java代码模拟发包过程以下:cookie
结果可以使得Boby被迫添加Alice为好友session
这一步须要在profile中注入完整的攻击,使得访问该profile的都是受害者。
主要目的就是调用js文件,主要过程以下:
在Attacker机器上多配置一台Web服务器用于保存.js文件dom
在根据ip地址配置好hosts文件,注意须要修改成新配置的domainxss
可是因为默认设置不能直接访问服务器的文件,因此须要配置apache容许这一操做,同时提升/var/www/路径下新Web服务器的文件权限,使得其能够被直接访问工具
在代码中能够判断一下看看是谁访问,若是是本身访问就不要攻击了,只攻击外人,避免麻烦的事情。能够看看下面三张图:
用户访问Alice的Profile:
用户的Profile被莫名修改:
用户的好友列表莫名添加了新好友:
这一步须要在上一步的基础上添加传播性,所以修改profile的时候再也不修改成任意内容,一样修改成带XSS注入攻击的内容就好。具体修改成这样:
获得的结果为
当Charlie去访问已经被感染的Boby页面的时候,也被感染了
根据文档修改这个配置,主要是对profile中的各字段进行了非法验证,只经过合法的字段从而防止了XSS的攻击问题。
第一步,启用HTMLawed模块
用管理员帐号登录以后,启用里面的HTMLawed模块就好
获得的结果是这样子的
这种方式是把用户输入的script标签转换为a标签,避免了被动触发js代码形成的感染
第二步是启用htmlspecialchars()字符判断转义
根据文档说明修改相应的代码,去掉注释就行了
修改后的效果为
主要功能为,将方括号转义为html的字符渲染形式,从而避免了被看成一个脚本去运行