📕 WriteUp
  • Introduction
  • NewStarCTF 2023
  • MoeCTF 2023
  • DASCTF Jul.2023
  • LitCTF 2023
  • 蓝桥杯 2023
  • NSSRound#13
  • GDOUCTF 2023
  • MoeCTF 2022
  • SWPUCTF 2022
  • SWPUCTF 2021
  • MoeCTF 2021
  • NPUCTF 2020
  • MRCTF 2020
  • GYCTF 2020
  • BJDCTF 2020
  • 网鼎杯 2020
  • CISCN 2019
  • 极客大挑战 2019
  • 安洵杯 2019
  • 强网杯 2019
  • SUCTF 2019
  • De1CTF 2019
  • SWPUCTF 2019
  • ZJCTF 2019
  • RoarCTF 2019
  • GWCTF 2019
  • GXYCTF 2019
  • WesternCTF 2018
  • HCTF 2018
  • 护网杯 2018
  • 网鼎杯 2018
  • BUUCTF 2018
Powered by GitBook
On this page
  • Web
  • admin

HCTF 2018

PreviousWesternCTF 2018Next护网杯 2018

Last updated 1 year ago

Web

admin

首先通过注册账号进行信息收集,可以在 /change 页面发现提示

 <!-- https://github.com/woadsl1234/hctf_flask/ -->

通过关键词 flask 可以明白这题需要 SSTI 模板注入,接下来就是找注入口,但由于这个 Github 链接无法访问,通过在 Github 搜索可以发现别人的 。

其中可以在 routes.py 文件中的可以发现以下函数

def strlower(username):
    username = nodeprep.prepare(username)
    return username

该函数在注册时候调用,其中的nodeprep.prepare() 的作用则是将在 register() 函数中将 Unicode字符 ᴬ 转换成 A ,而 A 在 change() 函数中调用 nodeprep.prepare() 函数会把 A 转换成 a 。

因此我们使用 ᴬdmin 注册并登录后修改密码后退出登录后用修改后的密码登录 admin 即可得到 flag

Fork