一、流量特征
1、SQL注入
(1)对sqlmap的判断:若攻击者使用sqlmap且未加 --random-agent参数,则可以通过捕获请求包的user-agent字段来判断攻击者是否在使用sqlmap进行攻击;sqlmap在进行初识监测时会进行一些预检测,第一条语句是对数据库类型和XSS漏洞进行监测,且这句话几乎每次注入都不变,即我们可以通过XSS测试语句判断。
(2)出现一些特殊字符:比如单引号括号'(
(3)出现SQL命令或语句:增加、删除、修改、查询
(4)出现注释符号:比如连续两个减号--
(5)url上出现万能密码字段:'or'1'='1
2、XSS
payload包含<script></script>标签;
标签的一些事件:比如onclick、ondbclick、onload;
标签的超链接属性:比如href、src。
3、挖矿行为
若存在连续几个数据包中都符合stratum协议的json载荷特征,那么主机存在挖矿,stratum协议是目前主流的矿机和矿池间的TCP通讯协议,也可通过CPU使用率来判断,找到CPU占用高的进程获取PID信息。
二、webshell流量特征
1、中国菜刀
请求体中存在eval、base64等特征字符;
连接过程中使用base64编码对发送的指令进行加密;
还有一段以QG开头,7J结尾的固定代码。
2、蚁剑
默认的user-agent请求头是antsword XXX(不过可以修改)
一般将payload进行分段,分别进行base64编码;
一般具有像eval这样的关键字和@ini_set("display","0");这段代码。
3、冰蝎
PHP代码中可能存在eval、assert等关键词;
jsp代码中可能会有get class(),get class loader()等字符特征。
三、对告警流量分析
1、信息泄露
看访问路径中是否存在特殊文件或路径
2、SQL注入
看请求参数、请求头、请求体中是否包含SQL语句或关键字(比如union select)
3、文件上传
看请求体中是否包含代码内容(如果响应体中有success等上传成功的字样,或者有该文件的访问记录,则说明webshell上传成功)
4、XSS
看请求参数或请求体中是否包含JavaScript代码,将响应体的数据复制到文件中执行,如果弹窗,说明攻击成功。
5、代码执行
看请求参数、请求头、请求体中是否包含恶意代码(比如请求体中包含PHP代码,fastjson反序列化攻击,thinkph5远程代码执行)