当前位置: 首页 > 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.jsqmd.com/news/949184/

相关文章:

  • Raylib终极指南:快速掌握跨平台游戏开发核心功能
  • 警惕!你正在用的“智能养老APP”有5大合规漏洞(银保监2024第8号通报关联工具清单)
  • 基于Web Serial API与BLE 5.0的浏览器端实时数据可视化方案
  • Kubernetes 服务发现与负载均衡:深入设计 K8s Service 网络拓扑与流量隔离策略
  • 2026昆明高端名表回收测评|正规资质高透明回收门店推荐 - 薛定谔的梨花猫
  • HS2-HF Patch:200+插件一站式解决Honey Select 2兼容性与功能扩展难题
  • 基于REFIT数据的家庭用电负荷TCN预测工程:支持6–384步多窗口训练与完整结果可视化
  • ROS参数服务器实战:从命令行到C++/Python代码,手把手教你玩转param配置
  • 2023B卷,判断字符串子序列
  • 用Matlab复现普朗克黑体辐射定律:从公式到可视化曲线的保姆级教程
  • 基于树莓派与PIR传感器的DIY远程入侵检测系统实战指南
  • 树莓派+Dakboard:低成本打造家庭智能信息显示系统
  • 不止于画图:用Matlab分析普朗克定律,解读峰值波长与温度的关系(维恩位移定律)
  • 2026年毛绒玩具婴儿级面料哪个好:五家优选品牌解析 - 科技焦点
  • AI写作辅助平台的实战手册:如何界定“合理使用”与学术不端?
  • 基于树莓派与Traccar搭建私有GPS追踪服务器:从原理到实践
  • Linux下轻量级RTCM3流实时转RINEX的C语言命令行工具(含编译说明与示例)
  • 2026 年临沂市家政服务,家电维修怎么选?鸿通家政服务部靠谱挑选指南 - GrowthUME
  • 基于OpenCV级联分类器的中国象棋红黑棋子识别实践包(含样本、训练代码、模型与实拍图测试结果)
  • STCTS框架:80bps超低比特率语音压缩技术解析
  • 为什么marked.js是前端开发者必备的Markdown解析库?
  • Java微服务外卖系统源码:含用户、菜单、订单、配置中心等完整模块
  • 本地部署Qwen3.5-35B实现Claude-Code级代码助手
  • 2026 年广州黄金出手优选参考:5 家门店真实评估与交易风险提示 - 奢侈品回收评测
  • 2026 年天津钻石回收门店口碑榜单,钻石回收哪家靠谱?攻略 - 奢侈品回收评测
  • 树莓派Android Things打造专用HMI:复用Blynk实现物联网控制终端
  • SpringBoot2.3+Redis集群:手把手教你配置Lettuce自动刷新,告别节点宕机服务中断
  • Windows 11右键菜单终极自定义指南:快速打造个性化高效工作流
  • 【花雕学编程】Arduino BLDC 之多移动机器人编队——舞台灯光秀机器人阵列编队
  • C++项目实战:用#pragma pack(1)解决0xC0000005访问冲突,附memcpy_s避坑指南