aibas / index.html
capta1n's picture
请你根据我的给你的需求文档设计一个AI产品:AI Hacker 会话管理 ● 新建会话 ○ 会话名称 ○ 会话初始内容为空 ● 会话状态 ○ 已完成:代表会话中最新一次相应完成 ○ 进行中:代表会话中最新一次响应仍在进行中 ● 搜索会话:搜索会话名称 ● 历史会话管理:历史会话内容 输入方式(多轮对话) 文本:输入文本 + 发送 prompt剧本引用:点击之后选择prompt剧本,执行固定的调用链路 Chat对话 ● 输入:文本格式(多轮对话) ○ 编辑:编辑文本后重新发送(删除原输入和输出后重新请求) ○ 复制:复制prompt内容 ● 输出 ○ 最终输出:最终输出内容 ○ 功能: ■ 重新生成:触发一次重新请求 ● 对话状态 ○ 未开始:模型未开始工作时,允许输入内容 ○ 工作中:模型正在响应输入时,输入框无法输入内容 ● 展示模块 ○ 执行日志:用于check每个步骤的执行是否正确(输入&输出),一个output会由多个任务节点组成 ■ 工具名称:用的工具/MCP名称/执行的任务,例剧本获取、sa命令下发 ■ 状态:待开始、进行中、已完成,错误 ■ 任务结果:每个MCP工具的调用结果,比如获取到RASP巡检的反序列化剧本 ○ 真机演示:展示靶场环境模拟操作的核心步骤截图(多图片) ○ markdown展示框:最后一步对报告进行总结以markdown的格式进行总结展示出来 prompt剧本库 创建剧本 ● 剧本名称 ● 剧本内容:编辑框,展示prompt文本内容 ● 执行执行链路:展示执行的function call链路图,并且可以修改 ● 操作: ○ 保存:保存剧本内容和function call ○ 取消: 列表 ● 名称: ● 内容: ● 创建人: ● 创建时间: ● 更新时间: ● 操作:详情,点击进入查看prompt剧本 - Initial Deployment
e70c5d9 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI Hacker - Advanced AI Security Assistant</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* Custom CSS for elements that can't be easily done with Tailwind */
.chat-container {
height: calc(100vh - 200px);
}
.sidebar {
height: calc(100vh - 80px);
}
.markdown-output {
background-color: #f8f9fa;
border-radius: 0.5rem;
padding: 1rem;
font-family: 'Courier New', monospace;
white-space: pre-wrap;
}
.execution-log-item:hover {
background-color: rgba(59, 130, 246, 0.1);
}
.slide-in {
animation: slideIn 0.3s ease-out forwards;
}
@keyframes slideIn {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.pulse {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
opacity: 1;
}
50% {
opacity: 0.5;
}
100% {
opacity: 1;
}
}
</style>
</head>
<body class="bg-gray-100 font-sans">
<!-- Main Container -->
<div class="flex flex-col h-screen">
<!-- Header -->
<header class="bg-indigo-900 text-white p-4 shadow-md">
<div class="container mx-auto flex justify-between items-center">
<div class="flex items-center space-x-3">
<i class="fas fa-user-secret text-2xl"></i>
<h1 class="text-2xl font-bold">AI Hacker</h1>
</div>
<div class="flex items-center space-x-4">
<button class="bg-indigo-700 hover:bg-indigo-600 px-4 py-2 rounded-lg flex items-center">
<i class="fas fa-user mr-2"></i> Account
</button>
<button class="bg-indigo-700 hover:bg-indigo-600 px-4 py-2 rounded-lg flex items-center">
<i class="fas fa-cog mr-2"></i> Settings
</button>
</div>
</div>
</header>
<!-- Main Content -->
<div class="flex flex-1 overflow-hidden">
<!-- Sidebar -->
<div class="sidebar w-64 bg-white border-r border-gray-200 p-4 overflow-y-auto">
<div class="mb-6">
<h2 class="text-lg font-semibold mb-2 text-gray-700">Sessions</h2>
<div class="flex space-x-2 mb-4">
<button id="newSessionBtn" class="bg-indigo-600 hover:bg-indigo-700 text-white px-3 py-1 rounded-lg text-sm flex items-center">
<i class="fas fa-plus mr-1"></i> New
</button>
<div class="relative flex-1">
<input type="text" placeholder="Search sessions..." class="w-full border border-gray-300 rounded-lg px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500">
<i class="fas fa-search absolute right-3 top-2 text-gray-400 text-sm"></i>
</div>
</div>
<div class="space-y-2">
<div class="session-item p-2 rounded-lg cursor-pointer hover:bg-gray-100 border-l-4 border-indigo-500 bg-gray-50">
<div class="flex justify-between items-center">
<span class="font-medium text-sm truncate">Security Audit Report</span>
<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">Completed</span>
</div>
<div class="text-xs text-gray-500 mt-1">Today, 10:30 AM</div>
</div>
<div class="session-item p-2 rounded-lg cursor-pointer hover:bg-gray-100 border-l-4 border-yellow-500">
<div class="flex justify-between items-center">
<span class="font-medium text-sm truncate">Vulnerability Scan</span>
<span class="text-xs bg-yellow-100 text-yellow-800 px-2 py-1 rounded-full">In Progress</span>
</div>
<div class="text-xs text-gray-500 mt-1">Today, 09:15 AM</div>
</div>
<div class="session-item p-2 rounded-lg cursor-pointer hover:bg-gray-100">
<div class="flex justify-between items-center">
<span class="font-medium text-sm truncate">Penetration Testing</span>
<span class="text-xs bg-gray-100 text-gray-800 px-2 py-1 rounded-full">Not Started</span>
</div>
<div class="text-xs text-gray-500 mt-1">Yesterday, 3:45 PM</div>
</div>
<div class="session-item p-2 rounded-lg cursor-pointer hover:bg-gray-100">
<div class="flex justify-between items-center">
<span class="font-medium text-sm truncate">Network Analysis</span>
<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">Completed</span>
</div>
<div class="text-xs text-gray-500 mt-1">Yesterday, 11:20 AM</div>
</div>
</div>
</div>
<div class="mt-6">
<h2 class="text-lg font-semibold mb-2 text-gray-700">Prompt Scripts</h2>
<button id="newScriptBtn" class="bg-indigo-600 hover:bg-indigo-700 text-white px-3 py-1 rounded-lg text-sm flex items-center mb-3">
<i class="fas fa-plus mr-1"></i> New Script
</button>
<div class="space-y-2">
<div class="script-item p-2 rounded-lg cursor-pointer hover:bg-gray-100">
<div class="font-medium text-sm">Standard Security Audit</div>
<div class="text-xs text-gray-500 mt-1">Created by: admin</div>
</div>
<div class="script-item p-2 rounded-lg cursor-pointer hover:bg-gray-100">
<div class="font-medium text-sm">OWASP Top 10 Scan</div>
<div class="text-xs text-gray-500 mt-1">Created by: security</div>
</div>
<div class="script-item p-2 rounded-lg cursor-pointer hover:bg-gray-100">
<div class="font-medium text-sm">RASP Inspection</div>
<div class="text-xs text-gray-500 mt-1">Updated: Today</div>
</div>
</div>
</div>
</div>
<!-- Main Chat Area -->
<div class="flex-1 flex flex-col overflow-hidden">
<!-- Chat Header -->
<div class="bg-white border-b border-gray-200 p-4">
<div class="flex justify-between items-center">
<div>
<h2 class="text-xl font-semibold">Security Audit Report</h2>
<div class="flex items-center mt-1">
<span class="text-sm text-gray-600 mr-3">Status: <span class="font-medium text-green-600">Completed</span></span>
<span class="text-sm text-gray-600">Created: Today, 10:30 AM</span>
</div>
</div>
<div class="flex space-x-2">
<button class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-lg text-sm flex items-center">
<i class="fas fa-history mr-1"></i> History
</button>
<button class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-lg text-sm flex items-center">
<i class="fas fa-share-alt mr-1"></i> Share
</button>
<button class="bg-gray-100 hover:bg-gray-200 px-3 py-1 rounded-lg text-sm flex items-center">
<i class="fas fa-trash-alt mr-1"></i> Delete
</button>
</div>
</div>
</div>
<!-- Chat Content -->
<div class="flex-1 overflow-hidden flex">
<!-- Chat Messages -->
<div class="flex-1 overflow-y-auto p-4 bg-gray-50 chat-container">
<div class="space-y-4">
<!-- AI Message -->
<div class="flex items-start space-x-3">
<div class="bg-indigo-100 p-2 rounded-full">
<i class="fas fa-robot text-indigo-600"></i>
</div>
<div class="flex-1 bg-white p-4 rounded-lg shadow-sm border border-gray-200">
<div class="font-medium text-indigo-600 mb-2">AI Hacker</div>
<div class="text-gray-800">
I've completed the security audit for your web application. Here's a summary of the findings:
<ul class="list-disc pl-5 mt-2 space-y-1">
<li>3 Critical vulnerabilities found</li>
<li>7 High severity issues detected</li>
<li>12 Medium risk items identified</li>
</ul>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-xs bg-gray-100 hover:bg-gray-200 px-2 py-1 rounded">
<i class="fas fa-redo mr-1"></i> Regenerate
</button>
<button class="text-xs bg-gray-100 hover:bg-gray-200 px-2 py-1 rounded">
<i class="fas fa-copy mr-1"></i> Copy
</button>
</div>
</div>
</div>
<!-- User Message -->
<div class="flex items-start space-x-3 justify-end">
<div class="flex-1 bg-indigo-100 p-4 rounded-lg shadow-sm max-w-3xl">
<div class="font-medium text-indigo-800 mb-2">You</div>
<div class="text-gray-800">
Can you provide more details about the critical vulnerabilities?
</div>
<div class="mt-3 flex space-x-2 justify-end">
<button class="text-xs bg-white hover:bg-gray-100 px-2 py-1 rounded">
<i class="fas fa-edit mr-1"></i> Edit
</button>
<button class="text-xs bg-white hover:bg-gray-100 px-2 py-1 rounded">
<i class="fas fa-copy mr-1"></i> Copy
</button>
</div>
</div>
<div class="bg-gray-200 p-2 rounded-full">
<i class="fas fa-user text-gray-600"></i>
</div>
</div>
<!-- AI Message with Tabs -->
<div class="flex items-start space-x-3">
<div class="bg-indigo-100 p-2 rounded-full">
<i class="fas fa-robot text-indigo-600"></i>
</div>
<div class="flex-1 bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden">
<div class="p-4 border-b border-gray-200">
<div class="font-medium text-indigo-600 mb-2">AI Hacker</div>
<div class="text-gray-800">
Here are the details of the critical vulnerabilities I found:
</div>
</div>
<!-- Tabs -->
<div class="border-b border-gray-200">
<div class="flex">
<button class="tab-btn active px-4 py-2 text-sm font-medium text-indigo-600 border-b-2 border-indigo-600">Execution Log</button>
<button class="tab-btn px-4 py-2 text-sm font-medium text-gray-500 hover:text-gray-700">Live Demo</button>
<button class="tab-btn px-4 py-2 text-sm font-medium text-gray-500 hover:text-gray-700">Report</button>
</div>
</div>
<!-- Tab Content -->
<div class="tab-content active p-4">
<div class="space-y-3">
<div class="execution-log-item p-3 rounded-lg border border-gray-200 cursor-pointer">
<div class="flex justify-between items-center">
<div class="font-medium">Script Retrieval</div>
<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">Completed</span>
</div>
<div class="text-xs text-gray-500 mt-1">Retrieved OWASP Top 10 testing script</div>
</div>
<div class="execution-log-item p-3 rounded-lg border border-gray-200 cursor-pointer">
<div class="flex justify-between items-center">
<div class="font-medium">Vulnerability Scan</div>
<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">Completed</span>
</div>
<div class="text-xs text-gray-500 mt-1">Scanned for SQL injection vulnerabilities</div>
</div>
<div class="execution-log-item p-3 rounded-lg border border-gray-200 cursor-pointer">
<div class="flex justify-between items-center">
<div class="font-medium">XSS Detection</div>
<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">Completed</span>
</div>
<div class="text-xs text-gray-500 mt-1">Found 2 potential XSS vulnerabilities</div>
</div>
</div>
</div>
<div class="tab-content hidden p-4">
<div class="grid grid-cols-2 gap-4">
<div class="border rounded-lg overflow-hidden">
<img src="https://via.placeholder.com/300x200?text=Step+1" alt="Demo Step 1" class="w-full">
<div class="p-2 bg-gray-50 text-sm">Authentication Bypass Attempt</div>
</div>
<div class="border rounded-lg overflow-hidden">
<img src="https://via.placeholder.com/300x200?text=Step+2" alt="Demo Step 2" class="w-full">
<div class="p-2 bg-gray-50 text-sm">SQL Injection Detection</div>
</div>
</div>
</div>
<div class="tab-content hidden p-4">
<div class="markdown-output">
# Security Audit Report
## Critical Vulnerabilities
1. **SQL Injection**
- Location: `/user/profile` endpoint
- Risk: High
- Recommendation: Use parameterized queries
2. **Authentication Bypass**
- Location: Admin panel
- Risk: Critical
- Recommendation: Implement proper session management
3. **Sensitive Data Exposure**
- Location: API responses
- Risk: High
- Recommendation: Encrypt sensitive data
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Right Panel (Script Details) -->
<div id="rightPanel" class="w-80 bg-white border-l border-gray-200 p-4 overflow-y-auto hidden">
<div class="flex justify-between items-center mb-4">
<h3 class="font-semibold text-lg">Script Details</h3>
<button id="closePanelBtn" class="text-gray-500 hover:text-gray-700">
<i class="fas fa-times"></i>
</button>
</div>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Script Name</label>
<input type="text" value="OWASP Top 10 Scan" class="w-full border border-gray-300 rounded-lg px-3 py-2 focus:outline-none focus:ring-1 focus:ring-indigo-500">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Script Content</label>
<textarea class="w-full border border-gray-300 rounded-lg px-3 py-2 h-40 focus:outline-none focus:ring-1 focus:ring-indigo-500">Perform comprehensive scan for OWASP Top 10 vulnerabilities including:
- SQL Injection
- Cross-Site Scripting (XSS)
- Broken Authentication
- Sensitive Data Exposure
- XML External Entities (XXE)
- Broken Access Control
- Security Misconfigurations
- Cross-Site Request Forgery (CSRF)
- Using Components with Known Vulnerabilities
- Insufficient Logging & Monitoring</textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Execution Flow</label>
<div class="border border-gray-200 rounded-lg p-3">
<div class="flex items-center mb-2">
<div class="w-6 h-6 rounded-full bg-indigo-100 text-indigo-600 flex items-center justify-center mr-2">1</div>
<div>Script Retrieval</div>
</div>
<div class="flex items-center mb-2 ml-6">
<div class="w-6 h-6 rounded-full bg-indigo-100 text-indigo-600 flex items-center justify-center mr-2">2</div>
<div>Vulnerability Scan</div>
</div>
<div class="flex items-center mb-2 ml-6">
<div class="w-6 h-6 rounded-full bg-indigo-100 text-indigo-600 flex items-center justify-center mr-2">3</div>
<div>Report Generation</div>
</div>
</div>
</div>
<div class="flex space-x-2">
<button class="flex-1 bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-lg">
Save Changes
</button>
<button class="flex-1 bg-gray-200 hover:bg-gray-300 px-4 py-2 rounded-lg">
Cancel
</button>
</div>
</div>
</div>
</div>
<!-- Input Area -->
<div class="bg-white border-t border-gray-200 p-4">
<div class="flex items-end space-x-2">
<div class="flex-1 relative">
<textarea id="chatInput" placeholder="Type your message here..." class="w-full border border-gray-300 rounded-lg px-4 py-3 pr-12 focus:outline-none focus:ring-1 focus:ring-indigo-500 resize-none" rows="1"></textarea>
<div class="absolute right-3 bottom-3 flex space-x-1">
<button class="text-gray-500 hover:text-indigo-600">
<i class="fas fa-paperclip"></i>
</button>
<button id="scriptBtn" class="text-gray-500 hover:text-indigo-600">
<i class="fas fa-scroll"></i>
</button>
</div>
</div>
<button id="sendBtn" class="bg-indigo-600 hover:bg-indigo-700 text-white p-3 rounded-lg">
<i class="fas fa-paper-plane"></i>
</button>
</div>
<div class="mt-2 text-xs text-gray-500">
<span id="statusIndicator" class="hidden"><span class="pulse">AI is thinking</span> <i class="fas fa-circle-notch fa-spin ml-1"></i></span>
</div>
</div>
</div>
</div>
</div>
<!-- New Session Modal -->
<div id="newSessionModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
<div class="bg-white rounded-lg p-6 w-full max-w-md">
<div class="flex justify-between items-center mb-4">
<h3 class="text-lg font-semibold">New Session</h3>
<button id="closeSessionModal" class="text-gray-500 hover:text-gray-700">
<i class="fas fa-times"></i>
</button>
</div>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Session Name</label>
<input type="text" placeholder="Enter session name" class="w-full border border-gray-300 rounded-lg px-3 py-2 focus:outline-none focus:ring-1 focus:ring-indigo-500">
</div>
<div class="flex space-x-2">
<button class="flex-1 bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-lg">
Create Session
</button>
<button id="cancelSessionBtn" class="flex-1 bg-gray-200 hover:bg-gray-300 px-4 py-2 rounded-lg">
Cancel
</button>
</div>
</div>
</div>
</div>
<script>
// Tab functionality
document.querySelectorAll('.tab-btn').forEach(btn => {
btn.addEventListener('click', () => {
// Remove active class from all buttons and content
document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
document.querySelectorAll('.tab-content').forEach(c => c.classList.add('hidden'));
// Add active class to clicked button
btn.classList.add('active');
// Show corresponding content
const index = Array.from(document.querySelectorAll('.tab-btn')).indexOf(btn);
document.querySelectorAll('.tab-content')[index].classList.remove('hidden');
});
});
// Right panel toggle
document.getElementById('scriptBtn').addEventListener('click', () => {
document.getElementById('rightPanel').classList.remove('hidden');
document.getElementById('rightPanel').classList.add('slide-in');
});
document.getElementById('closePanelBtn').addEventListener('click', () => {
document.getElementById('rightPanel').classList.add('hidden');
});
// New session modal
document.getElementById('newSessionBtn').addEventListener('click', () => {
document.getElementById('newSessionModal').classList.remove('hidden');
});
document.getElementById('closeSessionModal').addEventListener('click', () => {
document.getElementById('newSessionModal').classList.add('hidden');
});
document.getElementById('cancelSessionBtn').addEventListener('click', () => {
document.getElementById('newSessionModal').classList.add('hidden');
});
// New script button
document.getElementById('newScriptBtn').addEventListener('click', () => {
document.getElementById('rightPanel').classList.remove('hidden');
document.getElementById('rightPanel').classList.add('slide-in');
});
// Chat input auto-resize
const chatInput = document.getElementById('chatInput');
chatInput.addEventListener('input', () => {
chatInput.style.height = 'auto';
chatInput.style.height = (chatInput.scrollHeight) + 'px';
});
// Simulate AI response
document.getElementById('sendBtn').addEventListener('click', () => {
if (chatInput.value.trim() === '') return;
// Show status indicator
document.getElementById('statusIndicator').classList.remove('hidden');
// Simulate AI thinking
setTimeout(() => {
document.getElementById('statusIndicator').classList.add('hidden');
// Here you would normally add the AI response to the chat
// For demo purposes, we'll just clear the input
chatInput.value = '';
chatInput.style.height = 'auto';
}, 2000);
});
// Session item click
document.querySelectorAll('.session-item').forEach(item => {
item.addEventListener('click', () => {
document.querySelectorAll('.session-item').forEach(i => i.classList.remove('bg-gray-50'));
item.classList.add('bg-gray-50');
// Here you would load the session content
});
});
// Script item click
document.querySelectorAll('.script-item').forEach(item => {
item.addEventListener('click', () => {
document.querySelectorAll('.script-item').forEach(i => i.classList.remove('bg-gray-50'));
item.classList.add('bg-gray-50');
document.getElementById('rightPanel').classList.remove('hidden');
document.getElementById('rightPanel').classList.add('slide-in');
// Here you would load the script content
});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=capta1n/aibas" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>