手工注入

the original

工具注入相信大家都会了,但用工具永远不会得到提高,所以我们还要学会手工注入,网站中使用最多的数据库类型就数ACCESS,SQL Server,MySQL这三个了,我们就以ACCESS为例子给大家讲解手工注入。
先找到一个类似http://www.xxx.com/xx.asp?id=xxx的URL(用谷歌搜索),把URL地址复制到浏览器打开,在字段后面加上单引号'看看返回是否正常(至今我也不明白为啥要加单引号,笨),如果显示错误则说明网站可能存在注入漏洞。分别提交注入点地址+空格+and 1=1和注入点地址+空格+and 1=2,如果返回页面不同,则说明网站存在注入漏洞,发现漏洞后就要判断网站后台数据库类型,提交地址+and user>0即可以判断,如果是ACCESS数据库,那么返回错误里一般会含有“Microsoft JET Database”关键字,如果是MSSOL数据库的话一般会含有“SQL Server”关键字,这里我们就以ACCESS数据库讨论。有了数据库类型,下一步就要猜解数据库表名,猜解表名就是在“注入点后+空格+and exists (select * from 表名)”或者“注入点后+空格+and esists (select count from 表名)”。如果猜解数据库中存在admin这个表名,就提交“注入点+空格+and exists (select * from admin)”,返回正常,说明存在admin这个表名。常见的表名可以自己上网搜索,这里就不写了。
猜解完表名后就要猜解列名,猜解列名的语句是“exists (select 列名 from 表名)”或者“exists (select count (列名) from 表名)”。同样,如果返回错误就说明不存在,正常就说明存在。常见的列名也可以上网搜索。
最后检测出来存在adminname、password、id这三个列名,然后就要猜解列的长度,语句是“and (select top 1 len(列名) from 表名)>X,X是数字,我们需要变换的这个X就是列的长度。当提交数字返回正常,说明长度不是这个数,一个数一个数来,知道返回错误时那个数才是这个列的长度。我猜解的长度就是5。
然后猜解列的内容。一般我们只猜解用户名和密码,前面猜解了adminname、password、id这三个字段,所以这里只专注猜解adminname,password就可以了。
猜解用户名和密码需要用到ASC和Mid这两个函数。用Mid(列名,N,1)函数截取第N位字符,再用ASC(Mid(列名,N,1))函数得到第N位字符的ASCⅡ码。
猜解用户名,密码的语句是“and (select top 1 asc(min(列名,列数N,1)) from 表名)>x”,top后的数字为这个列的第N行,X为ASCⅡ码,列数N就是在这一列中的第几个数字。这里我提交猜解adminname列的第一个数字的ASCⅡ码http://www.xxx.com/xx.asp?id=xxx and (select top 1 asc(mid(adminname,1,1)) from config)>50,返回正常,继续提交>100返回错误,>80返回正常,一直提交到>97返回错误,这样就可以得到adminname列的第一行记录中的第一个字母的ASCⅡ码为97,通过转换可以得到第一个字母为a,最后通过对adminname和password的猜解后发现他们的ASCⅡ值都为97,100,109,105,110,转换后都为admin。
已经猜解到用户名和密码了,猜解算是结束了。注入是要靠很大的运气,除了那些常见的名字,如果管理员用自己的姓名作为表名和字段名的话那就会很麻烦,可以用社工得到,但运气也是一个问题。如果发现网站采用的是一套比较常见的系统,那么我们还可以把这套系统下载下来,从里面的数据库中得到表名和字段名,直接得出用户名和密码。
对ASP+ACCESS的注入攻击在得到用户名和密码后就完成了,想办法找到后台,也是用常见的搭配,好像/admin/login.asp。如果要继续入侵,就要进入后台,上传木马得到webshell了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值