Skip to content

信息泄露 ​

敏感文件 ​

  1. 备份文件泄露

漏洞影响:可能导致网站敏感信息泄露,被利用来进一步攻击等危害

URI中"1.zip"触发规则告警,访问URI地址,下载备份文件,分析备份文件,判断漏洞影响

修复建议:删除该网站目录下的备份文件

  1. 数据库配置文件泄露
  2. phpinfo泄露
  3. .svn源码泄露
  4. .git源码泄露
  5. swp源码泄露
  6. 脚本源码泄露
  7. 版本信息泄露
  8. phpinfo文件泄露

目录遍历 ​

  1. 目录穿越
  2. 目录列表

自动目录列表 ​

漏洞影响:任何人可以访问该路下的文件,可能造成敏感信息泄露

响应体中"Directory"触发规则告警,访问URL地址下目录文件,分析目录信息,判断漏洞影响。

修复建议:修改配置文件,禁止目录列表列出

目录穿越 ​

漏洞影响:利用此漏洞,黑客可以发现一些敏感信息,包括读取服务器敏感文件等

请求头../../触发规则告警

修复建议:禁止目录遍历,对输入参数过滤../等字符.

.svn源码泄露 ​

漏洞影响: 攻击利用该漏洞,可以获取到服务器源码,svn服务器账号密码等信息

URL"/.svn/entries"与响应体svn信息触发规则告警

修复建议: 禁止或删除.svn文件浏览

弱口令 ​

密码简单,不满足复杂度要求;攻击者通过穷举法尝试web登录的账号名与密码

密码复杂度: 口令长度不小于8位,且为数字,字母,字符混合组合,用户名和口令不得相同,且无明显规律

邮件弱口令 ​

  1. IMAP弱口令
  2. POP3弱口令
  3. SMTP弱口令

数据库弱口令 ​

  1. redis数据库弱口令
  2. mysql数据库弱口令
  3. sqlserver弱口令

中间件弱口令 ​

  1. tomcat弱口令

漏洞危害:通过弱口令进入中间件后台可直接部署war包getshell

中间件例如tomcat与basic认证弱口令信息在请求头Authorization字段中,可用base64进行解码

  1. weblogic弱口令
  2. jobss管理后台弱口令

Basic认证弱口令 ​

web弱口令 ​

漏洞影响:弱口令容易被人猜解,造成个人信息等数据丢失严重者可导致网站被攻陷

请求体中"password=123456"弱口令,服务器返回"success"

暴力破解 ​

暴力破解称为穷举法,是一种对密码破译的方法.在一些领域,为了提高密码的破译效率而专门为其制造的超级计算机.

攻击特征: 攻击者在短时间内通过穷举账号名与密码的方法尝试web登录,看到暴力猜解的告警要结合流量日志分析溯源判断是否爆破成功

HTTP登录爆破,协议类型web日志

sip:("攻击IP")AND dip:("受攻击系统IP")AND data:("登录请求账号字段")

FTP、SMTP、Telnet、SSH、mysql数据库等登录爆破,协议登录动作

sip:("攻击IP")AND dip:("受攻击系统IP")AND proto:("爆破协议")

过滤爆破登录成功

sip:("攻击IP")AND dip:("受攻击系统IP")AND proto:("爆破协议") AND NOT(info:fail* OR info:530)

XSS ​

恶意攻击者往web页面里插入恶意代码,当用户浏览该页时,嵌入其中web里的js代码会执行,从而达到恶意攻击用户的特殊目的,利用xss可盗取cookie,结合windows10可导致Badcon漏洞使系统蓝屏

反射型 ​

经过后端服务器,不经过数据库

攻击特征:请求头"<script>alert(xss)与响应体 <script>alert(xss)</script>"

可将响应代码复制下来进行打开,看是否存在被注入

存储型 ​

存储在服务器中

DOM型 ​

经过服务器

SQL注入 ​

因程序设计不良,被数据库服务器误认为正常SQL指令而运行

注入方式 ​

  1. 数字型
  2. 字符型
  3. 布尔盲注
  4. 时间盲注
  5. 报错注入
  6. 堆叠注入

SQL注入分析 ​

  1. 无回显

    1. 时间盲注

https://r2.kwxos.pp.ua/Qexo/24/5/9/2b49a4d8264b4120662054dc16e1f88e.png 3. 布尔盲注 根据响应体长度进行判断是否成功,大多布尔盲注攻击时返回错误页面的,少数是返回正常页面,利用错误页面长度与正常页面长度不一致的特征进行分析。上面数据包查看数据库用户名对应ascii码值,如果此ascii码值等于真正对应用户名母ascii值则返回正常页面,如果不等于则返回错误页面 4. 其他 3. 有回显、

  1. 报错注入
  2. union联合查询对SQL注入 成功payload进行分析,如果服务器返回相应数据库查询信息,则判断攻击成功 发现成功爆出当前数据库用户:root@localhost,SQL注入攻击成功
  3. 堆叠注入
  4. 其他

文件上传 ​

检测方式 ​

  1. 客户端JavaScript检测(通常检查文件扩展名)

通过bp进行抓包,修改扩展名,绕过前端js的文件校验

  1. 服务端MIME类型检测(检测content-Type内容)

通过bp进行抓包,修改为何时的内容,绕过服务端的文件校验

  1. 服务端文件扩展名检测(检测跟文件extension相关的内容)
    1. 黑名单,文件大小写绕过 用像Asp,PHP之类的文件名绕过黑名单检测
    2. 白名单,通过利用解析漏洞或使用文件名进行检测绕过
    3. 0X00截断,通过0x00截断将文件名进行截断处理
    4. 白名单列表绕过,黑名单里没有的名单,例如cer等
    5. .htaccess文件,修改该文件配置内容可设定指定目录下的文件解析成指定格式

通过大小写,等方法绕过

  1. 服务端文件内容检测(检测内容是否合法或含有恶意代码)
  2. web应用程序解析
    1. Apache解析漏洞
    2. IIS解析漏洞
    3. Nginx解析漏洞

常见上传点 ​

  1. 上传头像
  2. 上传相册
  3. 上传附件
  4. 添加文章图片
  5. 前台留言资料上传
  6. 编辑器文件上传

攻击特征:客户端请求数据为PHP木马,服务器返回信息"success upload"判断webshell上传成功

检测方法:通过检测日志文件,通过访问路径的判断,是否与木马路径是否一致,而进行判断是否上传成功或自行访问测试

企图告警分析 ​

文件上传企图告警,更具数据包无法判断是否上传成功,可到分析平台查看是否有脚本文件的访问记录,如果有成功访问脚本文件记录,则脚本文件上传成功

检索语法:uri:("webshell文件名"),如果上传脚本文件被重命名,就筛选出攻击IP对服务器的文协议的访问流量进行分析判断

文件包含 ​

文件包含漏洞的产生原因是在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外文件的泄露甚至恶意的代码注入

本地文件包含 ​

远程文件包含 ​

文件包含的函数 ​

  1. include( ) 当便用该函数包含文件时,只有代码执行到 include( )的数时才将文件包含进来,发生 错误时,给出一个警告,继续向下执行。 include_once( ) 功能与 Include( )相同,区别在于当重复调用 同一文件时,程序只调用一次 require( ) require( )与include( )的区别在于reqvire() 执行如果发生错误,函数会输出错误信息,并终止脚本的运行。 require_once( ) 功能与require( )相同,区别在于当重复调用 同一文件时,程序只调用一次。

伪协议 ​

  1. file://file=file://d:/phpstudy/www/webshell.txt
  2. data://

?file=data://text/plain,<?php phpinfo()?>

  1. php://filter

?file=php://fiter/read=convert,base64-encode//resource=./index.php

  1. php://input

?file.php://input [post data]<?pnp phpinfo()?>

文件包含 ​

https://r2.kwxos.pp.ua/Qexo/24/5/10/ba635d45cec45fd98ecd221ca1b7a7a9.png

告警分析 ​

https://r2.kwxos.pp.ua/Qexo/24/5/10/23a6fd1ae96ea6e13095a980516fe800.png

Webshell ​

通过各种手段获取webshell从而获取企业网站控制权,功能包括但不限于shell命令执行、代码执行、数据库枚举和文件管理

webshell ​

  1. 大马
    1. 体积大,功能全
    2. 会调用系统关键函数,例如调用函数进行提权
    3. 以代码加密进行隐藏
  2. 小马
    1. 体积小,只包含上传功能
  3. 一句话木马
    1. 代码极短,通常只有一句话
    2. 使用方便,单独作为一个文件夹
    3. 变形多,难以查杀

webshell工具 ​

  1. 冰蝎

payload特征:

php在代码中同样会存在eval或assert等字符特征

在aps中会在for循环进行一段异或处理

PHP代码中可能存在eval、assert等关键词;

jsp代码中可能会有get class(),get class loader()等字符特征

  1. 冰蝎2.0

payload特征:

第一阶段请求中返回包状态码为200,返回内容必定是16位的密钥 请求包存在:Accept: text/html, image/gif, image/jpeg, ; q=.2, /; q=.2

建立连接后的cookie存在特征字符 所有请求 Cookie的格式都为: Cookie: PHPSESSID=; path=/;

  1. 冰蝎3.0

请求包中content-length 为5740或5720(可能会根据Java版本而改变) 每一个请求头中存在 Pragma: no-cache,Cache-Control: no-cache Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/*;q=0.8,application/signed-exchange;v=b3;q=0.9

  1. 菜刀

payload特征:

PHP: <?php @eval($_POST['caidao']);?>

ASP: <%eval request(“caidao”)%>

ASP.NET: <%@ Page
Language=“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>

数据包流量特征:

请求包中:ua头为百度,火狐

请求体中存在eval、base64等特征字符;

连接过程中使用base64编码对发送的指令进行加密;

还有一段以QG开头,7J结尾的固定代码 QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J

  1. 哥斯拉

payload特征: jsp会出现xc,pass字符和Java反射(ClassLoader,getClass().getClassLoader()),base64加解码等特征 php,asp则为普通的一句话木马

哥斯拉流量分析: 作为参考: 所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 所有响应中Cache-Control: no-store, no-cache, must-revalidate, 同时在所有请求中Cookie中后面都存在;特征

哥斯拉是一个基于流量、http全加密的webshell管理工具,所以从报文很难看出有明显攻击特征,需要结合流量上下文找到哥斯拉的webshell上传成功的流量来进行分析和判断

  1. 蚁剑

payload特征: php 中使用 assert,eval执行, asp 使用 evaljsp 使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征

默认的 user-agent请求头是 antsword XXX(不过可以修改)

一般将payload进行分段,分别进行base64编码;

一般具有像eval这样的关键字和 @ini_set("display","0");这段代码。

响应包的结果返回格式为: 随机数 编码后的结果 随机数

命令执行 ​

用户通过浏览器提交执行命令,由于服务器未做过滤,导致在没有指定绝对路径的情况下就执行命令,或程序执行环境的其他方面来执行一个恶意构造代码

漏洞分类 ​

  1. SQL注入漏洞命令

https://r2.kwxos.pp.ua/Qexo/24/5/10/01c4758f13b2933fcc8801b6afd4454d.png

  1. 通用漏洞命令执行
    1. struts2命令执行 大多都是在HTTP的请求头或者请求体插入精心构造的恶意代码,如执行echo、print、whoami函数

https://r2.kwxos.pp.ua/Qexo/24/5/10/1fb0bc11c5583f55a7b0db383f6b64bb.png

  1. weblogic命令执行
  2. apache shiro命令执行
  3. fastjson命令行执行
  4. 业务系统功能模块

https://r2.kwxos.pp.ua/Qexo/24/5/10/9efca2ae38f9ffaeea1b169a58a9dc18.png

执行函数 ​

  1. PHP
    1. system
    2. exec
    3. shell_exec
  2. java
    1. Runtime
    2. processbuilder

https://r2.kwxos.pp.ua/Qexo/24/5/10/3d055a77ab60d77d911208675a2f3855.png

XML实体注入 ​

XXE全称XML External Entity Injection即xml外部实体注入漏洞,触发点多位于xml文件上传点。xml实体注入一般可以探测内网、读取系统任意文件,任意文件上传等

XML基础知识 ​

XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义、文档元素。

https://r2.kwxos.pp.ua/Qexo/24/5/10/1f12ad1a987eca5c68d76465f5cbcd9c.png

xml实体注入分类 ​

  1. 执行系统命令
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xxe[
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "expect: //id" >]>
<root>
<name>&xxe,</name>
</root>
  1. 任意文件读取
<?xmi version "l.0" encoding="utf-8"?>
<IDOCTYPE xxe[
<IELEMENT name ANY >
<IENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<name>&xxe:</name>
</root>

https://r2.kwxos.pp.ua/Qexo/24/5/10/b392b15e4002b232fdfc167f74347a2a.png

  1. 内网存活主机探测
<?xml version="l.0" encoding="utf-8"?>
<IDОCTYPE xxe [
<IELEMENT name ANY >
<IENTITY xxe SYSTEM "http://27.0.0.1:80" >]>
<root>
<name>&xxe:</name>
</root>

https://r2.kwxos.pp.ua/Qexo/24/5/10/fdf007bb987e67ddb3ea47717a1e5f1c.png

文件上传 ​

https://r2.kwxos.pp.ua/Qexo/24/5/10/c50019f4be0a94f14d241b6d288e1125.png 然后再通过base64进行解码

https://r2.kwxos.pp.ua/Qexo/24/5/10/2b20cdeb1b86dad589eee11041c91397.png