28
9月
buuctf NewstarCTF 2023 公开赛道-web-R.C.E
本篇博客详细地介绍了如何解决web-R.C.E这个CTF(Capture The Flag)问题。首先,博客展示了问题的设定,并且没有任何提示。然后,博客展示了一段php代码,这段代码中含有两个POST请求,一个是'password',另一个是'e_v.a.l'。通过代码审计,作者发现了'password'参数无法绕过,只能进行md5碰撞。然后,作者尝试传入一个参数看看会发生什么,结果发现并没有明显的变化。在这一步,作者意识到了问题可能出在isset环节,e_v.a.l参数可能没有传上去。经过一番搜索,作者发现php处理带有非法字符参数名时,.和+这种非法字符会被转化为_,而'['非法字符会被转化为'_'后会使得后续的非法字符得到保留。因此,应该这样传参,最后,作者得到了回显,接下来就是简单的绕过了。作者使用了&e[v.a.l=eval($_POST['cmd']);&cmd=system('cat /flag');这个参数,最终成功得到了flag。这篇博客的解题思路清晰,对于学习CTF的读者来说,这是一篇很好的学习资料。你能否根据这篇博客的内容,自己解决一个类似的问题呢?--GPT 4