• CSRF(Pikachu靶场练习)


    CSRF(get)

    自己随便输点东西,回显登录失败,查看源码没发现什么

    点开提示,登录进去看看

    image-20240503095741193

    看到可以修改个人信息,我们把居住改成China,修改成功,没发现urlhttp://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php有变化

    image-20240503095955257

    这次我们在submit时抓包看看

    image-20240503101747460

    /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=111&add=China&email=lili%40pikachu.com&submit=submit
    

    url上并没有携带认证信息,所以在用户登录状态下(其实这个链接里面是不包含用户名的,谁登录都无所谓,只要有人登录着就行,登录着的用户的信息就会被改成url提供的那些),试试改一改上面的链接,比如把性别改一改。payload:

    pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=111&add=China&email=lili%40pikachu.com&submit=submit
    

    image-20240503102513889

    修改成功

    因为这关session时间特别短(大概不到1min)可能会导致用户登录之后后端检测结果是用户未登录

    网上有很多短链接网站可以修饰url(百度搜索“短链接”就有很多)

    img

    先检查是否登录,如果没登录则跳转到登录页面。如果用户已登录,就不再做任何验证,直接将前端传来的数据下到数据库了(看代码这关还有sql注入漏洞呢)。

    image-20240503135816699

    CSRF(post)

    和上一题一样修改个人信息的时候用bp抓包

    image-20240503103658906

    依旧没有认证信息,有CSRF漏洞。

    但是这一关是post类型,URL不再显示修改参数,所以无法再使用上述办法(即通过URL来伪造请求)进行修改,

    需要我们去构造一个html,这里我们直接用burp的工具生成

    image-20240503105040530

    image-20240503104958487
    点击用浏览器测试

    image-20240503105426977

    点击提交

    image-20240503105558825

    直接跳转

    image-20240503105734765

    CSRF token

    登录之后,修改个人信息时bp抓包

    image-20240503134834450

    发现有token字段

    token验证原理
    CSRF的主要问题是敏感操作的链接容易被伪造
    每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对随机码进行验证

    网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样,起到了防止伪造的作用。

    删了token行不行,显然是不行嘟

    image-20240503135302230

    多抓几次包发现token是无规律的,在一定程度上防御了CSRF攻击

    查看源代码

    image-20240503140140500

    image-20240503140106927

    修改用户信息时,服务器会比较url中的token字段和session中的token字段,如果相同才能修改用户信息。

    修改完用户信息之后,会用set_token()函数生成新的token,将其返回到html表单中并隐藏起来,以便下次用户修改信息时代入url。


    __EOF__

  • 本文作者: Mchacha
  • 本文链接: https://www.cnblogs.com/mchacha/p/18184186
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    FFmpeg深入学习
    2023山东大健康产业博览会|阿胶|酵素|肽产品|氢健康展
    Flutter TextField 点击时如何定位光标位置
    JavaScript基础知识16——分支语句
    android 将数据库中的 BLOB 对象动态加载为 XML,并设置到 Android Activity 的内容视图上
    Llama 3加入大模型“豪华套餐”,成了吴恩达最好的生日礼物
    VIM实用指南(3)复制,粘贴 ,删除,撤销,重做指令速记
    单片机存储结构简述
    JDBC-day06(数据库连接池)
    宠物衣服类和宠物玩具类上架亚马逊CPC检测标准
  • 原文地址:https://www.cnblogs.com/Mchacha/p/18184186