后台另类注入

今晚看新闻的时候看一个广告,然后就点到了一个站了….

然后就你懂的,然后就开始日它了

前台啥的注入就没有了,前面一堆过程我就省略了…

直接跳后台

很简单的后台,随便测试了下,如图,假设我们输入admin 密码随便输的话,则出现

如果输入admin’呢?

输入admin’#然后 又提示密码错误!
有点意思吧,这也是明显的注入了….可是怎么利用这个注入点就是个问题了?

用havij ? paglon? sqlmap?

这里有验证码吧,但是这个验证码通过后台发现发现没啥用……sqlmap也注入不出来…..

只能手工…..想想怎么利用呢?

他这个过程大家知道是怎么来处理的吗?

他是先从数据库里面与用户名比较,如果相同,然后就取出密码与输入的密码比对,然后校验,如果相同,则判断登陆成功….

有了这个过程,我们就可以判断了

我们可以通过这样子注入

admin’ order by 10#

我们可以先判断一下字段,经过半分法判断字段为4

然后我们就可以联合查询了….

admin’ and 1=2 union select 1,2,3,4#

提示密码错误

看来前面的语句正确了

我们可以将前面的语句变为这样子

admin’ and 1=2 union select 1,1,1,1#

然后密码处输入1

这样子是不是验证通过呢??

可是验证一下不行

知道为什么吗?

你想想,你输入的密码一般会md5加密吧,从数据库里面提取出密码也是md5加密的吧!

所以我们这里1,1,1,1都要md5一次…..

我们试试…

我们修改成

然后密码处输1

这样是不是通过了呢?

我们验证下

尼玛,居然提示用户名不存在,这是怎么回事???难道前面不成立么?

基友们,你们能想清楚这是怎么回事么?

我测试给大家看

这里通过了,如果我们修改一个字段试试,就将12修改成a 看会发生什么?

他会报错….

所以知道了吧,这个就不要我解释了吧,我们需要加上单引号了啦….

我们测试下

所以…..

我们前面的就可以修改了,对吧

我们可以修改成这样…

用户名输入

密码处输入 1

然后我们看发生什么….

呵呵

射进去了吧!

然后后台很简陋

有一个上传的地方….

不能直接上传shell

只能上传gif和flash

测试了下,发现只验证文件类型,欺骗下,修改下数据包,get一个shell

就这样到手了….

不过最后结尾我想和大家讨论一个问题?

为什么在mysql中会存在dual这个表? 这不是oracle的吗? 我之前测试的时候还以为是oracle了….

但确实在这个数据库中不存在dual这个表啊….可是他却成立,希望能大神能告知小菜….

作者:西毒 link: hi.baidu.com/sethc5/blog

本文由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处!