CSRF(Pikachu)

CSRF(Pikachu)_第1张图片

CSRF(get)

首先我们先登录账号
admin
密码是;123456
点击修改个人信息
CSRF(Pikachu)_第2张图片

用F12或者BP
抓包看看我们的url
在这里插入图片描述
那么构成的CSRF攻击payload为http://pikachu.shifa23.com/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=”手机号[email protected]&submit=submit
在这里插入图片描述

CSRF(Pikachu)_第3张图片

CSRF(post)

虽然POST请求无法通过伪造URL进行攻击, 但是可以通过伪造恶意网页, 将伪造的POST请求隐藏在恶意网页的表单中, 然后诱引用户点击按钮提交表单, 数据自然就POST至存在CSRF漏洞的网页, 最终用户的信息会被修改
bp抓包看看
CSRF(Pikachu)_第4张图片
这里用bp的工具生成恶意代码
CSRF(Pikachu)_第5张图片
修改valeu的值
这里我随便乱输入的

CSRF(Pikachu)_第6张图片
CSRF(Pikachu)_第7张图片

CSRT Token

造成CSRF漏洞的主要原因是请求敏感操作的数据包容易被伪造, 其实只要在每次请求时都增加一个随机码(Token), 在每次前端与后端进行数据交互时后台都要对这个随机码进行验证, 以此来防护CSRF攻击

查看token_get_edit.php的源码, 发现有一个set_token()函数, 该函数每次刷新页面都会被调用, 然后将SESSION中的token销毁, 并生成新的token发送至前端表单中

<div id="per_info">
   <form method="get">
   <h1 class="per_title">hello,{$name},欢迎来到个人会员中心 | <a style="color:bule;" href="token_get.php?logout=1">退出登录</a></h1>
   <p class="per_name">姓名:{$name}</p>
   <p class="per_sex">性别:<input type="text" name="sex" value="{$sex}"/></p>
   <p class="per_phone">手机:<input class="phonenum" type="text" name="phonenum" value="{$phonenum}"/></p>    
   <p class="per_add">住址:<input class="add" type="text" name="add" value="{$add}"/></p> 
   <p class="per_email">邮箱:<input class="email" type="text" name="email" value="{$email}"/></p>
       
   <input type="hidden" name="token" value="{$_SESSION['token']}" />
       
   <input class="sub" type="submit" name="submit" value="submit"/>
   </form>
</div>

CSRF(Pikachu)_第8张图片

你可能感兴趣的:(网络渗透,学习)