webshell:
一个脚本文件(根据web的程序语言不同,该脚本文件的语言与之对应),攻击者利用该脚本文件实时地与web服务器实现命令交互。
webshell连接工具:
工具一旦上传webshell,就可以连接到网站中,能够可视化对网站文件进行操作。
-
中国菜刀(早期)
-
Cknife(不太经常用)
-
中国蚁剑:功能、插件拓展性远超中国菜刀
1.自带编码器、解码器,能把webshell流量加密,便于绕过防火墙、杀毒软件的效果;
2.对中文支持好,中文不乱码
3.插件多,可拓展性好,功能多
4.它的webshell流量是有特征的,还是可以被杀毒软件查杀,于是出现了rebeyond写出来的冰蝎。 -
冰蝎 Behinder(重磅级)
1.实现webshell流量全加密,流量几乎完全没有特征,webshell文件也无法被杀毒软件检测出来,完全做到免杀
2.webshell加密是经过md5加密算法,无法解密
3.密码:rebeyond
4.具有一键反弹shell,一键扫描资产、内网操作、数据库管理、自定义代码等功能 -
哥斯拉 godzilla(重磅级)
1.流量加密:XOR+based64
文件上传利用漏洞
web安全中,有两种校验方案:
1.浏览器端与web服务器校验,通常利用js来进行校验。绝对不安全
- 绕过客户端javascript校验
抓包修改文件后缀名 - 绕过MIME文件类型校验
抓包修改MIME类型
将content-tpye的application/octet-stream改为image/jpeg;image/gif等等
2.服务器端与服务器端校验,相对安全
文件上传绕WAF
- 超长文件名溢出,WAF对于过长的文件名往往选择略过给服务器
- 双写文件名,把文件名写两次
- 去引号,直接把文件名的引号去掉
- 换行,将文件名截断换行
- 分块传输:将数据分块发送,加以垃圾注释等混淆WAF。随着WAF技术增长,又研究出延时分块传输,每一块传输过去之间有时间间隔,让WAF无法消耗得起资源等待下一块传输过来,就自动选择略过。
在请求包头部加入transfer-encoding:chunked
参考文章:
在HTTP协议层面绕过WAF
利用分块传输吊打所有WAF
Java反序列化数据绕WAF之延时分块传输
注意:
1.只有HTTP/1.1支持分块传输
2.POST包都可以分块,不仅仅局限于反序列化和上传包
3.Transfer-Encoding:Chunked上小写不敏感