sctf2019 flag shop

2019-10-21  本文已影响0人  jun123123

照着wp做

1.png
进入页面,看到uid,flag的价格和现有的JinKela(货币),点work会增加。
进入robots.txt,看到存在文件filebak
2.png
进入该文件发现源码,但是是ruby,8会
看wp,存在erb模板注入。
模板注入和sql注入差不多,都是将提交的字符串当成可执行代码执行了(感觉很多注入都是这也,比如xss)
大概看一下后端代码的逻辑,uid的JinKela被写在了cookie里,并且cookie签名用的是jwt。可能是要伪造cookie了。
首先在https://jwt.io/#debugger-io里面解密一下cookie
3.png
确实写在了cookie里,但是伪造cookie需要知道后端签名的密钥,这里我们并不知道密钥,无法伪造cookie,继续去源码(wp)看看。
4.png
这里存在erb模板注入,存在字数限制。但是源码中可以发现在前面出现了一个对密钥的正则
5.png
于是可以用ruby的预定义字符$对匹配的字符串进行读取,可读取到secret
构造payload:
/work?SECRET=&name=%3c%25%3d%24%27%25%3e&do=%3c%25%3d%24%27%25%3e%20is%20working
6.png

成功拿到secret
伪造cookie


7.png

回到页面,buy flag,抓包将伪造的cookie写进去,在返回的包里拿到新的cookie,解密得到flag


8.png 9.png
上一篇 下一篇

猜你喜欢

热点阅读