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 中使用 asserteval执行, 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