跨站请求伪造(Cross-site request forgery,CSRF)是一种常用的攻击手段,也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本攻击(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户的信任。
CSRF通常的攻击方式如下:攻击者会伪造一个请求(通常是一个链接,有时会借助浏览器保存的被攻击网站对用户的认证信息(如Cookie等)来达到更优的效果),然后欺骗用户进行点击,一旦用户点击了链接,攻击完成。(这也就是为什么CSRF又叫点击攻击了)
攻击方式如下所示:
从图上可以看出,所谓跨站,就是恶意链接(或恶意网站)不一定是在被攻击的网站上;请求伪造,就是说的是攻击者伪造的一条恶意请求,达到攻击效果。(比如,用户点击执行了一条金额-100的恶意请求,用户损失了,也就是网站被攻击了)
CSRF的分类
CSRF有两种,站内攻击和站外攻击
站内攻击是被攻击的网站原本就存在一定的漏洞,使得这个恶意请求可在站内伪造。站外攻击就是指的是恶意代码在别的网站上。
CSRF漏洞检测
常见的检测器awvs、appscan等,检测速度快,但是误报率高
自解压文件CSRF攻击
自解压文件:用户不需要安装相应的压缩(解压缩)工具即可完成解压的“压缩包”文件,(Windows系统上是.exe的文件)
攻击方式
随便新建一个文件,利用压缩软件进行压缩(这里用的是WinRAR),选中创建自解压压缩格式的压缩文件,然后高级->自解压选项->设置当中,在设置程序当中,有解压后运行和解压前运行,在需要的方式下面写入恶意代码即可。
Discuz论坛实验
环境搭建
需要PHPStudy,需要Discuz源码,源码如下Discuz! X2|Discuz! X2 R20120628 简体UTF-8下载_网站源码 - 站长源码
下载好后,解压放入PHPStudy的网站根目录下(搭建过程这里暂不演示),开启服务即可,注意,若发现有的服务启动不了,可能是PHPStudy自带的服务与自己的服务冲突了,暂时停止自己的服务即可。
然后在浏览器中打开网站,进入安装界面,安装过程中,若出现有源码当中有的方法不支持的情况,有可能是php版本的问题,用php5.4.45nts即可。