目录
- 介绍
- 测试内容
- 实战
是什么?
webshell是web入侵的脚本攻击工具。简单说,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。一句话木马也称为小马
webshell 最大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
测试内容
1.绕过前台过滤
- a.绕过前台脚本检测扩展名上传webshell
- b.绕过Content-Type检测文件类型上传webshell
- c.利用00截断上传webshell
2.绕过服务器端扩展名检测上传
3. 构造图片web木马
实战
1. 前台过滤
a.绕过前台脚本检测
1) 编写php的一句话木马,内容为【】,文件文pass.php
直接上传pass.php文件发现无法上传,已经被限制文件格式
>>上传pass.php
>>web网站做了上传文件限制,不可以直接上传后缀为.php的文件
2)将文件修改文pass.php.jpg图片格式,上传成功,证明可以通过图片格式进行绕过
>>上传pass.php.jpg的图片文件
>>访问该文件显示成功
3)浏览器使用本地代理,再次上传,利用burnsuite工具将包劫持,将filenname修改为.php格式,再将包发出去。这时候就显上传pass.php文件成功,利用中国菜刀查看文件路径就可以查看数据库
>>截取pass.php.jpg文件上传的包
>>Content Type不变,修改后缀为pass.php
>>将修改后的包Foward发送出去,访问上传目录下pass.php文件是否存在
>>可以直接用菜刀工具连接该木马,可以对数据库进行控制了
b.绕过Content-Type检测文件类型上传webshell
text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。
text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。(image/jpeg为图片格式)
1)直接上传pass.php文件,但是无法查看相应数据库,应该是再conten type识别了
2)使用burn suite劫持数据包,将image/jpeg修改为text/plai,再进行上传,看到上传成功
3)使用中国菜刀可以查看相应的数据库
c. 利用00截断上传webshell
1)上传pass.php.jpg文件,显示上传成功
2)使用burn suite劫持,然后对hex进行修改,查看ASCLL表,将对应的jpg格式修改成为php格式。我发现了一个在线编码解码的可以更快对相应进行修改,网址https://www.107000.com/T-Hex/
3)修改之后就使用中国菜刀进行解析,查看相应的数据库
2.绕过服务器端扩展名检测上传
a.利用apache解析漏洞上传webshell
1) 将上传的木马文件后缀名.php改为.php.abc
2) 利用apache的解析漏洞用菜刀连接扩展名为.abc的文件填写木马密码和选择脚本类型,获得网站的一个webshell。
3)通过apache日志获得webshell测试文件包含,在URL中提交GET参数【?ajest=test.php】向目标站点提交错误信息,Apache会将错误信息写入日志。通过本地文件包含漏洞,包含apache日志,即可获得一句话webshell
3. 构造PHP图片木马
一般情况下,网页会检测文件内容是不是真的有效图片,如果不是就不会允许上传
1)上传一个pass.phpjpg文件,显示不允许上传
2)制作一个木马图片:将一张正常图片666.jpg和木马文件pass.php放在同一个目录下,使用cmd到这个文件夹,将两个文件合成.jpg文件 copy 666.jpg+pass.php hack.jpg
3)上传hack.jpg文件改为hack.jpg.php,访问这个文件路径成功
4)用中国菜刀打开就ok了,可以看到数据库信息