do all things in asp —— shell注入1.0asp版
鬼仔注:文章末尾附我抓的一张界面图。
软件作者:沉渊 (bloodsword)
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
以前一直有写个webshell环境下运行的注入工具的想法。由于语言不过关,也只是一直把它当成一个想法而已。
上次在邪恶八看了mika姐姐发的那个do all things in php的帖子(mika同学知识渊博,而且全面发展,是我们学习的榜样哈),重新激活了我的这个想法。后来翻asp手册,发现了xmlhttp这个好东西,serv-u提权就是用这个写的,简直是居家旅行,入侵黑站的必备佳品哈~~于是就开始动手……写这个东西花了我两个星期时间,累死了~~~
说明:
1、本程序运行需要asp环境,可以自己搭建IIS或者上传到webshell执行,以达到“借刀杀人”的目的。
2、注入过程完全透明化,所有语句在提交到目标url之前可以任意修改,具有很强的灵活性,同时也为广大菜鸟学习sql注入提供了环境。
3、所有存储过程及参数,webshell内容全部使用16进制方式提交,尽量避开urlencode问题或者网站的过滤。
4、由于asp中无法使用多线程(也可能是我孤陋寡闻,没有听说。如果有哪位达淫知道如何在asp中使用多线程技术,敬请指教),代码也没有费力去优化,所以速度不太理想
5、不支持暴力猜解,因为还没想好如何使用折半法的代码。即使有暴力猜解的功能,由于无法使用多线程,所以基本上也是鸡肋。使用union方式和mssql显错模式已经可以应付绝大多数情况了。
6、在mssql或者access环境下,如果union猜解方式里的not in 那里使用嵌套,可能出现重复或者遗漏的情况,而且union后面无法使用order by语句来避免这种状况。而mysql里面不会出现这种情况,同时考虑到PHP里面magic_quote_gpc对引号限制比较严重,所以逐条获取数据的方式跟其他两种环境区别比较大
7、好象是由于xmlhttp中utf-8到gb2312的编码转换问题,中文全部无法显示,所以暂时不支持对中文的猜解(主要是由于我对中文的编码方式没有研究过,网上找了好多方法都行不通。如果哪位知道有效的解决方法,敬请指教)
8、关于mysql union猜解出现Illegal mix of collations的问题。mysql中有一个函数convert(string using charset)用来转换字符集,我已经写在代码里了。一般的数据库也就用utf-8或者latin1这两种字符中的一种。
9、关于get和post的问题:本来,用get方式提交的参数,用post的方式是无法接收到的。所以,理论上说,本程序不支持对post方式注入点的注入。但是由于很多程序员犯懒,接收参数的时候一律用request("value")的形式。所以用post或者get方式提交数据,其实区别不太大。
10、关于一句话木马:程序里使用的一句话木马如下
asp:<%execute request("value")%>
aspx:<%@ Page Language="C#" validateRequest="false" %><%System.IO.StreamWriter ow=new System.IO.StreamWriter(Server.MapPath("images.aspx"),false);ow.Write(Request.Params["value"]);ow.Close();%>
jsp:<%if(request.getParameter("value")!=null)(new java.io.FileOutputStream(application.getRealPath("\")+request.getParameter("value")).write(request.getParameter("path")));%>
php:<?eval($cmd);?>
11、自动猜解那里借用了啊D注入工具的思路:在发送的注入语句中,在列名的两边加上特殊字符。在返回的页面中抓取特殊字符的中间部分作为数据内容
12、日志备份得webshell的问题:每次备份是向文件里追加内容,而不是覆盖,如果需要再次备份,最好换个文件名
13、读取注册表的问题:程序中使用的是xp_regread。还有个存储过程叫xp_regenumvalues的可以读取注册表指定主键下每一项子键的信息,不过我懒得写了,需要用到的自己手动改改语句~~
14、关于过滤的问题:过滤是指每次加在语句最后的东西。比如说参数为字符型,每次要在语句最后加上 and''=' 保证sql语句正确执行,或者要用–将参数后的语句注释掉。如果有需要在语句前添加的内容,请直接写在url中
15、关于字典:字典文件结合了市面上几款常用注入工具的字典。程序中使用的字典为:
table.txt:猜解表名
column.txt:猜解列名
asp.txt:扫描asp后台
aspx.txt:扫描aspx后台
jsp.txt:扫描jsp后台
php.txt:扫描php后台
使用的时候必须将这几个文件上传到webshell,与程序放在一个文件夹里。如果需要自定义字典文件,请自行修改代码
16、关于后台:扫描后台的时候url不能带文件名。比如,可以使用http://www.test.com http://www.test.com/news/ 等形式,但是不能用 http://www.test.com/news/show.asp?id=1 这种形式
17、程序中使用的注入方式,利用办法等全部收集自网上,没什么新东西,感谢各位前辈高人的刻苦钻研和无私分享
18、这个程序只是为方便我等懒人而写的一个玩具,难免出现问题或者考虑不周到的地方,大家多多包涵~~
下载地址:shellinjection.rar
界面截图: