经典赛题-Web渗透测试
一、什么是渗透测试
渗透测试(penetration testing)是对计算机系统的一种授权攻击,旨在评估系统/网络的安全性,执行测试以识别漏洞及其带来的风险。一般而言,渗透测试过程分为五个阶段:包括识别目标系统、检测存在的漏洞以及每个漏洞的可利用性。渗透测试的目标是找到尽可能多的漏洞,并交付客户可以接受的通用格式报告。
二、渗透测试类型
白盒(white box):在白盒测试中,被测试者一般会提供给测试方目标系统、网络、应用等全部细节(包括账号、密码、SSH/Telnet登录信息、架构、网络结构、源代码… …等等)。
黑盒(black box):模拟攻击者场景的测试。充当真实的攻击者视角,没有目标系统的相关信息(白盒测试描述),该测试最大特点是测试者会更加注重于渗透测试的第一阶段——信息收集。收集到的信息越多,后期测试的效果就越好。
灰盒(gray box):介于黑白盒测试之间,在典型的灰盒测试中,测试员会提前得知相关的目标系统、应用程序、网络信息… …等等。这种测试通常适用于有时限要求的组织,被测者提供有效信息,测试者可以集中于风险更大的系统上,节省前期的信息收集时间。
三、渗透测试阶段
根据Harpreet Singh、Himanshu Sharma等人的专业描述,渗透过程可以分为以下各个阶段:
阶段1: 信息收集与侦查
阶段2:枚举
阶段3:漏洞评估与分析
阶段4:漏洞利用(包括再渗透)
阶段5:报告
1. 信息收集与侦查
这是黑盒测试最关键的阶段,渗透测试人员将尝试识别相关系统或应用程序,并尽可能多地收集信息。常用的Web渗透测试工具:
类型 工具
端口扫描 Amap 、Nmap
DNS/子域名识别 dnsenum、dnsmap、dnswalk、Fierce、dnscan、Sublist3r
技术识别 BlindElephant、Wappalyzer、WhatWeb
内容管理系统识别 WPScan、Joomscan、CMScan、Drupscan
ps:后期会出一期详细工具使用教程,敬请期待。
2. 枚举
测试人员将扫描在上一阶段中识别的每个应用、系统或网络,以查找不同的攻击面。在该阶段中,重点枚举出web应用的文件、目录、网络设备、端口以及服务等等,进而帮助测试人员识别可能的攻击切入点(攻击媒介)。这些切入点通常是测试人员获取目标系统的访问权限、入侵系统路径的重要方法。常有的媒介有:钓鱼邮件、尚未修补的漏洞等等。手工枚举过程繁琐,所以常借助一些工具来完成。
类型 工具名称
文件/目录 Dirsearch、dirb、dirbuster、Metasploit框架、BurpSuite、gobuster
HTTP协议 Nmap、BurpSuite、Metasploit框架(MSF)、wfuzz
ps:后期会出一期详细工具使用教程,敬请期待。
3. 漏洞评估与分析
在确定攻击媒介之后,接下来就是漏洞扫描,对web漏洞进行分析与评估,常用的扫描分析工具有:
类型 名称
系统与网络 Nexpose、Nessus、OpenVAS
web应用 AppSpider、Nikto、Acunetix、BurpSuite、Nessus
ps:后期会出一期详细工具使用教程,敬请期待。
4. 漏洞利用
该阶段主要是为了证明前一步骤发现的漏洞是否能被真正利用,通常可以借助Metasploit Framework和Canvas自动进行漏洞利用。
5. 报告
该步骤将汇总在目标中发现的每个漏洞。进一步地,根据通用漏洞评分系统CVSS定义的严重性级别列出。(CVSS是一个用于漏洞评估的开放的标准)
第一步,打开网络拓扑,启动实验虚拟机,分别查看虚拟机IP地址:
Kali Linux

Linux 
1.通过渗透机Kali Linux对靶机Linux进行Web渗透测试(使用工具w3af的对目标Web服务器进行审计),在w3af的命令行界面下,使用命令列出所有用于审计的插件,将该操作使用的命令作为Flag值提交;
进入Kali Linux命令控制台中使用命令w3af_console进入w3af命令行模式,通过输入命令“plugins”对插件进行配置,再使用命令list audit即可列出所有审计模块

Flag:list audit
2.通过渗透机Kali Linux对靶机Linux进行Web渗透测试,使用工具w3af对Web服务器进行审计,在w3af的命令行界面下加载爬行模块来搜集phpinfo信息及蜘蛛爬行数据,将该操作使用的命令作为Flag值提交;
使用命令crawl phpinfo web_spider加载爬行模块
![]()
Flag:crawl phpinfo web_spider
3.通过渗透机Kali Linux对靶机Linux进行Web渗透测试,使用工具w3af对Web服务器进行审计,在w3af的命令行界面下启用审计插件:sql盲注、命令注入及sql注入来测试服务器网站的安全性,并将该操作使用的命令作为Flag值提交;
使用命令audit blind_sqli os_commanding sqli调用sql盲注、命令注入及sql注入模块
![]()
Flag:audit blind_sqli os_commanding sqli
4.通过渗透机Kali Linux对靶机Linux进行Web渗透测试,使用工具w3af对Web服务器进行审计,在w3af的命令行界面下设置目标服务器地址启动扫描,将该操作使用命令中固定不变的字符串作为Flag值提交;
使用命令“back”回到初始菜单,然后使用命令target进入目标ip配置界面,设置目标ip

Flag:set target
5.在渗透机Kali Linux中对审计结果进行查看,将审计结果中含有漏洞的URL地址作为Flag值(提交答案时IP用192.168.80.1代替,例如http://192.168.80.1/login.php)提交;
返回w3af控制台初始菜单,使用命令start开始检测

根据回显结果,发现http://172.16.1.200/checklogin.php页面存在SQL 注入漏洞
Flag:http://192.168.80.1/checklogin.php
6.在第5题的基础上,进入exploit模式,加载sqlmap模块对网站进行SQL注入测试,将载入sqlmap模块对网站进行SQL注入测试需要使用的命令作为Flag值提交;
使用命令exploit进入利用模块,然后调用sqlmap模块对网站注入

Flag:exploit sqlmap
7.通过渗透机Kali Linux对靶机Linux进行SQL注入测试,将数据库最后一个库的库名作为Flag值提交;
根据回显结果,使用命令“interace 0”激活shell会话
输入命令dbs导出目标靶机数据库中的所有库名

Flag:mysql
8.通过渗透机Kali Linux对靶机Linux进行SQL注入测试,将数据库表单中root用户的密码作为Flag值提交。
输入命令dump导出目标靶机数据库中的表单内容

Flag:v5a4r8e2w5u9
本文介绍了渗透测试的基本概念、类型以及主要阶段,包括信息收集、枚举、漏洞评估与分析、漏洞利用和报告。详细阐述了白盒、黑盒和灰盒测试的区别,并列举了常用工具如Nmap、w3af、sqlmap等。此外,通过一系列具体操作,如使用w3af进行审计、漏洞利用和SQL注入测试,展示了Web渗透测试的过程。
4053

被折叠的 条评论
为什么被折叠?



