当前位置: 首页 > news >正文

Web攻击分析与检测

实验预期】

  1. 规则编写并检测出SQL注入。
  2. 规则编写并检测出上传一句话木马。
  3. 规则编写并检测出webshell与AntSword(蚁剑)连接。

【实验步骤与结果】

1.检测出SQL注入

本节中使用 snort 来捕获网络流量,当注入任何网页时,它会分析SQL注入引用,以获取任何Web服务器的数据库系统信息。当在其网络中捕获这些流量时,Snort将生成恶意流量警报,网络管理员将立即注意可疑流量,并可以对攻击IP采取有效措施。

进入【恶意PC】控制台,打开浏览器输入地址http://172.168.12.1/sqli/02.php?id=1进入sql注入页面,如下图所示。

切换至【Snort】控制台,使用嗅探器模式运行Snort,并将所有警报打印到控制台,如下图所示。

snort -i eth0 -v -d -e -x -L dump

切换【恶意PC】控制台,在浏览器输入单引号(单引号转换URL编码是%27)或双引号(双引号转换URL编码是%22)让其页面报错,判断是否存在注入点。

id='1一个单引号’将前面那个单引号闭合掉 后面那个单引号使用注释符注释掉 – +或者使用#也可以。

切换至【Snort】控制台,可以看到snort嗅探到源地址140.250.74.206,目的地址172.168.12.1,目的端口80,得知数据包的传输协议为tcp,抓到GET请求是sqli/01.php?id=1%27。

按住ctrl+z结束嗅探模式,编辑/usr/local/etc/rules/local.rules文件中创建两个规则,在终端中使用vim命令进行local.rules规则编辑,添加规则如下图所示,完成后保存并退出。

alert tcp any any -> any 80 (msg: "Error Based SQL Injection Detected %27"; content: "%27" ; sid:100000011; ) alert tcp any any -> any 80 (msg: "Error Based SQL Injection Detected %22"; content: "%22" ; sid:100000012; )

规则的动作为alert,规则协议为tcp,源地址、目的地址与端口设置为any,目的端口为80,msg为警告文字的信息,而content为GET请求中的字段关键字分别为%27与%22。

msg 规则选项向日志记录和警报引擎告知要打印的消息以及数据包转储或警报。它是一个简单的文本字符串,利用 \ 作为转义字符来表示离散的字符,否则这些字符可能会使 Snort 的规则解析器感到困惑(例如分号;字符)。
msg:"<message text>";

该 SID 关键字用来唯一标识 Snort 规则。此信息使输出插件可以轻松识别规则。此选项应与 rev 关键字一起使用。
< 100 保留以备将来使用
Snort 分发中包含 100-999,999 条规则
= 1,000,000 用于本地规则
文件 sid-msg。map 包含警报消息到 Snort 规则 id 的映射。
sid:<snort rules id>;

现在,在接口上以检测模式运行Snort,并将所有警报打印到日志目录。

snort -c /usr/local/etc/snort/snort.lua -i eth0 -s 65535 -k none -l /var/log/snort

新建终端使用tail -f 打印日志/var/log/snort/alert_fast.txt,如下图所示。

切换【恶意PC】控制台,重新在浏览器测试单引号和双引号。
切换至【Snort】控制台,可以看到snort警告日志输出Error Based SQL Injection Detected %27和Error Based SQL Injection Detected %22两条文字警告分别为SQL注入测试单引号和SQL注入测试双引号。

2.检测出一句话木马

进入【恶意PC】控制台,打开浏览器输入地址http://172.168.12.1/upload/02.php进入文件名过滤绕过漏洞页面,如下图所示。

文件名过滤绕过漏洞主要是因为通过黑名单的方式判断了文件上传的类型,而且并没有完整的过滤,导致攻击者通过上传黑名单类型之外的文件,绕过文件上传的验证。
黑名单的判断方式,很容易绕过,并且此处并没有判断大小写,可以用PhP、phP、php3、phtml等多种后缀来绕过过滤。

新建终端创建1.phP文件,使用命令touch 1.phP,使用vim命令编辑1.phP文件,写入php一句话木马<?php @eval ($_POST[v]);?>,编辑完成后保存退出,如下图所示。

单击左上角搜索【wireshark】,并单击打开该工具。

切换至【Snort】控制台,使用嗅探器模式运行Snort,并将所有警报打印到控制台,如下图所示。

snort -i eth0 -v -d -e -x -L dump

切换至【恶意PC】控制台,在【wireshark】界面中,单击【eth0】网卡接口,使用eth0监听,如下图所示。

回到上传页面,单击【Browse…】,选择上传1.phP文件,点击【submit】按钮。

点击红色按钮直至变为灰色,停止抓包,并使用过滤表达式在过滤器过滤http协议【http.request】,如下图所示。

上传文件后,发现已经上传成功了,右键图片选择【Copy image Link】。

新建浏览器标签页,粘贴至地址,访问后如下图所示。

在数据包中以POST请求发出上传一句话木马,而下一行为GET请求,为php一句话木马的地址链接,如下图所示。

同样切换至【Snort】控制台,停止运行嗅探器模式,可以看到源地址为恶意PC,目的地址为漏洞的服务器,以及数据包协议为tcp,目的端口为80,还可以看到POST请求发出上传一句话木马,如下图所示。

GET请求,为php一句话木马的地址链接,如下图所示。

编辑/usr/local/etc/rules/local.rules文件中创建规则,在终端中使用vim命令进行local.rules规则编辑,添加规则如下图所示,完成后保存并退出。

alert tcp any any -> any 80 (msg: "PHP webshell Detected"; content: "@eval" ; content: "$_POST" ; sid:100000013; )

规则的动作为alert,规则协议为tcp,源地址、目的地址与端口设置为any,目的端口为80,msg为警告文字的信息,而content为POST请求中的一句话木马字段关键字分别匹配为@eval与$_POST。

现在,在接口上以检测模式运行Snort,并将所有警报打印到日志目录。

snort -c /usr/local/etc/snort/snort.lua -i eth0 -s 65535 -k none -l /var/log/snort

新建终端使用tail -f 打印日志/var/log/snort/alert_fast.txt,如下图所示。

切换【恶意PC】控制台,重新在浏览器测试上传一句话木马。
切换至【Snort】控制台,可以看到snort警告日志输出PHP webshell Detected文字,如下图所示。

3.检测webshell管理器-AntSword(蚁剑)

蚁剑(AntSword)是一款开源的跨平台WebShell管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。

切换至【恶意PC】控制台,使用cd命令进入桌面的AntSword文件夹,并执行AntSword文件,弹出AntSword界面,如下图所示。

右击页面空白处,在快捷菜单中选择【Add】,如图所示。

将一句话木马地址复制粘贴至【Shell url】右侧的文本框中,在【Shell pwd】中输入v,其他配置都选择默认即可,此处使用的是default编码器注意此处为重点,最后单击【Add】按钮,如图所示。

添加完成后,如下图所示。

切换至【Snort】控制台,使用嗅探器模式运行Snort,并将所有警报打印到控制台,如下图所示。

snort -i eth0 -v -d -e -x -L dump

切换至【恶意PC】控制台,关闭wireshark,再次打开wireshark,在【wireshark】界面中,单击【eth0】网卡接口,使用eth0监听

双击AntSword添加的内容,即获取到webshell,如图所示。

点击红色按钮直至变为灰色,停止抓包,并使用过滤表达式在过滤器过滤http协议【http.request】,如下图所示。

右键单击该行,依次选择【Follow】→【HTTP Stream】,查看HTTP数据流,如下图所示。

可以看到此处使用的是default编码器,而密码是v,则为明文传输,如下图所示。

注:可自行尝试观察其他编码器的特征值。


同样切换至【Snort】控制台,停止运行嗅探器模式,可以看到源地址为恶意PC,目的地址为漏洞的服务器,以及数据包协议为tcp,目的端口为80,还可以看到上述的default编码器内容,如下图所示。

编辑/usr/local/etc/rules/local.rules文件中创建规则,在终端中使用vim命令进行local.rules规则编辑,添加之前,注释前面三个规则内容,添加规则,如下图所示,完成后保存并退出。

alert tcp any any -> any 80 (msg: "AntSword default encoder Detected"; content: "%40ini_set" ; sid:100000014; )

规则的动作为alert,规则协议为tcp,源地址、目的地址与端口设置为any,目的端口为80,msg为警告文字的信息,而content为default编码器重点字段关键字匹配为%40ini_set。

现在,在接口上以检测模式运行Snort,并将所有警报打印到日志目录。

snort -c /usr/local/etc/snort/snort.lua -i eth0 -s 65535 -k none -l /var/log/snort

新建终端使用tail -f 打印日志/var/log/snort/alert_fast.txt

切换【恶意PC】控制台,重新双击在AntSword添加的内容。
切换至【Snort】控制台,可以看到snort警告日志输出AntSword default encoder Detected告警文字,如下图所示。

http://www.gsyq.cn/news/1460710.html

相关文章:

  • 警惕!你正在用的“智能养老APP”有5大合规漏洞(银保监2024第8号通报关联工具清单)
  • 2026昆明高端名表回收测评|正规资质高透明回收门店推荐 - 薛定谔的梨花猫
  • 基于树莓派与PIR传感器的DIY远程入侵检测系统实战指南
  • 不止于画图:用Matlab分析普朗克定律,解读峰值波长与温度的关系(维恩位移定律)
  • STCTS框架:80bps超低比特率语音压缩技术解析
  • 本地部署Qwen3.5-35B实现Claude-Code级代码助手
  • 2026 年天津钻石回收门店口碑榜单,钻石回收哪家靠谱?攻略 - 奢侈品回收评测
  • 树莓派Android Things打造专用HMI:复用Blynk实现物联网控制终端
  • ESP32嵌入式开发调试实战:从串口打印到JTAG与逻辑分析仪
  • 如何将飘忽不定的磁力链接变成稳定的种子文件?
  • 告别RobotStudio模拟器:C#上位机如何直连真实ABB机器人进行调试与日志监控
  • 低成本DIY全息光雕:多层亚克力板与RGB光融合的立体视觉实现
  • 如何快速自定义Windows 11右键菜单:面向新手的完整解决方案
  • 3个步骤将普通鼠标打造成Mac上的生产力神器
  • Swagger2Word终极指南:如何实现API文档自动化生成与专业输出
  • Headroom-AI 上下文压缩实战指南
  • 163MusicLyrics:一站式音乐歌词获取与处理解决方案
  • 深度解析:基于YOLOv5的AI视觉瞄准系统实战指南
  • 基于Makey-Makey与Scratch的智能投篮解压装置:从硬件搭建到游戏逻辑实现
  • SciDownl终极指南:3步告别学术文献下载烦恼的完整解决方案
  • 别再为IIS安装报错头疼了!一个PowerShell脚本搞定.NET 3.5和Windows Update源切换
  • Windows 11右键菜单终极方案:3步搞定效率革命
  • StarRailCopilot:告别《崩坏:星穹铁道》重复劳动的终极自动化方案
  • 用批处理脚本实现Pong游戏:从零理解游戏编程核心原理
  • Oracle EBS R12 关联交易全维度深度解析(实现哲学 + 底层逻辑 + 五大业务流程 + 库存 / 成本 / 应收应付分录 + 标准化案例)
  • 从零搭建迷你自动驾驶车:行为克隆与嵌入式控制实战
  • 从零入门电路设计:创客必备的电子积木搭建指南
  • 终极Forza Mods AIO指南:如何免费解锁极限竞速无限可能性
  • 用555定时器制作压控振荡警笛:从原理到实践的完整指南
  • 告别SLAM跟踪丢失就卡住!用ORB-SLAM-Atlas的多地图策略,让你的机器人/无人机续航更稳