今晚看新闻的时候看一个广告,然后就点到了一个站了....
然后就你懂的,然后就开始日它了
前台啥的注入就没有了,前面一堆过程我就省略了...
直接跳后台
很简单的后台,随便测试了下,如图,假设我们输入admin 密码随便输的话,则出现
如果输入admin'呢?
有点意思吧,这也是明显的注入了....可是怎么利用这个注入点就是个问题了? 用havij ? paglon? sqlmap?
这里有验证码吧,但是这个验证码通过后台发现发现没啥用......sqlmap也注入不出来.....
只能手工.....想想怎么利用呢?
他这个过程大家知道是怎么来处理的吗?
他是先从 数据库 里面与用户名比较,如果相同,然后就取出密码与输入的密码比对,然后校验,如果相同,则判断登陆成功....
有了这个过程,我们就可以判断了
admin' order by 10#
然后我们就可以联合查询了....
admin' and 1=2 union select 1,2,3,4#
提示密码错误
看来前面的语句正确了
我们可以将前面的语句变为这样子
admin' and 1=2 union select 1,1,1,1#
这样子是不是验证通过呢??
可是验证一下不行
你想想,你输入的密码一般会md5 加密 吧,从数据库里面提取出密码也是md5加密的吧!
所以我们这里1,1,1,1都要md5一次.....
我们试试...
我们修改成admin' and 1=2 union select c4ca4238a0b923820dcc509a6f75849b,c4ca4238a0b923820dcc509a6f75849b,c4ca4238a0b923820dcc509a6f75849b,c4ca4238a0b923820dcc509a6f75849b#
然后密码处输1 HdhCmsTest2cto测试数据
这样是不是通过了呢?
我们验证下
尼玛,居然提示用户名不存在,这是怎么回事???难道前面不成立么?
基友们,你们能想清楚这是怎么回事么?
我测试给大家看
这里通过了,如果我们修改一个字段试试,就将12修改成a 看会发生什么?
他会报错....
所以知道了吧,这个就不要我解释了吧,我们需要加上单引号了啦....
我们测试下
所以.....
我们前面的就可以修改了,对吧
我们可以修改成这样...
用户名输入
admin' and 1=2 union select 'c4ca4238a0b923820dcc509a6f75849b','c4ca4238a0b923820dcc509a6f75849b','c4ca4238a0b923820dcc509a6f75849b','c4ca4238a0b923820dcc509a6f75849b'#
然后我们看发生什么....
呵呵
射进去了吧!
然后后台很简陋
有一个上传的地方....
不能直接上传shell
只能上传gif和flash
测试了下,发现只验证文件类型,欺骗下,修改下数据包,get一个shell
就这样到手了....
不过最后结尾我想和大家讨论一个问题?
为什么在 mysql 中会存在dual这个表? 这不是oracle的吗? 我之前测试的时候我还以为是oracle了....
但确实在这个数据库中不存在dual这个表啊....可是他却成立,希望能大神能告知小菜....
查看更多关于后台另类注入 - 网站安全 - 自学php的详细内容...