bWAPP(A8~CSRF)

A8 - Cross-Site Request Forgery CSRF

  • Cross-Site Request Forgery (Change Secret)
  • Cross-Site Request Forgery (Change Secret)
  • Cross-Site Request Forgery (Transfer Amount)

Cross-Site Request Forgery (Change Secret)

CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用

bWAPP(A8~CSRF)_第1张图片
修改密码的请求会暴露在url中

那么可以直接通过发送指定url给受害者点击, 即可恶意修改密码

http://127.0.0.1/bWAPP/bwapp/csrf_1.php?password_new=666&password_conf=666&action=change

bWAPP(A8~CSRF)_第2张图片
medium&high

bWAPP(A8~CSRF)_第3张图片
增加了需要原密码的确认

大佬的做法是

可以通过钓鱼的方式攻击:
即构造一个钓鱼界面, 诱导用户输入旧密码, 然后通过JS脚本"悄悄"将旧密码发送到攻击者服务器
为了与原网页仿真, 要复制HTML源代码中的表单
当受害者进入这个假的链接,并且还输入了自己的个人密码的时候,信息就会发送到到攻击者服务器上

Cross-Site Request Forgery (Change Secret)

bWAPP(A8~CSRF)_第4张图片这一关可以直接修改密码,但用的是post方式进行传输

bWAPP(A8~CSRF)_第5张图片通过使用Engagement toolsGenerate CSRF PoC功能

bWAPP(A8~CSRF)_第6张图片

这里的密码是可以修改的,修改之后将poc复制保存,同上一关进行钓鱼,诱导用户点击后密码就会被修改了

bWAPP(A8~CSRF)_第7张图片
medium&high

bWAPP(A8~CSRF)_第8张图片加入了token进行验证

// A random token is generated when the security level is MEDIUM or HIGH
if($_COOKIE["security_level"] == "1" or $_COOKIE["security_level"] == "2")
{
     

    $token = sha1(uniqid(mt_rand(0,100000)));
    $_SESSION["token"] = $token;

}

使用了Anti Token来防止CSRF

Cross-Site Request Forgery (Transfer Amount)

bWAPP(A8~CSRF)_第9张图片

模拟了一个银行转账, 使用是的Get的请求, 使得转账金额和对方账户都在url中暴露

bWAPP(A8~CSRF)_第10张图片
而medium和high都要进行token进行验证

你可能感兴趣的:(bWAPP(A8~CSRF))