今晚看新闻的时候看一个广告,然后就点到了一个站了….
然后就你懂的,然后就开始日它了
前台啥的注入就没有了,前面一堆过程我就省略了…
直接跳后台
很简单的后台,随便测试了下,如图,假设我们输入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
2
3
4
5
|
admin’ and 1=2 union select
c4ca4238a0b923820dcc509a6f75849b,c4ca4238a0b923820dcc509a6f75849b,c4ca4238a0b923820dcc509a6f75849b,
c4ca4238a0b923820dcc509a6f75849b#
|
然后密码处输1
这样是不是通过了呢?
我们验证下
尼玛,居然提示用户名不存在,这是怎么回事???难道前面不成立么?
基友们,你们能想清楚这是怎么回事么?
我测试给大家看
这里通过了,如果我们修改一个字段试试,就将12修改成a 看会发生什么?
他会报错….
所以知道了吧,这个就不要我解释了吧,我们需要加上单引号了啦….
我们测试下
所以…..
我们前面的就可以修改了,对吧
我们可以修改成这样…
用户名输入
1
2
3
|
admin’ and 1=2 union select ‘c4ca4238a0b923820dcc509a6f75849b’,‘c4ca4238a0b923820dcc509a6f75849b’,’c4ca4238a0b923820dcc509a6f75849b’,
‘c4ca4238a0b923820dcc509a6f75849b’#
|
密码处输入 1
然后我们看发生什么….
呵呵
射进去了吧!
然后后台很简陋
有一个上传的地方….
不能直接上传shell
只能上传gif和flash
测试了下,发现只验证文件类型,欺骗下,修改下数据包,get一个shell
就这样到手了….
不过最后结尾我想和大家讨论一个问题?
为什么在mysql中会存在dual这个表? 这不是oracle的吗? 我之前测试的时候还以为是oracle了….
但确实在这个数据库中不存在dual这个表啊….可是他却成立,希望能大神能告知小菜….
作者:西毒 link: hi.baidu.com/sethc5/blog
本文由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处!
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号