网安学习日志-CSRF漏洞(下篇)

 1.练习思路

在实战中,别人的网站不可能像靶场一样毫不设防,这个是时候我们就需要利用代码审计的能力去寻找破解的方法。

2.攻击过程

这里我们通过phpstudy搭建一个网站来供我们攻击,网站如下:

我们用上一章的方法故技重施,模仿用户在后台创建新用户时被诱导点击了不良网站,攻击者想要通过这种方式创建一个非法管理员账号。

攻击者通过拦截数据包,创建了一个非法网站“bestdachu”,代码如下图所示,受害者一不小心进行了点击。

 

不好,失败了(┬┬﹏┬┬) ,这是为什么呢,我们重新返回我们刚刚生成的代码,通过观察,我们发现了一个与之前不同的地方:

 在针对漏洞的攻击脚本中,我们可以在“cmd.php”的后面发现这么一段代码,大概是“http://*******MemberPst&Token***”,而“token”我们知道它作为计算机术语时,是“令牌”的意思。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,MemberPst也是相关验证的方法,所以在进行攻击的时候触发了服务器的验证,我们并没有做相应的对策,那么我们自然不可能通过。

攻击者可以通过一句话木马的形势黑入目标服务器,然后找到控制验证的文件"cmd.php",

打开该文件使用工具定位关键字“MemberPst”,效果如下:

我们可以发现一个名叫“CheckIsRefererValid”的方法看起来很像是验证是否非法的方法,那么我们就接着找寻该方法的定义区域,我么发现该文件中并没有,但是该文件有一个依赖文件,于是我们接着去寻找该文件的依赖文件中是否存在相关方法:

 经过一段时间的关键词寻找(这里我们可以通过代码审计工具来方便寻找,我这里属于纯手工劳动O(∩_∩)O),我们在一个文件中发现了这一方法:

 

我们可以通过代码得知,它的验证方法是判断你的HTTP Referer是否合法, Referer 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。

所以这个网站使用了同源策略来验证,同源策略的概念源自互联网的发展,在网页浏览器中被广泛应用。同源策略要求浏览器只能向同一来源的资源发送请求,并且限制了页面中的脚本对不同源资源的访问。这样可以有效阻止恶意网站通过浏览器执行跨站脚本攻击(XSS攻击)和跨站请求伪造(CSRF攻击)等方式来窃取用户信息和执行恶意操作。

我们想对这种网站攻击就必须让我们的脚本伪装成同源的样子,于是我们让正常用户创立新账户获取了正确的源,也就是下图中referer后的东西:

 

然后我们使用bp工具拦截我们的数据包,把其中的违法源换成合法的,也就是把带有我们攻击者地址的代码替换伪装成他们自己服务器发出的数据: 

 

 

攻击成功,我们通过恶意网站成功创建了一个违法管理员账号,接下来我们就可以使用该账号为所欲为( ̄︶ ̄)↗ 。

 

3.总结 

CSRF是跨站请求伪造,存在巨大的危害,但在实际情况中,不会有人这么傻去点击那么多不良网站,而且验证方法也可以多样化,比如加个验证码,人脸识别等,所以本次实验重点在熟悉漏洞所存在的位置以及预防的方法(~ ̄▽ ̄)~。

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值