mHx*_*ave -2 python eval code-injection
考虑这段代码:
from re import sub
input = request.POST['input']
sub_pattern = {'1':"sub('pattern1','txt1',input)",
'2':"sub('pattern2','txt2',input)",
}
eval(sub_pattern['1'])
Run Code Online (Sandbox Code Playgroud)
这段代码中是否有代码注入?你可以为这段代码注入提供POC吗?
由于传递给的字符串eval是常量,没有任何内容替换它们,因此这段代码是安全的.然而,这也是对最佳实践的毫无意义的偏离:根本没有正当理由在eval这里使用.
假设您希望能够执行除以外的操作re.sub(),一种方法是使用lambdas:
from re import sub
input = request.POST['input']
sub_pattern = {'1': lambda input: sub('pattern1','txt1',input),
'2': lambda input: sub('pattern2','txt2',input)}
sub_pattern['1'](input)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |