渗透测试基础-CSRF原理及实操

渗透测试基础-CSRF原理及实操

    • CSRF原理
    • CSRF靶场演练
    • 漏洞总结

只为对所学知识做一个简单的梳理,如果有表达存在问题的地方,麻烦帮忙指认出来。我们一起为了遇见更好的自己而努力!

CSRF原理

CSRF:跨站请求伪造(英语:Cross-site request forgery), 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任

还是用我自己的理解,在说一下CSRF的原理:
网站A存在CSRF漏洞,网站B为黑客搭建的攻击网站(攻击网站:与A网站是同一个网站,黑客在重置密码的阶段,抓取了重置密码的数据库包,将这个数据包制作成了SCRF利用代码),用户C为网站A的管理员。

1. 用户C,通过自己的账号密码登陆到了网站A。
2. 用户C,在没有关闭浏览器的情况下(或者没有退出登陆网站A的情况下),访问了网站B。
3. 用户C,回来继续浏览自己管理的网站A,可是事后发现,自己的密码登陆不了了。

这里的原理是:用户C在登陆网站A之后,网站会返回给用户C一个Cookie值,这个值是存在用户C的浏览器当中,接着用户C去访问了网站B,网站B的攻击代码要求是,访问网站A并修改密码,用户浏览器接收到要求,发现自己这里就有网站A的Cookie值,自己是能操作的,所以浏览器以为是用户C自己本身的操作,这里就按照攻击代码中去执行修改密码行为。

来图片看个案例
渗透测试基础-CSRF原理及实操_第1张图片
点击Change抓取数据包
渗透测试基础-CSRF原理及实操_第2张图片
Burp制作CSRF Poc

复制到本地打开,点击按钮,网页自动跳转到刚才改密码的界面,显示密码已更改完成
渗透测试基础-CSRF原理及实操_第3张图片
从上面这个图片例子可以知道CSRF攻击的一个大体流程,但前提是存在CSRF漏洞的浏览器cookie还没有过期,如果过期了是没有用的。得先伪造一个请求链接,发送给受害者,受害者点击后请求被执行。

CSRF靶场演练

渗透测试基础-CSRF原理及实操_第4张图片
网站是一个dedecms,在网站最下面还看到了版本号,那既然知道版本了,去百度上下载其源码,在本地构建攻击代码我们再来尝试。
渗透测试基础-CSRF原理及实操_第5张图片
根据靶场开头的提示,我们得将网站目录地址同步一下,不然会导致数据访问的问题,


cms源码解压出来的文件名是uploads,而靶场为newcsrf,这里讲文件名做更改,放入网站www目录中。开启phpstudy
渗透测试基础-CSRF原理及实操_第6张图片
接下来在自己的浏览器上打开虚拟机的ip就能进入dedecms的安装界面(具体步骤省略)。

渗透测试基础-CSRF原理及实操_第7张图片
后台的密码,是自己在安装的时候就填写的,adminadmin

登录进去,我们该想的就是:需要制作怎样的CSRF才能拿下靶场机器。再三思索,最好的就是想办法上传一句话木马文件上去,一举通过webshell工具拿下。既然需要上传文件,那我们就应该找网站后台的上传点在哪,在上传点保存文件那前一个步骤,开启Burp,将数据包抓下来,制做CSRF的poc,这样就能达成目的。

我们将眼光移到文件上传处
渗透测试基础-CSRF原理及实操_第8张图片
渗透测试基础-CSRF原理及实操_第9张图片
渗透测试基础-CSRF原理及实操_第10张图片

渗透测试基础-CSRF原理及实操_第11张图片

这里我们还得加入点东西,因为这个是Burp制作的东西,不是已攻击为目的的,这个做出来的CSRF是需要点击一下按钮才会跳转的,太过于明显,这里加入一点新东西,让其只要点击链接就会执行,不需要在另外点击一次。
渗透测试基础-CSRF原理及实操_第12张图片
这里添加的代码的意思是:先在上面定义个一个id=‘aa’的值,下面是,当检测到id的值为aa时去执行网页内容,执行的时间是100毫秒以后,这样就能让其只要访问就能自动触发

既然有了文件,现在本地尝试一下。(不要用google浏览器尝试,会出错。。)
渗透测试基础-CSRF原理及实操_第13张图片
这里看到并没有123.php,然后将刚才的文件,拖入浏览器中。
渗透测试基础-CSRF原理及实操_第14张图片
渗透测试基础-CSRF原理及实操_第15张图片
刷新网页之后,123.php出现在了列表中。

这个时候,可以尝试一下看phpinfo()能不能用,如果行的话,那webshell也就没啥问题了。

既然自己搭建的网页没问题,那就带进靶场试一下,将cc.html里面与靶场url不匹配的地址给替换掉。
渗透测试基础-CSRF原理及实操_第16张图片
渗透测试基础-CSRF原理及实操_第17张图片
替换好文件,这里还是和以前一样,交给客服机器人帮我们点击一下。
渗透测试基础-CSRF原理及实操_第18张图片
渗透测试基础-CSRF原理及实操_第19张图片
渗透测试基础-CSRF原理及实操_第20张图片
提交完成后,只需要等待后台机器人的访问链接,就会在后台创建一个个123.php文件,然后就可以连接菜刀进入后台了。
渗透测试基础-CSRF原理及实操_第21张图片

渗透测试基础-CSRF原理及实操_第22张图片

漏洞总结

至于防御手段,可在请求的数据包里面增加token字段,用随机值去做验证,每次访问网页都会带一个token,当请求过来时,服务器会做比对,当发现两次token不一样时,就不会执行拦截操作。这在CSRF上不能实现的,因为无法提前一步知道网站随机token值是多少。

《最好的防御,是明白其怎么实施的攻击》

你可能感兴趣的:(CSRF,csrf,安全,web)